共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 跳转至页
回复
有奖活动 | |
---|---|
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
【有奖活动】震撼来袭!这场直播将直击工程师的心灵! | |
“我想要一部加热台”活动,不花钱赢取开发好工具!活动开始了哦 | |
【有奖活动】伙伴们:您的“需求”解决了吗? | |
抽奖了,抽奖了,金升阳医疗电源 |
打赏帖 | |
---|---|
【换取手持数字示波器】+与同事对定时器输出相位可调PWM移相全桥控制分享被打赏50分 | |
【换取手持数字示波器】+LP-MSPM0L1306开发板试用体验+串口被打赏40分 | |
CC-RL编译器相关问题求助被打赏10分 | |
【换取手持数字示波器】+与同事对ESP-12开发调试经验分享被打赏50分 | |
【换取手持数字示波器】+同事tek示波器调试spi解析被打赏50分 | |
【换取手持数字示波器】+2.6寸墨水屏调试经验被打赏50分 | |
换取手持数字示波器+个人开关电源的设计经验被打赏50分 | |
【换取手持数字示波器】+【APT32F173测评】+URAT被打赏20分 | |
【换取手持数字示波器】CH32X035的定时器以及外部中断体验被打赏50分 | |
【换取手持数字示波器】CH32X035搭建开发环境(RISC-V)被打赏50分 |