scf文件,全名scatter file,中文名分散加载文件,是ARMlink的输入参数,如果你想把你的代码固定的放在存储器的某个特定的位置,用scf文件就特别方便。 - LOAD_ROM 0x10020000 0x1000 //加载区 名称 起始地址 地址范围
- {
- EXEC_ROM 0x10020000 0x1000 //执行区 名称 起始地址 地址范围
- {
- * (RESET,+FIRST) //将RESET代码放在区首,最开始执行 FIRST属性符表示放在最开始
- * (+RO) //只读代码和数据放在此区域
- }
- STACK_TOP 0x20005000 UNINIT 0x0 //UNINIT的意思是没有初始化 栈顶 栈:操作系统自动申请和释放
- {
- startup.o (STACK_TOP) //startup.o STACK_TOP放入此处
- }
- STACK 0x20005000 EMPTY -0x1000 //向下空0x1000大小
- {
- }
- HEAP_TOP ImageBase(STACK) UNINIT 0x0 //ImageBase(STACK)不是很懂 从栈底开始堆顶? 堆:程序员自己申请和释放
- {
- startup.o (HEAP_TOP) //startup.o HEAP_TOP放入此处
- }
- HEAP ImageBase(STACK) EMPTY -0x0 //空0
- {
- }
- HEAP_BOTTOM ImageBase(HEAP) UNINIT 0x0
- {
- startup.o(HEAP_BOTTOM) //startup.o HEAP_BOTTOM放入此处
- }
- DATA_UNINIT 0x20000140 UNINIT 0x40
- {
- *(NO_INIT) //NO_INIT 放入此处
- }
- DATA 0x20000240 UNINIT(0x5000-0x240-ImageLength(STACK)-ImageLength(HEAP))
- {
- *(+RW,+ZI) //RW,ZI 放入此处
- }
- }
复制代码
直接来一个scf文件的实例好了。
|