天嵌 ARM开发社区

 找回密码
 注册
查看: 4642|回复: 1

Keil是如何实现TQ2440对sdram的在线调试的

[复制链接]
米+油 发表于 2012-12-16 14:39:39 | 显示全部楼层 |阅读模式
其实重点就是那个EXT_RAM.ini文件,这个文件在Keil的安装目录的board目录下有。是官方给的一个文件。
通过对jlink的commander的操作,我们知道可以直接对s3c2440的寄存器进行写,所以,keil就是利用的这个功能,而要对那些寄存器进行写操作,才能让sdram正常工作呢,上面的ini文件就是实现这个功能的。
下面是ini文件做的事。
_WDWORD(0x40000000,0xEAFFFFFE);        // Load RAM addr 0with 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 resetchip
Init();                                 // Initializememory
LOAD output\ledflow.axfINCREMENTAL         // Download program
SetupForStart();                        // Setup for Running

大体知道是通过init()函数对SDRAM进行了初始化(就是对MEMORY CONTROLLER寄存器进行了配置),然后把我们的调试程序*.axf文件下载到sdram中去,最后把PC=0X30000000
FUNC void SetupForStart (void) {
// <o> Program Entry Point
PC = 0x30000000;
}
点了debug后,就会先运行这个ini文件,使sdram正常工作,然后pc到0X30000000
后就开始跑,在debug选项中√上了Run to main(),所以程序会在main外停下来,下面就可以实现程序的单步了。

embedsky_lhh 发表于 2012-12-17 09:05:31 | 显示全部楼层
顶顶,这个必须顶顶
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-18 17:14 , Processed in 1.062500 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表