歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 基於S3C2410 的MDK 例程移植

基於S3C2410 的MDK 例程移植

日期:2017/3/1 10:20:13   编辑:Linux編程

移植所關注的要點如下所示:

1.分散加載文件

關於散加載文件的具體內容介紹,可參考附錄1“Realview MDK 中鏈接腳本詳細解析”,這裡只針對S3C2410 以及開發板的特點,給出具體的代碼參考。
之前提到的S3C2410 及其開發板的一些基本參數 (參考:http://www.linuxidc.com/Linux/2012-06/62484.htm),這裡我們要關心的是SDRAM 和Nor Flash 的編址問題。通過閱讀S3C2410 用戶指南可知,地址分布如下:
0x0000 0000 ~~ 0x0100 0000 :32M Nor Flash
0x8000 0000 ~~ 0x8100 0000 :32M Nor Flash
0x3000 0000 ~~ 0x0200 0000 :64M SDRAM
因此,針對不同的程序運行地址,就有不同的分散加載文件:


1) 程序運行在Nor Flash 中(RuninFlash.sct):
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
;Run in Flash
LR_ROM1 0x00000000 { ; load region
ER_ROM1 0x00000000 0x0200000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_RAM1 0x30000000 0x4000000 { ; RW data
.ANY (+RW +ZI)
}
RW_IRAM1 0x40000000 0x00001000 {
.ANY (+RW +ZI)
}
}
2) 程序運行在SDRAM 中(RuninRAM.sct):
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
; Run in RAM
LR_ROM1 0x30000000 { ; load region
ER_ROM1 0x30000000 0x02000000 { ; load address = execution address


*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_RAM1 0x30200000 0x3E00000 { ; RW data
.ANY (+RW +ZI)
}
RW_IRAM1 0x40000000 0x00001000 {
.ANY (+RW +ZI)
}
}

Copyright © Linux教程網 All Rights Reserved