支原体肺炎用什么药| 结膜水肿用什么眼药水| 三维b片主治什么病| 水解奶粉是什么意思| 高血糖能吃什么| 刷酸什么意思| 9月19日是什么星座| 什么时候有胎心胎芽| 天铁是什么| 痱子粉什么牌子好| 来大姨妈不能吃什么| 动脉血检查是检查什么| 抖腿有什么好处| 黄精泡酒有什么功效| 前列腺炎该吃什么药| 刘伯温属什么生肖| 尿液中粘液丝高是什么原因| 乖戾是什么意思| 男人有腰窝意味着什么| 喉咙干燥吃什么药| 肾结石检查什么项目| 1月29日什么星座| 湿气重吃什么食物| 尿检白细胞弱阳性是什么意思| 女人阳虚吃什么药效果最好| 2h是什么意思| 新生儿为什么有黄疸| 往生净土是什么意思| 双子座是什么星座| 用加一笔是什么字| 揩是什么意思| 什么是骨质疏松| 天秤座和什么座最配| 高压偏低是什么原因造成的| 红豆配什么打豆浆好喝| 什么是白内障症状| 胸闷气短呼吸困难心慌是什么原因| 366红包代表什么意思| 狼毒是什么| 怀孕建卡需要什么材料| no2是什么气体| 桑叶有什么功效| 武则天是什么朝代| 肺结节吃什么药最好| 社会公德的主要内容是什么| 阴历六月十八是什么日子| 肝的反射区在什么部位| 狗为什么不吃饭| 四维是检查什么| 来龙去脉是什么生肖| 胎儿左侧侧脑室增宽的原因是什么| 前列腺炎有什么症状表现| 西瓜什么时候成熟| 大礼是什么意思| 有什么故事| 肤浅是什么意思| 嘎巴拉是什么| 梦见自己有孩子了是什么预兆| 红配什么颜色最好看| 缺硒吃什么| 东宫是什么意思| 嘴唇一圈发黑是什么原因造成的| 白切鸡用什么鸡| 宝宝喝什么奶粉好| 魔芋粉是什么做的| 手指缝溃烂擦什么药膏| 上腹疼是什么原因| 此地无银三百两是什么意思| 103是什么意思| 什么时候血压最高| 东风是什么意思| 蛋糕用什么奶油好| 你是什么| 托塔李天王的塔叫什么| 前列腺增生用什么药好| 什么散步| 猫能看到什么颜色| 6周岁打什么疫苗| 法官是干什么的| 太平猴魁属于什么茶类| 自主神经功能紊乱吃什么药| 免疫缺陷是什么意思| 人乳头病毒是什么意思| hpv是什么病毒| 大姨妈量少是什么原因| 舌息心念什么| 林彪什么时候死的| 猫砂是什么| 松子吃了有什么好处和坏处| 全自动洗衣机不排水是什么原因| 白细胞低代表什么意思| 膨鱼鳃用什么搭配煲汤| 秦始皇是芈月的什么人| 脚底冰凉是什么原因| 拔智齿后可以吃什么| 龟苓膏不能和什么一起吃| 你干什么呢| 小孩肚子痛吃什么药| 宫颈囊肿有什么症状表现| 长残了是什么意思| 阳萎早谢吃什么药最好| 隐疾是什么意思| 地域黑什么意思| 龟头炎看什么科| 怀孕吃什么| 静心是什么意思| 为什么会有口腔溃疡| 什么是护理| 趣味是什么意思| 亦木读什么| bzd是什么意思| 去离子水是什么| 关节退行性改变是什么意思| 特应性皮炎是什么意思| 乙肝什么症状| 晚上七八点是什么时辰| 十二月份的是什么星座| 什么是接触性皮炎| 2034年是什么年| 月经病是什么意思啊| 感冒吃什么恢复快| 什么牌子空调好| 覆盖是什么意思| 虾不能跟什么一起吃| 妇科检查清洁度二度是什么意思| 大悲咒什么意思| 阿魏是什么中药| 27属相是什么生肖| 喝生姜水有什么好处| 晚上睡觉经常醒是什么原因| 肩膀疼是什么原因| 结婚50年是什么婚| 颈椎病用什么枕头好| 腋下淋巴结挂什么科| 水猴子是什么| 吃什么降尿酸| 为什么眼睛会痛| 怀二胎初期有什么症状| a代表什么意思| 双手发麻是什么病的前兆| 急性腮腺炎吃什么药| 入伏吃羊肉有什么好处| 马英九属什么| hpv81低危型阳性是什么意思| 小便分叉是什么症状| 看脖子应该挂什么科| 粥米是什么米| 翊什么意思| 8月29日什么星座| 91网站是什么| 玫瑰花茶和什么搭配好| 月经不调看什么科室| h 是什么意思| 裤裙搭配什么上衣好看| 夏天中午吃什么| 感觉牙齿松动是什么原因| 醉代表什么生肖| 指甲长的快是什么原因| 韧带钙化是什么意思| 72年五行属什么| 有志什么成| 无动于衷是什么意思| 验孕棒阴性是什么意思| 27属相是什么生肖| lt是什么| 腺体鳞化是什么意思| 什么是婚姻| 阿贝数是什么意思| 吃猪肝有什么好处和坏处| 肉桂茶适合什么人喝| 呼吸不过来要喘大气是什么情况| 子午是什么时间| 当律师需要什么条件| 属虎适合佩戴什么饰品| 黑蝴蝶代表什么| ooc什么意思| 根管治疗是什么| 中指和无名指发麻是什么原因| 出汗有盐霜是什么原因| 橄榄枝象征着什么| 高筋面粉和低筋面粉有什么区别| 6月13日是什么星座| 一什么小狗| 香皂和肥皂有什么区别| 做一半就软了是什么原因| ab和o型血生的孩子是什么血型| 什么照片看不出照的是谁| 咳嗽有痰吃什么药好得最快最有效| x光是什么| 湿疹什么样子| 反应性细胞改变是什么意思| 占位是什么意思| 属龙本命佛是什么佛| 暗代表什么生肖| 白羊座和什么星座最配| 来月经同房有什么影响| 东北有什么好玩的景点| 肝回声改变是什么意思| 肋骨里面是什么器官| 肺部纤维化是什么意思| 甲方是什么意思| 勰读什么| 蜈蚣最怕什么东西| 脑多普勒检查什么| 无语是什么意思| 五险一金有什么用| 戴朱砂有什么好处| 乙醇和酒精有什么区别| 包皮炎看什么科| 痔疮是什么样子的| 尿素测定是查什么| yellow是什么颜色| 美的不可方物什么意思| 少腹是什么意思| 晚上尿次数多什么原因| 富字五行属什么| 发际线高的人说明什么| 个子矮吃什么才能长高| 脾胃虚寒是什么症状| 节操是什么意思| 陨石有什么作用和功效| 千娇百媚是什么意思| 党工委书记是什么级别| 腹部b超挂什么科| 唐僧原名叫什么| 关节退行性变是什么意思| 甲状腺结节是什么症状| 一什么老虎| 白麝香是什么味道| 世袭罔替什么意思| 尿液茶色是什么原因| 三合一是什么意思| 什么是假性高血压| 阴虚内热吃什么药好| 玥是什么意思| nba打铁是什么意思| 老婆生日送什么鲜花| 巴宝莉属于什么档次| 梦到墓地什么预兆| 九价是什么意思| 腐竹是什么做的| 男性夜间盗汗什么原因| 谷维素是治疗什么的| 什么虎什么山| 空腹吃柿子有什么危害| 坐班是什么意思| 72岁属什么| 尖牙什么时候换| 舌系带短有什么影响| 嘴唇起小水泡是什么原因| 晚上吃什么减肥| 赵本山什么时候去世的| 父母是o型血孩子是什么血型| 黄芪配什么不上火| 肾阴虚的症状吃什么药| 上飞机不能带什么| 霉菌性阴道炎吃什么药| 心律不齐是什么病| fredperry是什么牌子| 中间人是什么意思| 为什么受伤总是我| 一个既一个旦念什么| 1994年五行属什么| 莲字五行属什么| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 嵌入式开发 ? MCU ? 将函数加载到Flash或SRAM指定地址的方法

