
嵌入式入门---裸板
文章平均质量分 64
ti_tantbx
这个作者很懒,什么都没留下…
展开
-
写一篇技术美文,裸板测试之点亮GPIO的LED灯
首先拿到一块开发板,就像我现在用的这块TQ2440,arm920t,实在是嵌入式入门的必备之物。本来想移植Uboot,但自从编译成功后一直在板子上跑不起来,于是又转到自己编一个bootloader,后来也因为编译成功而无法运行感到无比头疼,于是只得从最基础的开始测试,首先从GPIO开始。所需器材:arm开发板一块,jlink一个,当然也可以用jtag。但我的电脑没有并口,于是只能用jlink。原创 2011-11-24 11:40:54 · 1182 阅读 · 0 评论 -
用查询方式,用按键控制led灯亮灭
本次试验条件,在TQ2440下,使用串口与电脑相连,串口软件DNW。鉴于前面已经写过一篇关于如何在裸板条件下点亮LED灯,这次介绍如何用查询方式,使用板子上的小按键k1~k4控制led1~4的亮灭。其主要目的还是防止自己不记得...首先查看电路图如下:由上图可知道K1对应的中断是EINT1K1~~EINT1K2~~EINT4K3~~EINT2K4~~原创 2011-11-28 16:38:44 · 7756 阅读 · 1 评论 -
CPSR_c是什么
众所周知,ARM每种工作模式除R0~R15共16个寄存器外,还有第17个寄存器CPSR,叫做 当前程序状态寄存器,CPSR中一些位被用于标识各种状态,一些位被用于标识当前出于什么工作模式其中cpsr_c代表的是这32位中的低8位,也就是控制位当你看到有些程序里这样写msr cpsr_c 0xd2 //msr原创 2011-11-28 10:39:45 · 11593 阅读 · 3 评论 -
中断实验(1)
首先,就我感觉控制终端还是一件相当复杂的事情,包括很多寄存器要熟悉,很多步骤。很难说开头在哪里。试验设备TQ2440,J-link, 注意,这里是2440。使用6410的同学可以参考思路,但6410中断的结构并不一样,详见6410手册!所以我还是对着代码说的比较好。 本次试验是以中断控制LED的亮灭。下图是中断示意图。首先简介一下arm的终端体系,原创 2011-11-30 09:18:28 · 836 阅读 · 0 评论 -
中断实验(4)
下面我们来看看interrupt.c这个文件,这个程序主要是处理中断和清除中断,处理中断说白了就是规定了我们按下每个按键后按什么规则处理他们。清除中断,如果我们不及时在中断处理完后清除他们,arm就会不断地执行中断,无法跳回正常的程序。下面是代码:#define INTOFFSET (*(volatile unsigned long *) 0x4A000014)#define E原创 2011-11-30 09:27:54 · 1046 阅读 · 0 评论 -
中断实验(5)后续
最后一个部分,因为以上代码都是在linux下完成的,完成后我们需要将他们编译成可执行文件放到板子上测试,于是需要写一个Makefile文件来集中编译他们。interrupt.bin:head.S init.c interrupt.c main.c //包含的文件arm-linux-gcc -g -c -o head.o head.S原创 2011-11-30 09:31:54 · 810 阅读 · 0 评论 -
中断寄存器详解
对2440平台有效●SUBSRCPND寄存器:它用来表示INT_RXD0、INT_TXD0等中断是否发生(注:这些中断是某一大类中断中的子类),每位对应一个中断。当这些中断发生并且没有被INTSUBMSK寄存器屏蔽,则它们中的若干位将汇集出现在SRCPND寄存器的某一位上。要清除中断,往此寄存器中某位写1。●INTSUBMSK寄存器:与SUBSRCPND寄存器对应,它用原创 2011-11-30 12:41:49 · 4417 阅读 · 0 评论 -
中断实验(2)
接上一篇文章,上面写到外部中断的3层屏蔽。由于我们今天用到的器材TQ2440,的4个按键K1~K4使用的是EINT0、EINT1、EINT2、EINT4,这四个中断,其中三个都只需要打开最后一级屏蔽。下面我们一边对着代码一边介绍怎样打开屏蔽。最后实现中断。首先,我们的程序包含4个需要自己编写的文件,head.S init.c interrupt.c main.c首先看he原创 2011-11-30 09:20:00 · 794 阅读 · 0 评论 -
中断实验(3)
接上文,我们进入到init.c中#define GPBCON (*(volatile unsigned long *) 0x56000010)#define GPBDAT (*(volatile unsigned long *) 0x56000014)#define GPFCON (*(volatile unsigned long *) 0x56000050)#define GPFDA原创 2011-11-30 09:26:27 · 987 阅读 · 0 评论