工程源碼下載http://download.csdn.net/detail/lc123yx/8280691windows
個人開發環境:windows 7 32位,J-linkv8,mini2440開發板一塊。最後選擇了:MDK4.72版本,J-ink v8的當前最新版本J-linkARM v4.94。ide
1)打開Keil uVision4新建一個工程:
2)新建一個目錄用於存放咱們的工程文件,這樣我用新建一個test目錄:而且取工程名爲test並保存:函數
3)接下來選擇CUP database:咱們選擇samsung的S3C2440A,點擊OK;以後會出現第二個圖問你是否拷貝'S3C2440.s'到工程文件夾並加入到工程裏,S3C2440.s是啓動代碼咱們選擇YES測試
4)而後咱們須要對S3C2440.s進行一些必須的配置,打開此文件選擇編輯界面下面的Configuration wizard進行配置,這裏我把所有都打上勾,而後保存:ui
5
)以後新建一個
c
文件並編寫代碼,我習慣新建一個
main
目錄用來保存這個存放入口函數的文件,而後把這個文件加到工程裏
:
測試程序spa
- #include <S3C2440.H>
- void delay()
- {
- int i,j;
- for(i=0;i<10000;i++)
- {
- for(j=0;j<50;j++);
- }
- }
- int main()
- {
- GPBCON = 0x155555;
- while(1)
- {
- GPBDAT |= 0x1E0;
- GPBDAT &= 0x1C0;
- delay();
-
- GPBDAT |= 0x1E0;
- GPBDAT &= 0x1A0;
- delay();
- GPBDAT |= 0x1E0;
- delay();
- }
- }
6)把全部c源文件加進工程以後,再選擇Target 1的Optionsfor Target ' Target 1'進行相應的配置.net
④在User選項裏相應位置添加命令以下:(用於生成.bin文件和.axf調試文件,添加的命令爲:fromelf --bin -o @p.bin @p.axf,記得前面打勾)debug
以下圖Asm配置3d
⑤在Linker選項裏勾上Use Memory Layout from target Dialog,以下圖:調試
⑥在debug選項的配置主要有如下幾項:
1)勾上右邊的Use,Use裏選擇J-Link/J-Trace arm(選擇Jlink調試)
2)勾上LoadApplication at Startup,勾上Run to main() (讓調試的時候直接從main函數開始)
3)在InitializationFile選擇以前修改的Ext_ARM.ini文件的路徑
在工程目錄下創建一個文本文檔,複製下面代碼,名字改爲Ext_RAM.ini 將文中test改爲本身的工程名稱。
Ext_RAM.ini
- FUNC void SetupForStart (void) {
-
- // <o> Program Entry Point
- PC = 0x30000000;
- }
-
-
- FUNC void Init (void) {
-
- _WDWORD(0x4A000008, 0xFFFFFFFF); // Disable All Interrupts
-
- _WDWORD(0x53000000, 0x00000000); // Disable Watchdog Timer
-
- // Clock Setup
- // FCLK = 300 MHz, HCLK = 100 MHz, PCLK = 50 MHz
- _WDWORD(0x4C000000, 0x0FFF0FFF); // LOCKTIME
- _WDWORD(0x4C000014, 0x0000000F); // CLKDIVN
- _WDWORD(0x4C000004, 0x00043011); // MPLLCON
- _WDWORD(0x4C000008, 0x00038021); // UPLLCON
- _WDWORD(0x4C00000C, 0x001FFFF0); // CLKCON
-
- // Memory Controller Setup for SDRAM
- _WDWORD(0x48000000, 0x22000000); // BWSCON
- _WDWORD(0x4800001C, 0x00018005); // BANKCON6
- _WDWORD(0x48000020, 0x00018005); // BANKCON7
- _WDWORD(0x48000024, 0x008404F3); // REFRESH
- _WDWORD(0x48000028, 0x00000032); // BANKSIZE
- _WDWORD(0x4800002C, 0x00000020); // MRSRB6
- _WDWORD(0x48000030, 0x00000020); // MRSRB7
-
- _WDWORD(0x56000000, 0x000003FF); // GPACON: Enable Address lines for SDRAM
- }
-
-
- // Reset chip with watchdog, because nRST line is routed on hardware in a way
- // that it can not be pulled low with ULINK
-
- _WDWORD(0x40000000, 0xEAFFFFFE); // Load RAM addr 0 with branch to itself
- CPSR = 0x000000D3; // Disable interrupts
- PC = 0x40000000; // Position PC to start of RAM
- _WDWORD(0x53000000, 0x00000021); // Enable Watchdog
- g, 0 // Wait for Watchdog to reset chip
-
- Init(); // Initialize memory
- LOAD
Objects\
test.axf INCREMENTAL // Download program
- SetupForStart(); // Setup for Running
- g, main // Goto Main
點擊Settings按鈕,設置JTAG Speed爲Auto Selection,以下圖
Utilities選項
以後就算配置好了,如今rebuild一下,就能夠在工程目錄裏生成bin文件跟axf文件了,連好Jlink和開發板,點擊debug按照開始調試,不出之外,就能夠開始調試了,以下所示:
鏈接上Jlink 開發板Nand Flash啓動 點Debug
單步調試