cs+工程下,rl78-g13bootloader跳转app问题

您好

        IDE:CS+ for CC 

        编译链:CC-RL

请问一下bootloader和app是否一定需要是一个工程下的两个项目,可否分为两个独立工程,app是否一定需要链接boot生成的fsy文件才能实现跳转;

非常感谢您的回复

Parents Reply Children
  • 非常感谢,在您的指导下我实现了跳转的功能,但是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里面是不是存在虚拟中断错误的情况(每一行最后对应中断向量号, 有没有多出来的或少掉的, 中断向量号是不是连续的).

    留下邮箱,什么时候远程讲解一下.