Keil编译器环境下,如何自行清理RAM

2020-01-14 19:00发布

如题,KEIL环境下把启动文件删掉后,自己清理RAM怎么清理。
因为让编译器自行清零RAM的话,如果发生看门狗复位,MCU也会自动清理RAM。我想实现的功能是,上电后自行清理一次RAM,如果发生看门狗复位,则不清理。
我现在用的芯片是中颖的79F3283,跟中颖的技术支持联系过,他们说把启动文件删除掉不会有影响,删掉后就不会自动清理了。然后我刚刚写了一段,仿真时软件
在第一个for循环里面陷入了死循环,这个功能能应该怎么实现。网上搜了好久也没查到什么有用的资料。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
kebaojun305
1楼-- · 2020-01-14 21:01
使用原来的启动代码  汇编加个复位标志判断就可以了。
夜尽天明
2楼-- · 2020-01-14 23:18
kebaojun305 发表于 2017-11-24 16:47
使用原来的启动代码  汇编加个复位标志判断就可以了。

我试下看
EMC菜鸟
3楼-- · 2020-01-15 04:24
本帖最后由 EMC菜鸟 于 2017-11-24 16:57 编辑

如果是 keil 环境下,是不是可以把启动文件加入到自己的项目中(同时复制到项目文件夹下),然后改写之?

刚刚测试了下,如下修改即可:
                CSEG    AT      0
?C_STARTUP:     LJMP        ?C_START                                ;LJMP    STARTUP1
vuo50z
4楼-- · 2020-01-15 07:59
不会所有的变量都不要清除吧?把不要清除的变量用指针访问,放在ram的最高端。
wctmdgcd
5楼-- · 2020-01-15 08:15
 精彩回答 2  元偷偷看……
夜尽天明
6楼-- · 2020-01-15 08:25
wctmdgcd 发表于 2017-11-24 19:01
楼主能写这样的代码进行清ram,难道对堆栈等东西完全没概念?

我跟中颖的工程师咨询过,他们说启动文件里面处理堆栈的功能没什么作用,可以直接把启动文件删掉。
我直接这样清理RAM,会把堆栈删掉吗,51单片机的架构还没玩熟悉。

一周热门 更多>