历史上的今天
今天是:2025年04月16日(星期三)
2019年04月16日 | STM32定义堆栈地址到ram区顶部
2019-04-16 来源:elecfans
本设置针对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

史海拾趣
|
一、线路图: 1、rsense电阻取1欧姆时。充电电流为250MA,0.5欧姆时,电流为520MA,2N6109用TIP42代替,SHUNT电阻为限流电阻,大约1K,其他参数如图。 转绢流后充电机充电电流是原来的1/8还是1/16取决于PGM3脚的接法: Rsense电阻两 ...… 查看全部问答> |
|
#include #define uchar unsigned char uchar key_in = 0x55; void main() { //P1口设置为准I/O口模式 P1M1 = 0x00; P1M2 = 0x00; SCON = 0x50; PCON = 0x00; SSTAT=0x00; BRGCON=0x00; BRGR0 = 0x90; BRGR1 = 0x01; BRGCON=0x0 ...… 查看全部问答> |
|
本人在移植DM9000驱动中遇到一个棘手的问题,搞了两天仍未解决,望大家帮帮忙! 1.DM9000的CMD与ARM2440的A2地址线相连,AEN连接nGCS4,其偏移地址是0x20000300; 2.DM9000的ID为0x90000A46,但却始终检测不了,却读出为0x46464646,而0x46正是DM ...… 查看全部问答> |
|
quartus功能仿真出现致命错误。 Fatal error: Module: quartus_sim.exe Exception: Access Violat *** Fatal error: Module: quartus_sim.exe Exception: Access Violation Stack Trace: 01a314e6: SDB_DFF_INFO::set_last_clock_value() + 0x34 (tsm_sdb) 01a03144: EDS_ENGINE::propagate() + 0xb0 (TSM_EDS) 01a03321: EDS_ENGINE::propaga ...… 查看全部问答> |
|
LM4871/CSC8002低电压3W功率放大器IC应用电路原理图说明 LM4871/CSC8002 是一个BTL 桥连接的音频功率放大器.它能够在5V 电源电压下给一个3Ω 负载提供THD 小于10%、平均值为3W 输出功率。在关闭模式下电流的典型值为0.6uA. LM4871/CSC8002 是为提供大功率,高保真音频输出而专门设计的.它仅仅需要少量 ...… 查看全部问答> |
|
MSP430F149 32k晶振不振 开始的时候,上电发现32K和6M的晶振全不振,后来经过测量,发现/RST信号为0V,原来/RST信号被我弄错了。 后来修改的电路,/RST信号为高,6M的晶体工作正常,但是32K的没有工作。只输出一个有3V左右直流偏置、有不稳定0.5V ...… 查看全部问答> |




