共2条
1/1 1 跳转至页
2407c,flash 2407c语言:怎样将程序存储器flash存储中的数据赋给一整型变量
问
程序如下:
cmd
MEMORY
{
PAGE 0 : VECS : origin = 0h , length = 40h /* 程序复位 */
PVECS : origin = 40h , length = 100h PROG : origin = 150h , length = 2000h STABLE: origin = 2f00h , length = 1000h
PAGE 1 : MMRS : origin = 0h , length = 05Fh B2 : origin = 0060h , length = 020h B0 : origin = 0200h , length = 100h B1 : origin = 0300h , length = 400h SARAM : origin = 0800h , length = 0800h
EXT: origin = 8000h , length = 8000h
SECTIONS
{
.reset : { } > VECS PAGE 0 /* 复位中断向量表 */
.vectors : { } > VECS PAGE 0 /* 中断向量表 */
.pvecs : { } > PVECS PAGE 0 /* 外围模块中断向量表 */
.text : { } > PROG PAGE 0 /* 代码 */
.cinit : { } > PROG PAGE 0
.const : { } > STABLE PAGE 0
.bss : { } > SARAM PAGE 1 /* 块 B2 */
.stack : { } > B1 PAGE 1 /* 堆栈-40个单元 */
}
程序中对数据的定义如下:
const int sin[300][10]={{12288,12303,12318,12332,12347,12362,12376,12391,12405,12420}....;
const int *p;
int comp=0;
p=&sin[0][0];对数组中元素地址的读取是对的,
comp=sin[0][0];但是读取数组中的元素值就不能成功,如果单步走的话返回的是该元素的地址值,如果直接运行,程序就跑飞
请教用怎样的语句才能把flash中数组的元素值赋给变量comp?
ps:由于特殊要求只能把数组放在程序存储器,而不能放在数据存储器的片外RAM
答 1: const不是这么用的…… 答 2: FLASH中CONST的用法 .const : load = PROG PAGE 0, run = DATA PAGE 1
{
__const_run = .;
*(.c_mark)
*(.const)
__const_length = . - __const_run;
}
cmd
MEMORY
{
PAGE 0 : VECS : origin = 0h , length = 40h /* 程序复位 */
PVECS : origin = 40h , length = 100h PROG : origin = 150h , length = 2000h STABLE: origin = 2f00h , length = 1000h
PAGE 1 : MMRS : origin = 0h , length = 05Fh B2 : origin = 0060h , length = 020h B0 : origin = 0200h , length = 100h B1 : origin = 0300h , length = 400h SARAM : origin = 0800h , length = 0800h
EXT: origin = 8000h , length = 8000h
SECTIONS
{
.reset : { } > VECS PAGE 0 /* 复位中断向量表 */
.vectors : { } > VECS PAGE 0 /* 中断向量表 */
.pvecs : { } > PVECS PAGE 0 /* 外围模块中断向量表 */
.text : { } > PROG PAGE 0 /* 代码 */
.cinit : { } > PROG PAGE 0
.const : { } > STABLE PAGE 0
.bss : { } > SARAM PAGE 1 /* 块 B2 */
.stack : { } > B1 PAGE 1 /* 堆栈-40个单元 */
}
程序中对数据的定义如下:
const int sin[300][10]={{12288,12303,12318,12332,12347,12362,12376,12391,12405,12420}....;
const int *p;
int comp=0;
p=&sin[0][0];对数组中元素地址的读取是对的,
comp=sin[0][0];但是读取数组中的元素值就不能成功,如果单步走的话返回的是该元素的地址值,如果直接运行,程序就跑飞
请教用怎样的语句才能把flash中数组的元素值赋给变量comp?
ps:由于特殊要求只能把数组放在程序存储器,而不能放在数据存储器的片外RAM
答 1: const不是这么用的…… 答 2: FLASH中CONST的用法 .const : load = PROG PAGE 0, run = DATA PAGE 1
{
__const_run = .;
*(.c_mark)
*(.const)
__const_length = . - __const_run;
}
共2条
1/1 1 跳转至页
回复
| 有奖活动 | |
|---|---|
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
| 送您一块开发板,2025年“我要开发板活动”又开始了! | |
我要赚赏金打赏帖 |
|
|---|---|
| Chaos-nano:专为低资源单片机设计的轻量级协作式异步操作系统(ATMEGA328P轻量级操作系统)—— 详细介绍被打赏¥16元 | |
| FPGA配置被打赏¥10元 | |
| Chaos-nano协作式异步操作系统:赋能MicrochipAVR8位单片机的革新之路被打赏¥15元 | |
| 基于esp32开发时串口工具的注意点被打赏¥24元 | |
| 基于FireBeetle2ESP32-C5开发板的舵机控制被打赏¥20元 | |
| 【分享开发笔记,赚取电动螺丝刀】MAX78000开发板制作的电子相册被打赏¥32元 | |
| 基于FireBeetle2ESP32-C5开发板的超声波测距及显示被打赏¥21元 | |
| FireBeetle2ESP32-C5上RTC电子时钟的实现被打赏¥25元 | |
| 【分享开发笔记,赚取电动螺丝刀】MAX78000开发板读取SD卡被打赏¥23元 | |
| 【S32K3XX】Standby RAM 重启后数据异常问题调查被打赏¥38元 | |
我要赚赏金
