搜索

[技术问答] 关于N76E003 IAP应用升级程序问题

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

使用特权

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

使用特权

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

使用特权

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

使用特权

评论回复
| 2018-9-16 19:44 | 显示全部楼层
  1. //******************************************************************************
  2. // This code illustrates how to use IAP to make APROM 201h as a byte of
  3. // Data Flash when user code is executed in APROM.
  4. //******************************************************************************
  5. #define PAGE_ERASE_AP 0x22
  6. #define BYTE_PROGRAM_AP 0x21
  7. /*Data Flash, as part of APROM, is read by MOVC. Data Flash can be defined as
  8. 128-element array in “code” area from absolute address 0x0200 */
  9. volatile unsigned char code Data_Flash[128] _at_ 0x0200;
  10. Main (void)
  11. {
  12. TA = 0xAA; //CHPCON is TA protected
  13. TA = 0x55;
  14. CHPCON |= 0x01; //IAPEN = 1, enable IAP mode
  15. TA = 0xAA; //IAPUEN is TA protected
  16. TA = 0x55;
  17. IAPUEN |= 0x01; //APUEN = 1, enable APROM update
  18. IAPCN = PAGE_ERASE_AP; //Erase page 200h~27Fh
  19. IAPAH = 0x02;
  20. IAPAL = 0x00;
  21. IAPFD = 0xFF;
  22. TA = 0xAA; //IAPTRG is TA protected
  23. TA = 0x55;
  24. IAPTRG |= 0x01; //write ‘1’ to IAPGO to trigger IAP process
  25. IAPCN = BYTE_PROGRAM_AP; // Program 201h with 55h
  26. IAPAH = 0x02;
  27. IAPAL = 0x01;
  28. IAPFD = 0x55;
  29. TA = 0xAA;
  30. TA = 0x55;
  31. IAPTRG |= 0x01; //write ‘1’ to IAPGO to trigger IAP process
  32. TA = 0xAA; //IAPUEN is TA protected
  33. TA = 0x55;
  34. IAPUEN &= ~0x01; //APUEN = 0, disable APROM update
  35. TA = 0xAA; //CHPCON is TA protected
  36. TA = 0x55;
  37. CHPCON &= ~0x01; //IAPEN = 0, disable IAP mode
  38. P0 = Data_Flash[1]; //Read content of address 200h+1
  39. while(1);
  40. }
复制代码

使用特权

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

使用特权

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

使用特权

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

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

使用特权

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

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

使用特权

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

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表