全部博文(92)
分类: 嵌入式
2010-03-23 10:52:20
ADS工具使用 建立硬件调试环境
1. 建立ADS工程
最重要的一点:工程目录,脚步目录等都要在英文目录下
先打开一个Nand,点开:DebugRel Setting
Target Setting->Post-linker->ELF(生成可执行文件)
Language Setting->将每种语言都改为ARM920T
Linker->ARM Linker->Ro-base(内存起始地址):0x30000000
->Option->Image entry point->0x30000000
->Layout->object/symbol(初始代码目标文件):2440init.o
->section:Init
-> ARM fromELF->out put format:填Plain binary
简单的分析一下代码:
void
{
memcpy((unsigned char *)0x0,(unsigned char *)0x30000000,0x1000); //将SteppingStone中的4K代码拷贝到SDRAM中,来引导NAND flash 中的主程序
SetSysFclk(FCLK_400M); //设置系统时钟 400M
ChangeClockDivider(2, 1); //设置分频 1:4:8
CalcBusClk(); //计算总线频
Uart_Select(0);
Uart_Init(0, 115200);
Test_Nand();
while(1);
}
2.用AXD 通过H-JTAG 来调试程序
重要:因为我是通过NAND flash, 所以要先启动H-FLASHER将NAND flash Erase
在AXD中options->Configure Target->通过Add将在安装目录下的H-JTAG配置文件(H-JTAG.dll)添加进来
将2440init(NAND flash初始的脚本文件)放到C盘下然后:
在AXD中options->Configure Interface->Session File->Run Configuration Script添加2440init
每次进入都去Configure Target 确定一下,再手动load Image
跑起程序
打开SecureCRT看到
Nand test
Select Nand flash type, K9F1208(1)/K9F2G08(2) :
3.用ADS调LED
反复查mother board 和core board 和 S3C2410A技术手册=>
LED => 41 => EINT0 => GPF0
#include "2440addr.h"
#include "2440lib.h"
#include "def.h"
#include "uart.h"
void
{
memcpy((unsigned char *)0x0,(unsigned char *)0x30000000,0x1000);
SetSysFclk(FCLK_400M); //设置系统时钟 400M
ChangeClockDivider(2, 1); //设置分频 1:4:8
CalcBusClk(); //计算总线频
Uart_Select(0); //初始化串口
Uart_Init(0, 115200);
rGPFCON =(rGPFCON | 0xFFFF) & 0xFF55; //保持GPF4~GPF7不变,同时将GPF0~GPF3置为输出
rGPFUP = rGPFUP & 0xFFF0; //低四位使能上拉
rGPFDAT = 0xFF; //灯是熄灭的
while(1)
{
rGPFDAT = 0xFC;
Delay(500);
rGPFDAT = 0xF3;
Delay(500);
}
}