从0开始学Keil下的S3C2440裸机开发-2使用外部SDRAM
来源:互联网 发布:中山大学软件学院课程 编辑:程序博客网 时间:2024/06/03 17:57
和使用内部RAM一样,关键设置分散加载文件,同时设置JLINK初始化配置文件。
1、新增工程配置组。
2设置分散加载组
3设置ini文件
Ext_Ram内容:
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
}
_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 .\output\obj\s3c2440keil.axf INCREMENTAL // Download program
SetupForStart(); // Setup for Running
g, main // Goto Main
更改S3C2440.S文件如下:
DCD ||Image$$ER_ROM1$$RO$$Length||+\
||Image$$RW_RAM1$$RW$$Length||
去调内部RAM运行时给改的I.
4运行调试
5关于分散加载和JLINK初始化文件
- 从0开始学Keil下的S3C2440裸机开发-2使用外部SDRAM
- 从0开始学Keil下的S3C2440裸机开发-2使用外部SDRAM
- 从0开始学Keil下的S3C2440裸机开发-3使用外部NORFLASH+内部RAM
- 从0开始学Keil下的S3C2440裸机开发-3使用外部NORFLASH+内部RAM
- 从0开始学Keil下的S3C2440裸机开发-1使用内部RAM
- 从0开始学Keil下的S3C2440裸机开发-1使用内部RAM
- KEIL下S3C2440裸机开发
- s3c2440的SDRAM裸机程序
- 一起学mini2440裸机开发(二)--MDK自带的S3C2440.s分析
- 一起学mini2440裸机开发(二)--MDK自带的S3C2440.s分析
- 一起学mini2440裸机开发(三)--S3C2440时钟学习
- 一起学mini2440裸机开发(四)--S3C2440定时器学习
- 一起学mini2440裸机开发(三)--S3C2440时钟学习
- 一起学mini2440裸机开发(三)--S3C2440时钟学习
- 一起学mini2440裸机开发(四)--S3C2440定时器学习
- s3c2440裸机开发环境的搭建
- Keil+S3C2440裸机代码编译环境搭建
- s3c2440的sdram原理
- HDU 1251-统计难题
- 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于偶数前面
- Android 小功能 -- JSON的三种解析方式
- Hadoop集群(第1期)_CentOS安装配置
- Mac OS X代码量统计程序(Python版)
- 从0开始学Keil下的S3C2440裸机开发-2使用外部SDRAM
- SQLite实现不同数据库的表内容复制--从一个数据库把表和内容复制到另一个数据库
- C++学习笔记->指针与引用
- 131_leetcode_Valid Sudoku
- 深度优先遍历 和 广度优先遍历
- 电脑重启后打印机消失,打开设备和打印机会报错
- 佳能数码相机照片删除了怎么恢复,如何恢复还原佳能相机误删的照片
- js 字符串转数字 加1
- 数据结构伪C代码:8.动态存储管理