共2条
1/1 1 跳转至页
ADS 难道在仿真情况与下载运行时,ADS编译的会结果不一样?

问
定义了一个数组,如:unsigned char logodata[5] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF};在仿真情况下一切正常,但下载运行后从超级终端显示一看,已经不是这些数了。原先以为程序中把它修改了,但情况似乎不是,因为定义成常数形式就不会。如下:
const unsigned char logodata[5] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
请教各位:何解??? 答 1: 版主也来提问你是版主,也来提问?
你的这两个数组都是C的枚举类型,在普通的C里是相同的(如TURBO C,VC),但在单片机(包括ARM)里就不同了,unsigned char logodata[5] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF}数据存放在RAM里,const unsigned char logodata[5] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF}数据存放在flash里,在单片机和ARM里定义枚举类型必须用第二种方式,否则就有问题了.
不知我说的对不对,请版主指教.
答 2: 斑竹也不是万金油 答 3: 是不是你的程序修改了,我的不会啊 答 4: 不疑问就问嘛!难道还装懂?在ARM当中,如果定义成const则会被定义在RO区域,否则定位在RW区域。但无论你是RO还是RW及ZI区域的数据最终都会被写到FLASH中,当启动后再通过Bootload将它们都复制到RAM中,所以如果想修改它们,无论你是定位在RO还是RW都会被修改。
答 5: 你看看C的汇编代码你看看C的汇编代码就知道了,不要太固执 答 6: 我同意metersnet的观点设置成const,数据存放在flash,数组就不能被修改,(当然,如果版主较真,非要用iap修改除外).
如果数据放在RAM,当然可以修改了.如果数据可以修改,你定义这个枚举类型有个屁用!!直接给他赋值不就行了. 答 7: 看来阿南学东西比较死板,不够灵活 看看C的汇编代码 答 8: 后来有一些数据用const定义,也被修改了!其实情况是这样的:是我的Bootload出现了问题。它没有将Flash中的所有数据都复制到SDRAM中,超初设计从Flash中读的最大是256K,但RO、RW及ZI总共的数据已超过300多K,但RO没有超过256K,所以程序还能正常运行,只是定位在RW时的数据出现问题。后来定位在RO时也出现问题,是因为RO也超过了256K。 答 9: 我早质疑过阿南的版主身份是不是“走关系”走来的?
const unsigned char logodata[5] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
请教各位:何解??? 答 1: 版主也来提问你是版主,也来提问?
你的这两个数组都是C的枚举类型,在普通的C里是相同的(如TURBO C,VC),但在单片机(包括ARM)里就不同了,unsigned char logodata[5] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF}数据存放在RAM里,const unsigned char logodata[5] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF}数据存放在flash里,在单片机和ARM里定义枚举类型必须用第二种方式,否则就有问题了.
不知我说的对不对,请版主指教.
答 2: 斑竹也不是万金油 答 3: 是不是你的程序修改了,我的不会啊 答 4: 不疑问就问嘛!难道还装懂?在ARM当中,如果定义成const则会被定义在RO区域,否则定位在RW区域。但无论你是RO还是RW及ZI区域的数据最终都会被写到FLASH中,当启动后再通过Bootload将它们都复制到RAM中,所以如果想修改它们,无论你是定位在RO还是RW都会被修改。
答 5: 你看看C的汇编代码你看看C的汇编代码就知道了,不要太固执 答 6: 我同意metersnet的观点设置成const,数据存放在flash,数组就不能被修改,(当然,如果版主较真,非要用iap修改除外).
如果数据放在RAM,当然可以修改了.如果数据可以修改,你定义这个枚举类型有个屁用!!直接给他赋值不就行了. 答 7: 看来阿南学东西比较死板,不够灵活 看看C的汇编代码 答 8: 后来有一些数据用const定义,也被修改了!其实情况是这样的:是我的Bootload出现了问题。它没有将Flash中的所有数据都复制到SDRAM中,超初设计从Flash中读的最大是256K,但RO、RW及ZI总共的数据已超过300多K,但RO没有超过256K,所以程序还能正常运行,只是定位在RW时的数据出现问题。后来定位在RO时也出现问题,是因为RO也超过了256K。 答 9: 我早质疑过阿南的版主身份是不是“走关系”走来的?
共2条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
【STM32F769】AI之与本地deepseek对接被打赏50分 | |
Buck电路工作在CCM模式下电感电流的计算公式是什么?被打赏5分 | |
buck电路工作原理被打赏5分 | |
基于MSPM0L1306的MODBUS-RTU协议通讯实验被打赏100分 | |
我想要一部加热台+多合一调试工具被打赏18分 | |
每周了解几个硬件知识+485硬件知识分享被打赏10分 | |
【换取手持数字示波器】树莓派PICO调试器官方固件本地化部署实践被打赏24分 | |
【换取手持数字示波器】分享一个KEIL无法识别CMSIS-DAP调试器的解决办法被打赏20分 | |
【换取手持数字示波器】分享一个自制的ArduinoNano扩展板底板被打赏23分 | |
【换取手持示波器】树莓派PICOW网页烟花被打赏18分 |