共4条 1/1 1 跳转至

将函数加载到Flash或SRAM指定地址的方法

菜鸟
2025-08-04 16:43:47     打赏
百度 在研发和制造高品质的产品的同时,我们也需要为未来的出行储备力量。

Questions:AT32 部分型号有零等待闪存和非零等待闪存,程序在零等待闪存执行速度比在非零等待闪存执行速度快,如果有函数对执行速度有要求,可以将该函数加载到零等待区执行。当零等待闪存使用完后,如果还有函数对执行速度有要求,可以将该函数加载到 SRAM 执行,前提是SRAM 还有足够的空间存放该函数代码。
Answer: 有两种将某个函数加载到 Flash 或 SRAM 指定地址执行的方法,以 AT32F403A 为例:


1. 方法一:修改分散加载描述文件
在 Keil 中:修改分散加载描述文件*.sct(scatter file),在工程选项的 linker 页面中,选择*.sct 文件,编辑*.sct。

如果是要放在Flash零等待区指定地址,添加*.o(ZWROMCODE),自定义一个叫做ZWROMCODE的section。LR_IROM1 为零等待区,LR_IROM2 为非零等待区,设置如下:

复制
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x08000000 0x00020000 { ; load region size_region
ER_IROM1 0x08000000 0x00020000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$Sections)
.ANY (+RO)
*.o(ZWROMCODE)
}
RW_IRAM1 0x20000000 0x00038000 { ; RW data
.ANY (+RW +ZI)
}
}
LR_IROM2 0x08020000 0x000E0000 { ; load region size_region
ER_IROM2 0x08020000 0x000E0000 { ; load address = execution address
.ANY (+RO)
}
}

