Jlink FL2440 裸机开发(一) 点亮LED和按键控制

开发环境:ADS

调试工具:Jlink


前几天用mdk4.72开发裸机程序,工程设置上遇到点问题,为了不影响学习进度,暂时用ads开发,mdk调通后再写博客说明。


ads安装一路默认即可。

1.工程创建

选择ARM Executable Image

2.添加文件start.s和main.c 添加时注意在add to Project选项上打对勾

3.编辑

start.s内容:

  AREA |DATA|,CODE,READONLY 
 
  ENTRY 
  ldr r13, =0x1000 
  IMPORT
  b
l main 
  END

main.c内容


/*
本实验接口说明

GPB5  ------ LED0
GPB6  ------ LED1
GPB8  ------ LED2
GPB10 ------ LED3


GPF0 ------S2

GPF2 ------S3

GPF3 ------S4

GPF4 ------S5按下后为低电平
*/


/*------------------------地址声明---------------------------*/


#define GPBCON (*(volatile unsigned *)0x56000010) 
#define GPBDAT (*(volatile unsigned *)0x56000014) 
#define GPBUP (*(volatile unsigned *)0x56000018)


#define GPFCON (*(volatile unsigned *)0x56000050) 
#define GPFDAT (*(volatile unsigned *)0x56000054) 
#define GPFUP (*(volatile unsigned *)0x56000058)


#define uchar unsigned char
#define uint unsigned int

/*-------------------------------------------------------------
函数名称: ledMain
功能描述: 入口程序
初始化后,进入跑马灯死循环
传    参:
返 回 值: int 0
-------------------------------------------------------------*/
int main(void)
{
GPBCON = 0x1dd7fc; // GPB5,GPB6,GPB8,GPB10设置为输出
GPBDAT = ((1<<5)|(1<<6)|(1<<8)|(1<<10)); //使LED全灭
GPBUP = 0x00; 

GPFCON = 0;
GPFUP = 0;

//GPBDAT = (1<<5)|(1<<6)|(1<<8)|(1<<10);
GPBDAT=0x7ff;

while (1) // 按键控制LED
{
if(!(GPFDAT & 0x01))//GPF0
{
GPBDAT = ~(1<<5);
}
if(!(GPFDAT & 0x04))//GPF2
{
GPBDAT = ~(1<<6);
}
if(!(GPFDAT & 0x08))//GPF3
{
GPBDAT = ~(1<<8);
}
if(!(GPFDAT & 0x10))//GPF4
{
GPBDAT = ~(1<<10);
}


}
return 0;  
}

4.工程设置

Edit --DebugRel Setting

Target Setting  ---------Post-linker 选择ARM formELF

ARM Assembler-----------Architecture or Processor 选择ARM920T

ARM Linker-----output   RO Base 填0x32000000

                     ----------options--------Image enter point填0x32000000

5.编译连接

按F7或project---make

6.AXD 设置

Options----configure target

add    选jlink安装目录下的JLinkRDI.dll

file---load Image 选ADS中生成的*.axf

运行




你可能感兴趣的:(Jlink FL2440 裸机开发(一) 点亮LED和按键控制)