Chinaunix首页 | 论坛 | 博客
  • 博客访问: 146562
  • 博文数量: 29
  • 博客积分: 717
  • 博客等级: 上士
  • 技术积分: 352
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-16 16:17
文章分类

全部博文(29)

文章存档

2013年(4)

2012年(4)

2011年(21)

我的朋友

分类: LINUX

2013-02-21 14:57:41

You can download from site: 

在嵌入式系统开发过程经常需要调试代码,因此可以通过LED来实现快速高效的调试。要调试的目标代码一般分为两种:C高级语言代码,汇编语言代码。在通过LED调试时需要芯片手册,硬件电路图来确定IO和对应的寄存器地址。

C代码环境下有两种方式嵌入调试代码

  • 1. 通过嵌入汇编代码来操作寄存器

例如

__asm__("ldr  r1, =0x7f008800");

__asm__("ldr  r2, =0x11111111");

__asm__("str  r2, [r1]");

__asm__("ldr  r2, =0x0000AAAA");

__asm__("str  r2, [r1, #0x0C]");

__asm__("ldr  r2, =0x0000ffcf");

__asm__("str  r2, [r1, #0x08]");

  • 2. 通过指针来操作寄存器

例如

#define GPKCON0      (*(volatile unsigned long *)0x7F008800)

#define GPKPUD      (*(volatile unsigned long *)0x7F00880C)

#define GPKDAT      (*(volatile unsigned long *)0x7F008808)

GPKCON0=0x11111111;

GPKPUD=0x0000AAAA;

GPKDAT=0x0000ff8f;


汇编语言环境下直接加入汇编代码即可

例如

ldr    r1, =0x7f008800

ldr    r2, =0x11111111

str    r2, [r1]

ldr    r2, =0x0000AAAA

str    r2, [r1, #0x0C]

ldr    r2, =0x0000ffef

str    r2, [r1, #0x08]


阅读(1803) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~