共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 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图四被打赏50分 | |
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 |