STM32 热启动不初始化RAM

[复制链接]
5750|7
 楼主| anvy178 发表于 2012-4-20 20:06 | 显示全部楼层 |阅读模式
有什么办法可以让STM32 热启动不初始化RAM   现在一热复位就把RAM初始化了.
香水城 发表于 2012-4-20 22:39 | 显示全部楼层
改startup文件。
 楼主| anvy178 发表于 2012-4-21 22:36 | 显示全部楼层
没看懂启动文件在那里把RAM 初始化的  堆栈初始化 还有中断向量表那些就知道 能否提示下呢?
 楼主| anvy178 发表于 2012-4-21 22:36 | 显示全部楼层
没看懂启动文件在那里把RAM 初始化的  堆栈初始化 还有中断向量表那些就知道 能否提示下呢?
李富贵 发表于 2012-4-21 22:59 | 显示全部楼层
  1. .section .text.Reset_Handler
  2. .weak Reset_Handler
  3. .type Reset_Handler, %function
  4. Reset_Handler:

  5. /* Copy the data segment initializers from flash to SRAM */
  6. movs r1, #0
  7. b LoopCopyDataInit

  8. CopyDataInit:
  9. ldr r3, =_sidata
  10. ldr r3, [r3, r1]
  11. str r3, [r0, r1]
  12. adds r1, r1, #4

  13. LoopCopyDataInit:
  14. ldr r0, =_sdata
  15. ldr r3, =_edata
  16. adds r2, r0, r1
  17. cmp r2, r3
  18. bcc CopyDataInit
  19. ldr r2, =_sbss
  20. b LoopFillZerobss
  21. /* Zero fill the bss segment. */
  22. FillZerobss:
  23. movs r3, #0
  24. str r3, [r2], #4

  25. LoopFillZerobss:
  26. ldr r3, = _ebss
  27. cmp r2, r3
  28. bcc FillZerobss

  29. /* Call the clock system intitialization function.*/
  30. bl SystemInit
  31. /* Call static constructors */
  32. bl __libc_init_array
  33. /* Call the application's entry point.*/
  34. bl main
  35. bx lr
李富贵 发表于 2012-4-22 15:44 | 显示全部楼层
只有gcc可以通过改启动代码避免初始化。
iar可以用__no_init关键字防止初始化,mdk也有类似关键字,自己查帮助吧。
llglqh 发表于 2012-7-12 21:17 | 显示全部楼层
iar可以用__no_init关键字防止初始化
yang4469 发表于 2015-2-5 10:13 | 显示全部楼层
我找到一个关于不初始化指定RAM空间的博客,改link .sct文件,但是没有找到关于修改startup文件的
http://blog.sina.com.cn/s/blog_9cc7125c01014ge0.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

801

帖子

3

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