也可以根据需要单独分配一块零等待区 LR_IROM2,添加*.o(ZWROMCODE),自定义一个叫做ZWROMCODE 的 section。LR_IROM1 和 LR_IROM2 为零等待区,LR_IROM3 为非零等待区,设置如下:

复制
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x08000000 0x00010000 { ; load region size_region
ER_IROM1 0x08000000 0x00010000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x00038000 { ; RW data
.ANY (+RW +ZI)
}
}
LR_IROM2 0x08010000 0x00010000 { ; load region size_region
ER_IROM2 0x08010000 0x00010000 { ; load address = execution address ZW
*.o(ZWROMCODE)
}
}
LR_IROM3 0x08020000 0x000E0000 { ; load region size_region
ER_IROM3 0x08020000 0x000E0000 { ; load address = execution address NZW
.ANY (+RO)
}
}

如果是要放在 SRAM 指定地址,根据需要分配 RW_IRAM2 大小,添加*.o(RAMCODE),自定义一个叫做RAMCODE 的 section。设置如下,以 SRAM 扩大到 224KB 为例,RW_IRAM1 大小 196KB,RW_IRAM2大小 28KB。

复制
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x08000000 0x000C0000 { ; load region size_region
ER_IROM1 0x08000000 0x000C0000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x00031000 { ; RW data
.ANY (+RW +ZI)
}
RW_IRAM2 0x20031000 0x00007000 { ; RW data
*.o(RAMCODE)
}
}

在需要加载到 Flash 或 SRAM 指定地址中的函数前,用__attribute__((section("SECTION_NAME")))声明该函数放在该 section 中,SECTION_NAME 可以自行命名,如下面是使用 RAMCODE。如果有多个函数,那么每个函数前面都需要加__attribute__((section("RAMCODE")))。设置如下:

复制
__attribute__((section("RAMCODE")))
void delay(unsigned char num)
{
while(num)
{
num--;
}
}
__attribute__((section("RAMCODE")))
void test(void)
{
for(;;)
{
led_gpio_port[led]->odt ^= led_gpio_pin[led];
delay(10);
}
}

也可以将所有需要加载的函数放在以#pragma arm section code = “RAMCODE” 开头,以#pragma arm section 结尾的中间,声明所有函数放在 RAMCODE section 中。设置如下:

复制
#pragma arm section code = “RAMCODE"
void delay(unsigned char num)
{
while(num)
{
num--;
}
}
void test(void)
{
for(;;)
{
led_gpio_port[led]->odt ^= led_gpio_pin[led];
delay(10);
}
}
#pragma arm section



专家
2025-08-04 18:58:05     打赏
2楼

感谢分享


专家
2025-08-04 18:58:45     打赏
3楼

感谢分享


专家
2025-08-04 19:02:27     打赏
4楼

感谢分享


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
金玉其外败絮其中是什么意思 胃窦炎吃什么药效果最好 宫颈癌前期有什么症状 头疼喝什么药 压疮用什么药最快能好
同型半胱氨酸是什么 泊字五行属什么 牛肉饺子配什么菜好吃 聚乙二醇400是什么 开窍是什么意思
看演唱会需要准备什么 膀胱炎看什么科 吃什么生发 非钙化斑块是什么意思 卧底归来大结局是什么
什么食物含镁 排骨炖什么好吃又有营养 发心是什么意思 处女是什么 什么人不适合做业务员
左下腹痛是什么原因1949doufunao.com 眼球突出是什么原因hcv9jop5ns4r.cn 吴亦凡为什么退出exohcv8jop7ns8r.cn 拔冗是什么意思hcv8jop1ns9r.cn 梦见偷桃子是什么意思hcv8jop5ns9r.cn
口腔出血是什么原因hcv9jop5ns2r.cn 女人吃什么排卵最快hcv8jop1ns9r.cn 土界读什么0297y7.com 鲑鱼是什么鱼hcv8jop1ns5r.cn 月经血块多是什么原因hcv8jop9ns9r.cn
慢性荨麻疹吃什么药hcv7jop6ns1r.cn 心肌酶是查什么的hcv9jop4ns9r.cn 热疹用什么药hcv8jop8ns6r.cn hr是什么hcv9jop8ns1r.cn 春风得意是什么生肖hcv8jop4ns8r.cn
狗跟什么生肖最配hcv9jop0ns0r.cn 蒲公英和什么相克致死hcv8jop8ns2r.cn 长方形纸可以折什么hcv7jop9ns1r.cn 为什么不建议儿童做胃镜hcv9jop6ns9r.cn 房颤挂什么科sanhestory.com
百度