- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
KEIL中如何让程序在RAM中运行
前言
最近老是遇到使用KEIL时需要将部分或者全部程序放到RAM中运行的问题。故此花了不少时间搜索资料和几番尝试,现将
其总结在本篇文章中,也是为大家以后的工作节省时间罢。本文中会介绍通过STM32F411Nucleo的一个例子来介绍几种让
程序在RAM中运行的方法。在该例子中,通过调用ToggleLED函数来翻转LED2亮灭。接下来,我们将通过多种方法将这
段代码放在RAM中运行。
ToggleLED函数从Flash中执行的情况
我们先来看看ToggleLED函数从Flash中执行的情况。下面是ToggleLED函数和它的调用情况。在main函数的while(1)
里调用ToggleLED。
voidToggleLED(void)
{
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);
/*Inserta100msdelay*/
HAL_Delay(100);
}
intmain(void)
{
……
/*##-3-TogglePA05IOinaninfiniteloop#################################*/
while(1)
{
ToggleLED();
}
}
Linker的配置为,见下图:
Flash起始地址:0
RAM起始地址:0
编译后从map文件可以看到,ToggleLED以及其中调用到的HAL_GPIO_TogglePin和HAL_Delay函数的地址都在FLASH
中。
将翻转LED的程序放到SRAM中执行
方法一:通过#pragmaarmsectioncode=“RAMCODE”和#pragmaarmsection。参考Example1代码。
这种方式,可以同时将多个函数放到指定的section。具体方法如下:
1.修改.sct文件,自定义一个叫做RAMCODE的section,放在RW_IRAM1执行区域,地址范围00。
LR_IROM100{;loadregionsize_region
ER_IROM100{;loadaddress=executionaddress
*.o(RESET,+First)
*(InRoot$$Sections)
.ANY(+RO)
}
RW_IRAM100{;RWdata
*.o(RAMCODE)
.ANY(+RW+ZI)
}
}
2.在工程中使用前面修改的.sct文件
3.以#pragmaarmsectioncode=“RAMCODE”开头,以#pragmaarmsection结尾。将所有需要放到RAMCODEsection的
函数包括进来。编译时,编译器会自动将这些函数放到RAMCODE所在0开始的区域。
#pragmaarmsectioncode=RAMCODE
voidToggleLED(void)
{
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);
/*Inserta100msdelay*/
HAL_Delay(100);
}
voidHAL_GPIO_TogglePin(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin)
{
/*Checktheparameters*/
assert_param(IS_GPIO_PIN(GPIO_Pin));
GPIOx-ODR^=GPIO_Pin;
}
uint32_tHAL_GetTick(void)
{
returntick;
}
voidHAL_Delay(__IOuint32_tDelay)
{
uint32_ttickstart=0;
tickstart=HAL_GetTick();
while((HAL_GetTick()
您可能关注的文档
- AutoCAD高级练习题(建筑类)-13zj.doc
- BGT24MTR11本文关于如何使用BGT24MTR1.doc
- CDS7 CSFBV1 2无线网络优化.pdf
- CW练习器 使用说明书.doc
- CW通联一般流程 .doc
- CW通联用语练习.doc
- FR4板材物质成分表.pdf
- FR4板材物质证明书.pdf
- G5110学习资料文件.pdf
- hmc624a学习资料文件.pdf
- 广东省广州市增城区2023-2024学年九年级上学期期末道德与法治试题(答案).doc
- 广东省广州市2021-2022学年九年级上学期期末模拟历史试题(含答案).docx
- 广东省广州市天河区暨南大学附属实验学校2022-2023学年九年级上学期期末历史试题.doc
- 广州市南沙区2023—2024学年第一学期九年级历史期末教学质量监测模拟试卷.doc
- 广东省广州市天河区暨南大学附属实验学校2022-2023学年九年级上学期期末历史试题(答案).doc
- 在全市县区委书记第五次工作座谈会上的讲话.docx
- 3篇中央政法工作会议发言材料汇编.docx
- 5篇贵州省庆祝第二十个中国记者节座谈会经验交流发言材料汇编.docx
- 在全市人大工作座谈会上的讲话.docx
- 在全市人大系统改革创新工作交流会上的讲话.docx
文档评论(0)