共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电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 | |
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 | |
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 | |
汽车电子中巡航控制系统的使用被打赏10分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏100分 |