1. 掌握led工作的基本原理;
2. 掌握嵌入式Linux程序设计的基本步骤;
3. 熟练电路原理图的分析和芯片手册的使用;
4. 掌握Linux用户空间编程的API函数;
5. 掌握嵌入式Linux程序的调试方法。
1. 硬件:A9教学实验箱、PC机、RJ45网线或串口线。
2. 软件:PC机Linux操作系统(可在Windows中虚拟机实现)、arm-linux-gcc开发环境、gedit编辑器、tftp或超级终端。
1. 检查硬件连接
(1) 检查实验箱配件是否齐全,包括主板、核心板、LCD及各种线材等。
(2) 将PC机的RJ45网线接口或第1个串口与实验箱对应接口连接,S2拨码开关拨到NAND一边(向上)。
(3) 接好电源,实验箱上电。
2. 原理分析与数据准备
(1) 分析led的电路图,得出led点亮和熄灭所需要的电平信号;
(2) 分析控制led的对应GPIO端口,查找芯片数据手册,获取控制这些引脚的寄存器;
(3) 记录控制寄存器的地址和设置条件,包括端口的输入输出模式、电平状态等。
3. 基于用户API函数的程序框架构建
(1) 在Linux终端下,用gedit创建新的C语言文件;
(2) 在C语言文件中调用open()函数打开设备文件;
(3) 在C语言文件中调用mmap()函数(关于寄存器组的基地址)映射虚拟地址地址;
(4) 在C语言文件中调用munmap()释放虚拟地址映射关系;
(5) 在C语言文件中调用close()函数关闭已打开的设备文件。
4. led功能程序的编写
(1) 映射前led控制寄存器地址(含基地址和偏移地址)的封装,用#define;
(2) 映射后led控制寄存器地址的封装,用新基址+偏移地址,强制类型转换为指针;
(3) 控制led的DAT寄存器设置,可设置特定引脚,也可以经延迟后循环设置。
5. 根据实验内容和结果,撰写实验报告。
实验步骤可以部分地参考这里
——仅参考,要按照我最后一个视频的思路去分析和编写。