Chinaunix首页 | 论坛 | 博客
  • 博客访问: 336018
  • 博文数量: 92
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 960
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-21 19:38
文章分类

全部博文(92)

文章存档

2010年(71)

2009年(21)

我的朋友

分类: 嵌入式

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 Main(void)

{

      memcpy((unsigned char *)0x0,(unsigned char *)0x30000000,0x1000);             //SteppingStone中的4K代码拷贝到SDRAM中,来引导NAND flash 中的主程序

      SetSysFclk(FCLK_400M);  //设置系统时钟 400M    

      ChangeClockDivider(2, 1);      //设置分频 148

      CalcBusClk();           //计算总线频

      Uart_Select(0);

      Uart_Init(0, 115200);

      Test_Nand();

      while(1);

}

 

2.AXD 通过H-JTAG 来调试程序

重要:因为我是通过NAND flash, 所以要先启动H-FLASHERNAND flash Erase

AXDoptions->Configure Target->通过Add将在安装目录下的H-JTAG配置文件(H-JTAG.dll)添加进来

 

2440init(NAND flash初始的脚本文件)放到C盘下然后:

AXDoptions->Configure Interface->Session File->Run Configuration Script添加2440init

 

每次进入都去Configure Target 确定一下,再手动load Image

跑起程序

打开SecureCRT看到

Nand test

Select Nand flash type, K9F1208(1)/K9F2G08(2) :

 

 

 

3.ADSLED

反复查mother board core board S3C2410A技术手册=>

LED => 41 => EINT0 => GPF0

#include "2440addr.h"

#include "2440lib.h"

#include "def.h"

#include "uart.h"

 

void Main(void)

{

      memcpy((unsigned char *)0x0,(unsigned char *)0x30000000,0x1000);

     

      SetSysFclk(FCLK_400M);  //设置系统时钟 400M    

      ChangeClockDivider(2, 1);      //设置分频 148

      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);

     

      }

}

阅读(883) | 评论(0) | 转发(0) |
0

上一篇:S3C2440存储器控制器

下一篇:INTERRUPTS AND KEY

给主人留下些什么吧!~~