说明: 
S3C44B0 
Flash 
RAM 
型号:SST39VF160 
大小:1M×16bit 
起始地址:0x0 
编程算法:SST39X160X Flash 
1.  【环境】 MDK 3.40 及以上版本,ULINK2 仿真器,S3C44B0 开发板。 
 
 
 
 
 
 
 
 
 
 
 
 
型号:HY57V65160B 
大小:4M×16bit 
起始地址:0x0C000000 
 
RAM——分散加载文件 
A.  首先设置 Linker 对话框,选择分散加载文件,如图 1. 
图 1 
 
 
在图 1 中点击 Edit,即可看到分散加载文件的内容: 
; ************************************************************* 
; *** Scatter-Loading Description File generated by uVision *** 
; ************************************************************* 
; Run in RAM 
 
LR_ROM1 0x0C000000               
{                                                 ; load region 
   ER_ROM1 0x0C000000 0x050000    
   {                                             ; load address = execution address 
     *.o (RESET, +First) 
     *(InRoot$$Sections) 
     .ANY (+RO) 
   } 
   RW_RAM1 0x0C050000 0x020000     
   {                                             ; RW data 
     .ANY (+RW +ZI) 
   } 
} 
上面是一个最基础的分散加载文件,指定程序在RAM 中调试。0x0C000000 是
RAM 的起始地址,在本文的说明部分已经指出了。 
您可以根据自己的实际情况编写分散加载文件 
参考: http://www.embedinfo.com/FAQ/FAQanswer.asp?id=262 
B.  然后设置 Debug 对话框,如下图,图 2。 
在上图中点击 Edit 可以看到 DebugInRam.ini 的内容。 
//*** <<<  Use Configuration !disalbe! Wizard in Context Menu >>>  *** 
 
FUNC void Setup (void) 
 
{ 
     _WWORD (0x1c00000, 0x00000008); 
 
     _WWORD (0x01C80000, 0x11119102); 
 
     _WWORD (0x01C80004, 0x00000600); 
     _WWORD (0x01C80008, 0x00007FFC); 
     _WWORD (0x01C8000C, 0x00007FFC); 
     _WWORD (0x01C80010, 0x00007FFC); 
     _WWORD (0x01C80014, 0x00007FFC); 
     _WWORD (0x01C80018, 0x00007FFC); 
     _WWORD (0x01C8001C, 0x00018000); 
     _WWORD (0x01C80020, 0x00018000); 
 
     _WWORD (0x01C80024, 0x00860459); 
     _WWORD (0x01C80028, 0x00000010); 
     _WWORD (0x01C8002C, 0x00000020); 
     _WWORD (0x01C80030, 0x00000020); 
       //  Program Entry Point 
        pc = 0x0C000000; 
 
}       
 
 
LOAD ./Run_In_Ram/LED_Test.axf INCREMENTAL   
Setup();                                           // Setup for Running 
go main 
 
红色:初始化外部 SDRAM 以便 SDRAM 能够访问,如果您的 RAM 是内部
 
就不用初始化了。 
绿色:因为程序是下载到 0x0c000000,而 PC 默认为 0.因此必须制定 PC
以是其能找到正确的程序。 
蓝色:加载生成的.axf 文件。等同于选中图 2 中的 Load application at Startup 
紫色:  指定程序运行到 main。等同于选中图 2 中的 Run to main 
C.  设置好 A,B 两项,程序就能在 RAM 中正确运行和调试了。注意 Utilities 里面不
要选中 Update…,如图 3. 
RAM—— 配置 target 对话框 
图 3 
前面我们利用分散加载文件实现了程序在 RAM 中的运行调试,下面我们介绍另外一种方法,
直接在 MDK 中配置选项框。 
1)  配置 target,如图 4. 
 
图 4 
 
我们在看看分散加载文件,对比一下您就能发现其实这两种方法本质一样。 
2)  看到这里大家是不是有个疑问,如何选择使用分散加载文件还是直接用 MDK 进行配置
呢?请看图 5. 
 
图 5 
注意一下红色标记。不勾上它就是选用分散加载文件了。对比一下图 1 吧。 
OK,接下来要做的就是 RAM——分散加载文件中的步骤 B,C 了。这里就不重复咯。 
 
 
两种方法已经结束完毕,大家看看代码吧