请问一下,我在编译boot工程时,出现了这三个warning,0x16 0x18我通过查询手册发现时uart0 的中断,如图二屏蔽掉可以解决 可是没有看到0x2是什么中断,请赐教。
0x2中断, 不需要care, 保留的.按照格式去写就行了.
好的 谢谢,我想问一下 boot工程里 0x16 0x18 的 vect 已定义,也就是这个warning不去管他是不是也没啥影响呢?因为有中断向量映射表,硬件中断发生,比如 boot 中 0x16 硬件中断发生,会偏移到虚拟向量表202c,继而执行 app中的中断服务函数,或者说只要在boot中进行了相应中断的中断映射,那么在boot工程中也就无法使用相应的中断了。
建议你把样例程序吃透了, 再进行移植和修改, 否则问题多多.
从你的bin文件看有128K, 如果预留的boot是8K的话, 你的程序超过了64K. 所以程序跑到55K以后就出错了, 应该是超过了64K寻址范围.,
从你上面发的MCU memory的图片, 所选的MCU是128K的,
如果你的bin文件128K是App的话, 那肯定是错的, 因为芯片是128K -8K(Boot区), APP只能是120K.
黄工我想问一下上位机为啥会显示我的app程序的 bin文件这么大呢?
你这个是APP的? APP后面加了CRC, 在转换成bin时, 是2000-FFFFH, 或更大, bin的是这个空间的, 所以大
你自己如果有hex软件打开bin, 应该可以看到
对的 这个是我的app程序,但是例程的app也带crc校验,为啥到这里会出问题呢?
你的APP是MCU 不是R5F100LE, 64K的ROM size 吧
r5f10pgg 128k
样例程序是64K的, 128K要考虑寻址问题, uint16_t的指针, 不能满足128K寻址的要求, 需要修改程序.
有点懵,我的app程序应该不大,那么请问如果我只用用到codeflash的前64 k 也要考虑这个寻址问题吗?
和你的代码量没有关系, 你的CRC放置在1FFFF那个附件, 就决定了你的128K空间
问题不在crc 128k这里,在于uint_16 修饰的指针的寻址?
修改你的程序啊, ROM size 大于64K, uint16_t 的指针不能访问超过64K的空间, 就要改成uint32_t
黄工 我把boot 程序的uint16_t改成了 uint32_t,bin文件下载到112/128k停住了,再次下载出现下图,是不是代表有一部分app数据写进去了
我这个修改是没问题的吧
你研究一下具体代码啊, 看看你的指针运行寻址对不对.