TX2440 裸跑实验-跑马灯(ADS1.2编译) 入门

TX2440 裸跑实验-跑马灯(ADS1.2编译) 入门

一.实验目的:

理解汇编的编程结构,有助于学习ARM汇编,为后续学习CPU的启动机制来了个入门级

二.实验环境:

TX2440平台

三.实验工具:

ADS1.2 + AXD + JLINK调试

四.实验步骤:

1.在ads 上建立新工程,增加两个源文件.

 

int.s 源码:

;------------------------------------------------------------

;我的LED程序,EastonWoo procedure

 area init,code,readonly
 import main

start
 ldr sp,=4096
 bl main
 end

;------------------------------------------------------------

 

 

main.c 源码:

//------------------------------------------------------------

//我的LED 实验程序,EastonWoo procedure


#define rGPFCON (*((volatile unsigned *)0x56000050))
#define rGPFDATA (*((volatile unsigned *)0x56000054))

#define LED1_ON rGPFDATA &=(~(1<<0))
#define LED2_ON rGPFDATA &=(~(1<<1))
#define LED3_ON rGPFDATA &=(~(1<<2))
#define LED4_ON rGPFDATA &=(~(1<<3))

#define LED1_OFF rGPFDATA |=(1<<0)
#define LED2_OFF rGPFDATA |=(1<<1)
#define LED3_OFF rGPFDATA |=(1<<2)
#define LED4_OFF rGPFDATA |=(1<<3)

void delay(int i)
{
    while(i--);
}
int main()
{
    rGPFCON = (rGPFCON & 0xFFFFFF00) | 0x55;   //input:输入模式(检测);output:输出模式(输0,输1);高阻状态(常用于AD转换)
    while(1)
    {
        LED1_ON;
        delay(100000);
        LED2_ON;
        delay(100000);
        LED3_ON;
        delay(100000);
        LED4_ON;
        delay(100000);

        LED1_OFF;
        delay(100000);
        LED2_OFF;
        delay(100000);
        LED3_OFF;
        delay(100000);
        LED4_OFF;
        delay(100000);
    }
return 0;
}

//------------------------------------------------------------

 

2.设置ads工程
    post-linker : ARM fromELF
    ARM Assembler/ARM C Compiler : ARM902T
    ARM Linker -> Output -> RO Base : 0x30000000
               -> Options -> Image entry point : 0x30000000
               -> Layout -> Object/Symbol : init.o
                         -> Section : init
 
 
3.设置axd调试:
3-1) 设置"启动AXD时自 动初始化SDRAM":
    Options-> Configure Interface-> Session File
                勾上Run Configration Script
                按Browse把脚本文件2440init.txt加进来
脚本2440init.txt:
 
setmem 0x53000000,0x00000000,32
setmem 0x4a000008,0xffffffff,32
setmem 0x4a00001c,0x00007fff,32
setmem 0x48000000,0x2212d110,32
setmem 0x48000004,0x00000f40,32
setmem 0x48000008,0x00002e50,32
setmem 0x4800000c,0x00002e50,32
setmem 0x48000010,0x00002e50,32
setmem 0x48000014,0x00002e50,32
setmem 0x48000018,0x00002e50,32
setmem 0x4800001c,0x00018005,32
setmem 0x48000020,0x00018005,32
setmem 0x48000024,0x00960542,32
setmem 0x48000028,0x00000032,32
setmem 0x4800002c,0x00000030,32
setmem 0x48000030,0x00000030,32
 
其实这个命令的作用就是设置CPU的看门狗,中断等等.
 
3-2) 设置"连接JINK调试库"
    Options-> Configur Target
             按Add 把 Jlink安装目录下的JLinkRDI.dll加进来
             按Configure 生效
             按OK 结束设置.
 
3-3) 重启一下AXD 就可以调试了.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值