(1)如何禁止KEIL初始化RAM为零?
1. 在KEIL Noinit 打钩
2. <1> 另须对需要热启动保持的变量用__at关键字指定某个区域,否则还是没用 (#include "absacc.h")
<2>或者__attribute__((zero_init)) 关键字 .bss段
收藏0 举报
int test1=1; __attribute__((zero_init)) int test2; int test3 __at(0x20001000); 查看MAP文件 test1 0x20000000 Data 4 main.o(.data) test2 0x2000000c Data 4 main.o(.bss) test3 0x20001000 Data 4 main.o(.ARM.__AT_0x20001000)
if (RCC_GetFlagStatus(RCC_FLAG_PORRST) != RESET) { //这是上电复位 } else if (RCC_GetFlagStatus(RCC_FLAG_PINRST) != RESET) { //这是外部RST管脚复位 } else if (RCC_GetFlagStatus(RCC_FLAG_SFTRST) != RESET) { //这是外部RST管脚复位 } //清除RCC中复位标志 RCC_ClearFlag(); void RestStm32Cpu(void) { __set_FAULTMASK(1); // 关闭所有中端 NVIC_SystemReset(); // 复位 } 微处理器:LPC2114 编译环境:Keil MDK V4.10
if(unStartFlag==0xAA55AA55) { //热启动处理 } else { //冷启动处理 unStartFlag=0xAA55AA55; }
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
人才类勋章
133
715
0
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号