STM8 RAM中运行代码出错 [

[复制链接]
7916|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 */

在哪里有这个说明啊,能不能给个链接或贴出来,谢谢。
fxyak47 发表于 2014-9-12 15:39 | 显示全部楼层
楼主的问题解决了吗?
GERALDWONG 发表于 2015-1-16 16:20 | 显示全部楼层
楼主的问题解决了吗?
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

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