打印

STM8 RAM中运行代码出错 [

[复制链接]
6808|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wormchen|  楼主 | 2013-2-24 11:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前在在IAP功能,FLASH编程使用BLOCK编程代码,这样就需要RAM中执行CODE,按照固件库说明 允许RAM中执行,具体如下:

#if !defined (RAM_EXECUTION)
#define RAM_EXECUTION  (1)
#endif /* RAM_EXECUTION */

但是执行到FLASH_ProgramBlock(u32BlockAddr, FLASH_MEMTYPE_PROG, FLASH_PROGRAMMODE_STANDARD, pBuf);

就会重启死机,编译的时候出现如下警告:

Warning[Ta005]: Library call (?mul32_l0_l0_l1) from within a __ramfunc function E:\工程项目\ZBS-II\软件工程\STM8\BL\Lib\STM8S_StdPeriph_Driver\src\stm8s_flash.c 659
Warning[Ta005]: Library call (?add32_l0_l0_l1) from within a __ramfunc function E:\工程项目\ZBS-II\软件工程\STM8\BL\Lib\STM8S_StdPeriph_Driver\src\stm8s_flash.c 659
Warning[Ta005]: Library call (?epilogue_l2) from within a __ramfunc function E:\工程项目\ZBS-II\软件工程\STM8\BL\Lib\STM8S_StdPeriph_Driver\src\stm8s_flash.c 685
Warning[Ta005]: Library call (?mul32_l0_l0_l1) from within a __ramfunc function E:\工程项目\ZBS-II\软件工程\STM8\BL\Lib\STM8S_StdPeriph_Driver\src\stm8s_flash.c 607
Warning[Ta005]: Library call (?add32_l0_l0_l1) from within a __ramfunc function E:\工程项目\ZBS-II\软件工程\STM8\BL\Lib\STM8S_StdPeriph_Driver\src\stm8s_flash.c 607
Warning[Ta005]: Library call (?epilogue_l2) from within a __ramfunc function E:\工程项目\ZBS-II\软件工程\STM8\BL\Lib\STM8S_StdPeriph_Driver\src\stm8s_flash.c 627
Warning[Ta005]: Library call (?dec32_l1_l1) from within a __ramfunc function E:\工程项目\ZBS-II\软件工程\STM8\BL\Lib\STM8S_StdPeriph_Driver\src\stm8s_flash.c 545

编译器是IAR FOR STM8 ,固件库V2.1.0。

请教IAR 下正确RAM中运行的方法!
沙发
IJK| | 2013-2-24 11:54 | 只看该作者
问题比较明显:IAR的库函数 mul32,add32等等位于FLASH里,从RAM里面的函数调用的IAR的库函数,所以出问题了。

使用特权

评论回复
板凳
wormchen|  楼主 | 2013-2-25 09:41 | 只看该作者
mul32_l0_l0_l1 警告提示是下面这段代码
   
/* Point to the first block address */
    startaddress = startaddress + ((uint32_t)BlockNum * FLASH_BLOCK_SIZE);

怎么改呢

使用特权

评论回复
地板
jgphu| | 2013-6-28 09:40 | 只看该作者
目前在在IAP功能,FLASH编程使用BLOCK编程代码,这样就需要RAM中执行CODE,按照固件库说明 允许RAM中执行,具体如下:

#if !defined (RAM_EXECUTION)
#define RAM_EXECUTION  (1)
#endif /* RAM_EXECUTION */

在哪里有这个说明啊,能不能给个链接或贴出来,谢谢。

使用特权

评论回复
5
fxyak47| | 2014-9-12 15:39 | 只看该作者
楼主的问题解决了吗?

使用特权

评论回复
6
GERALDWONG| | 2015-1-16 16:20 | 只看该作者
楼主的问题解决了吗?

使用特权

评论回复
7
kandaobangjunsh| | 2015-10-20 10:35 | 只看该作者
GERALDWONG 发表于 2015-1-16 16:20
楼主的问题解决了吗?

问题解决了吗,我eeprom编程也出现了许多警告,请问怎么解决Warning[Ta005]: Library call (?mul32_l0_l0_l1) from within a __ramfunc function F:\registor\linshi\线切割\xqg-gaopin-code\TCIAR V1.1\FWlib\src\stm8s_flash.c 655

使用特权

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

本版积分规则

18

主题

61

帖子

0

粉丝