您好
IDE:CS+ for CC
编译链:CC-RL
请问一下bootloader和app是否一定需要是一个工程下的两个项目,可否分为两个独立工程,app是否一定需要链接boot生成的fsy文件才能实现跳转;
非常感谢您的回复
可以分别设立两个独立工程.
在另外的帖子不是很详细讲解了 中断向量的映射吗
(2) RL78 bootloader via UART for CCRL 样例程序 - Forum - RL78 MCU - Renesas Community
仔细研究一下样例程序,
那之间需要怎么链接实现跳转功能呢
是的是的,不好意思,我把static去掉之后就能编译了,但是我bootloader和app中的FLASH_TABLE 都设置为0x4000,然后把app的bin文件烧录到0x4000的位置,boot串口输出完毕后进入while循环,延时几秒后跳出while,但是还是没有进入app,而像是复位了,重新打印了一遍boot的log,是否方便指出我工程中的问题所在,非常感谢您的回复boot&app.rar
你还是认真的读一下样例程序, 然后依样画葫芦对照样例程序的build tool, 和 debug tool的设置, 一项一项的对照, 找出差别, 才知道哪里需要设置, 你自己的工程就成功了.
boot&app.rar, 两个工程的编译设置都和样例差距太大. 耐心学习样例, 做到事半功倍.
给你一点提示. boot 和app 就是section定义的起始地址差别. 看看样例是怎么做的, 然后根据你的需要, 偏移相应的地址.
好的好的,非常感谢您的指导,谢谢!
您好,实在是不好意思,我还是没能成功跳转到app,app中section定义的地址是下图所示的地方吗
非常感谢,在您的指导下我实现了跳转的功能,但是app在运行的过程中好像进不了中断,串口打印也只输出了一个字符,定时器中断计数也没有计数,app中中断是不是添加ftable.asm以及ftable.inc然后在ftable.asm中开启需要的中断函数就可以了,还是需要进行其他的设置,非常感谢您的答复
还是继续学习样例程序. 对比程序和设置, 看看是你的程序哪里设置错了, 这样才能增加认识.(最好的办法就是对照原样例的程序和配置做一遍)
样例程序--RL78 bootloader via UART for CCRL - Forum - RL78 MCU - Renesas Community
硬件的中断向量是在boot区(0-7F), 当发生中断是从0-7F跳到 -- > 2000+offset的那个地址(也就是flash.asm 那个虚拟的中断向量表), --> 然后再跳到中断服务程序.
--app中中断是不是添加ftable.asm以及ftable.inc然后在ftable.asm中开启需要的中断函数就可以了 这是非常当然的!
中断能不能执行, 有几个条件, 总中断是否使能, 中断入口地址是否对, 中断是不是条件满足, 该中断是不是使能了, 这些都需要查.
如果接了仿真板, 仿真器是不是选择正确.
非常感谢您的指导,我这边按照例程中的APP部分的build tool进行设置,中断使能EI()也执行了,中断条件我这边是发送几个字符,但是串口工具接收不到完整的数据,只收到了第一个字符,定时器也start了,但是在定时器中的计数无变化,中断入口地址是否是ftable.asm中的FLASH_TABLE来定的还是有其他的设置,请您帮忙指正一下,又或者能跳转到app但是进入不了中断跟bootloader中的设置有关吗,感谢您的回复,这是我调试的app的工程,如果方便的话请您帮忙指正一下我的问题,谢谢!csssss.rar
重要的话说三遍, RL78的硬件向量表是在0-7fH, !!!
App需要和boot程序合起来调试的, boot的build option里面做了一个向量表的映射, 也就是把中断映射到虚拟向量表flash.asm, 必须保证0-7fH里面有如下数据, 才能真正实现中断的完成.
你的程序在0-7fH没有进行映射, 所以不能实现中断的跳转, 所以只发生了一个数据, 后面就完成不下去了.
这一部分设置好了,app还是不行
你虚拟向量表是放在7000H(ftable.asm),上面你设定的向量表映射是到2000H如: 4=2008,等等) 能起作用吗, 中断关联不起来的 (样例程序偏移地址是2000H, 所以才设定为4= 2008, 6 = 200C, ....)
只有这样才可以关联
非常感谢您的指导,我按照您所说的进行修改后app还是进不了中断,非常不好意思
boot -- > app, 中断是一条链来的, 0-7fH处指向 7000H+ offset ---> 再指向中断服务程序, 你在memory 窗口去看, 你这条链是不是完整.
您这边方便提供boot和APP的例程吗,不需要任何功能的实现,只需要配置好跳转部分就好了,非常感谢,因为您提供的例程是boot和app在一个工程中的,就不知道这两种情况除了不链接fsy文件还需要有什么不同
其实前面我该讲的已经讲了.
后面我会提供一个基本架构样例出来(也是基于前面讲的), 功能 从boot 跳到App执行timer0(无boot的flash操作和通讯口的操作)
另外你自己查一下, ftable.c里面是不是存在虚拟中断错误的情况(每一行最后对应中断向量号, 有没有多出来的或少掉的, 中断向量号是不是连续的).
留下邮箱,什么时候远程讲解一下.
非常感谢,983245061@qq.com