历史上的今天
今天是:2025年06月13日(星期五)
2019年06月13日 | STM32定义堆栈地址到ram区顶部
2019-06-13 来源:eefocus
本设置针对stm32f103rbt6的设置,该芯片RAM大小为20kB,故RAM区地址范围为0x20000000—0x20005000,芯片信息如下图所示;

第一步:
设置.sct文件;
;*************************************************************
; *** Scatter-Loading Description Filegenerated by uVision ***
; *************************************************************
LR_IROM1 0x08000000 0x00020000 { ;load region size_region
ER_IROM1 0x08000000 0x00020000 { ; load address = executionaddress
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x00005000 { ; RW data
.ANY (+RW +ZI)
}
RW_IRAM2 0x20004800 UNINIT 0x00000800 { ; STACK ADDRESS
startup_stm32f10x_md.o (STACK)
}
RW_IRAM3 0x20004600 UNINIT 0x00000200 { ; HEAP ADDRESS
startup_stm32f10x_md.o (HEAP)
}
}

RW_IRAM2 0x20004800 UNINIT 0x00000800 //设置栈起始地址为0x20004800,栈大小为0x00000800
RW_IRAM3 0x20004600 UNINIT 0x00000200 //设置堆起始地址为0x20004600,堆大小为0x00000200
第二步:
在启动文件中设置堆栈大小;

此处设置的堆栈大小要与第一步一致,否则将会以这次设置的大小为准,第一步设置的堆栈大小将失效;
第三步:
设置存储区分配地址方式;
如下图所示设置,Scatter file选择第一步设置好的.sct文件;

第四步:
查看生成的.map文件
如下图所示,表示起始的堆栈地址已设置到RAM顶端

第五步:
测试验证;
如下图所示,测试验证成功,开始时堆栈地址指向RAM的顶端,即R13的值为0x20005000

下一篇:STM32F4的CCM之二
史海拾趣
|
KBDHID 键盘布局定制问题(USAGE-TO-SCANCODE) 在kbdhid.cpp文件下 有3个USAGE-TO-SCANCODE类型的数组,不清楚顺序是根据什么来的?请大家指点下… 查看全部问答> |
|
想把A主机显示的图像发送到B主机上,除了抓屏还有什么效率比较高的方法 如题,好多天了,没有找到比较好的解决方法。想从底层的驱动来考虑,不知道怎么弄,也没有驱动基础。大家给点建议,谢谢了… 查看全部问答> |
|
这是我的一些Xilinx的FPGA的论文,传上来给大家分享一下!大家多多支持啊! 我会分批上传,方便大家选择性的交流与下载! [ 本帖最后由 jjkwz 于 2011-11-16 17:08 编辑 ]… 查看全部问答> |
|
要求输出电压的范围为0V~9.9V,纹波不大于10mV,步进0.1v,输出电流大于500mA,能预制置输出初值,输出电压值由数码管显示。单片机选用51系列的。DA转换电路芯片网上看了下DAC0832最简单普遍。有朋友能指导我做下吗?… 查看全部问答> |
|
用ftp下载vxworks镜像到目标机的时候,网络有问题,求助各位前辈 通过ftp将vxworks镜像从PC机下到目标机的时候,是通过ftpXfer这个函数从PC机读取文件,每次读完镜像之后关闭套接字,但套接字指定的端口变成就会time_wait状态,就要等一段时间才能通过这个函数,从PC机再次通过ftp下载镜像,但这段时间有一分半钟 ...… 查看全部问答> |
|
求一个S3C2440 WINCE6.0 的BSP,我网上下载了一个 总是编译出错,哪位高人那里有通过编译的BSP,发我一份吧! 感激不尽! eyob@163.com … 查看全部问答> |




