bootloader中关于flash擦除写和ram初始化的问题
发布时间:2020-12-15 19:49:51 所属栏目:百科 来源:网络整理
导读:liangboone君,还有个地方没弄明白,请教下。 “全局变量和静态变量的初始化值是保存在Flash中的Const段里的”: 这个const段的起始地址和内容也是在s19文件里的吧。可是bootloader的s19文件和应用的s19文件,要手动合成一个s19文件后烧入mcu的flash里,其中
liangboone君,还有个地方没弄明白,请教下。 (1)?bootlaoder的需要初始化值对应的const段和application的不在一个地方。在prm里面进行段配置的时候,把bootloader分在0x4000-0x8000,和其他的分页的Flash中;Bootloader是放在0xC000-0xFF00这样的区间内。所以两者合成一个s19文件后也是不重合的。 (2)?在Bootlaoder里面的时候,只是初始化bootloader用到的全局变量,在app的时候,只初始化app的变量。 (3)?正如skylkj所说,并不是所有的全局变量和局部变量都会被初始化,比如,也可以定义NON_INIT的RAM段,这些变量是不会初始化的。另外,初始化的代码startup是IDE提供的,你也可以不用,自己写都是可以的。我所说的全局变量和静态变量会被初始化是Codewarrior在默认情况下的结果。 flash不能同时读写,所以升级程序的时候要把程序拷贝到ram,防止写flash的过程中因为“读”程序而访问到flash (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |