最近入手了JZ2440开发板,将JZ2440开发板上的硬件资源逐个调试了一些,我将这些功能做到了一个project中,代码放在GitHub上,大家可以前往下载。
GitHub代码地址:https://github.com/xfqjklw/jz2440_simple_system.git
该project支持openjtag在线调试
#define OPENJTAG_DEBUG 0
1:编译的代码可以通过openjtag调试
0:编译的代码可以烧录到flash中
该project中有如下功能:
(很多功能并未打开,可以将对应的宏设置为1,打开并测试这些功能)
1.串口功能
默认支持串口打印,其中如下三个宏分别使用DMA和FIFO的方式进行uart收发
#define UART_SEND_DMA 0
#define UART_RECV_DMA 0
#define UART_FIFO_RECV_INT 1 //use recv fifo and interrupt
2.LED功能
3.按键功能(外部中断)
通过三个按键点亮对应的LED灯,如果打开了USB鼠标功能,则作为鼠标左键和右键
4.定时器
每隔一段时间打印
#define TIMER_TEST 0
5.RTC
#define RTC_TEST 0
6.USB传输(DNW)
通过dnw将文件发往该程序,dnw的linux代码和驱动在代码目录中的dnw下,需要将驱动和dnw应用进行编译,方法可以百度一下。
#define USB_DEVICE_BULK 0
7.USB鼠标
将usb device口插入到电脑,会开始枚举,两个按键分别对应鼠标左右键。
#define USB_DEVICE_MOUSE 1
8.WM8976
提供简单的播放音乐功能,测试音频文件为windowsXP.wav,采样率22.025KHZ,需要先将该音频文件先烧录到flash的0x60000位置
#define WM8976_TEST 0
#define WM8960_BYPASS_TEST 1
9.LCD
提供简单的显示功能
10.Touch Screen
简单打印x/y采样值
通过这些裸机程序可以了解硬件操作的一些基本知识,了解中断,位置无关特性,arm汇编语言等很多基础知识,为后续学习uboot ucos linux内核做好准备。