[技术问答]

关于N76E003 IAP应用升级程序问题

[复制链接]
1875|10
手机看帖
扫描二维码
随时随地手机跟帖
c475301174|  楼主 | 2018-9-14 16:25 | 显示全部楼层 |阅读模式
想用N76E003 做IAP应用升级程序  但bootloarer有点大  大于4KB   LDROM装不下   想问下有没有类似32位单片机那种中断向量偏移指令    设置应用程序从指定地址开始运行
xinxianshi| | 2018-9-15 23:59 | 显示全部楼层
这是默认值吧,好像可以修改大小。

使用特权

评论回复
tianxj01| | 2018-9-16 09:18 | 显示全部楼层
很奇怪BootLoader为毛需要这么大呢?最主要的功能无非就是ISP,一个串口升级的引导程序而已,其他的都可以放在APROOM吧。而目前一个功能完整的LDROM完全可以在1KB里面呢。
这前面后面,其实无非是那一部分放什么地方的问题,既然4KB限制了,那么我们完全可以将LCROM限制在4KB里面,这个肯定可以。

使用特权

评论回复
antusheng| | 2018-9-16 15:57 | 显示全部楼层
自己写的Bootloader?

使用特权

评论回复
antusheng| | 2018-9-16 15:57 | 显示全部楼层
我看网上官方提供的,应可以啊

使用特权

评论回复
小灵通2018| | 2018-9-16 19:44 | 显示全部楼层
//******************************************************************************
// This code illustrates how to use IAP to make APROM 201h as a byte of
// Data Flash when user code is executed in APROM.
//******************************************************************************
#define PAGE_ERASE_AP 0x22
#define BYTE_PROGRAM_AP 0x21
/*Data Flash, as part of APROM, is read by MOVC. Data Flash can be defined as
128-element array in “code” area from absolute address 0x0200 */
volatile unsigned char code Data_Flash[128] _at_ 0x0200;
Main (void)
{
TA = 0xAA; //CHPCON is TA protected
TA = 0x55;
CHPCON |= 0x01; //IAPEN = 1, enable IAP mode
TA = 0xAA; //IAPUEN is TA protected
TA = 0x55;
IAPUEN |= 0x01; //APUEN = 1, enable APROM update
IAPCN = PAGE_ERASE_AP; //Erase page 200h~27Fh
IAPAH = 0x02;
IAPAL = 0x00;
IAPFD = 0xFF;
TA = 0xAA; //IAPTRG is TA protected
TA = 0x55;
IAPTRG |= 0x01; //write ‘1’ to IAPGO to trigger IAP process
IAPCN = BYTE_PROGRAM_AP; // Program 201h with 55h
IAPAH = 0x02;
IAPAL = 0x01;
IAPFD = 0x55;
TA = 0xAA;
TA = 0x55;
IAPTRG |= 0x01; //write ‘1’ to IAPGO to trigger IAP process
TA = 0xAA; //IAPUEN is TA protected
TA = 0x55;
IAPUEN &= ~0x01; //APUEN = 0, disable APROM update
TA = 0xAA; //CHPCON is TA protected
TA = 0x55;
CHPCON &= ~0x01; //IAPEN = 0, disable IAP mode
P0 = Data_Flash[1]; //Read content of address 200h+1
while(1);
}

使用特权

评论回复
小灵通2018| | 2018-9-16 19:44 | 显示全部楼层
上面是手册给的IAP例子,很短啊。不会超过2K吧

使用特权

评论回复
小灵通2018| | 2018-9-16 19:47 | 显示全部楼层
不好意思搞错了,手册上在那个IAP章节后给的例子竟然不是IAP例子,而是利用IAP保存数据到flash的例子。。

使用特权

评论回复
c475301174|  楼主 | 2018-9-17 08:20 | 显示全部楼层
tianxj01 发表于 2018-9-16 09:18
很奇怪BootLoader为毛需要这么大呢?最主要的功能无非就是ISP,一个串口升级的引导程序而已,其他的都可以 ...

我们用到CAN通信  N76E003没有can接口  我们通过SPI转can通信  芯片 所以文件偏大一点

使用特权

评论回复
tianxj01| | 2018-9-17 08:33 | 显示全部楼层
c475301174 发表于 2018-9-17 08:20
我们用到CAN通信  N76E003没有can接口  我们通过SPI转can通信  芯片 所以文件偏大一点 ...

文件偏大无所谓啊,关键是控制LDROM和APROM的分配就不会出什么问题了啊,只需要写个1K左右的LDROM,剩下的15K,爱咋用咋用嘛。

使用特权

评论回复
heisexingqisi| | 2018-9-18 21:36 | 显示全部楼层
是的那个默认的分配可以重新分配的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

113

帖子

3

粉丝