这里写目录标题
- 一、实验目的
- 二、实验内容
- 三、实验设备
- 四、实验步骤
- 五、总结
一、实验目的
- 掌握
S5P6818
芯片的I/O口控制寄存器的配置。 - 掌握实验掌握ARM芯片使用I/O口控制
LED
显示。 - 熟练使用嵌入式
交叉编译器
。 - 掌握
Makefile
文件书写。
二、实验内容
编写程序控制实验平台的发光二极管亮灭。
三、实验设备
- Vmware虚拟机
- S5P6818开发板
四、实验步骤
-
连接开发板,在设备管理器中查看端口号为COM3。
-
把实验箱中的串口调试工具PuTTY放到桌面。Connection type选择Serial类型,设置Serial line为COM3,Speed为115200。
-
把试验箱工具软件中的Fastboot拷贝到本机并设置环境变量。
-
安装试验箱工具软件中的Fastboot驱动。
-
设置开发板启动方式为101。
-
通过USB线连接目标机与PC,开发板供电后,PuTTY出现Hit any key to stop autoboot,在倒计时内按任意键进入操作系统。
输入命令fastboot。fastboot是uboot中用来快速下载镜像的一个命令同时也是windows上的一个软件。
-
连接蓝线到USB口,查看本机多出的设备Android 1.0。
-
在Windows系统下烧写镜像文件,打开cmd,进入D盘,烧写映像文件boot.img和system_linux.img。烧写命令如下:
烧写内核:fastboot flash boot boot.img
烧写文件系统:fastboot flash system system_linux.img
-
烧写完成后拔掉线,重启开发板。
-
编写.c和.h文件,然后编写.c文件的Makefile文件,make命令执行时,需要一个makefile文件,以告诉make命令需要怎么样的去编译程序,整个工程完全自动编译,提高了软件开发的效率。
-
执行make命令生成 .ko文件,内核模块文件.ko文件是把内核的一些功能移动到内核外边,需要的时候插入内核,不需要时卸载。
-
将驱动程序拷贝到U盘上,把U盘插到开发板的U口上,串口打印信息,在dev目录下可以找到sda1,即插入的U盘设备文件。
-
输入命令:mount /dev/sda1 /mnt/usb挂载U盘到/mnt/usb中,进入/mnt/usb目录查看U盘内容,然后找到.ko文件。
输入命令:insmod char_drive_led.ko。然后会自动创建节点文件。 -
编写测试程序,里面可以传两个参数,编译并运行测试程序test_led_c,使得红灯亮一秒----->绿灯亮一秒----->蓝灯亮一秒----->全部亮一秒,循环往复。
五、总结
通过这次实验,我深刻认识到了Linux内核和硬件之间有着非常紧密的联系,而设备驱动程序就是起到了连接两者的桥梁。这次实验使我们了解了如何编写linux内核驱动程序,掌握了驱动程序的编写和调试技巧。在编写驱动程序时,需要了解硬件的基本信息,然后根据硬件的特点进行代码的编写。同时,编写好的驱动程序也需要经过严格的测试和调试,保证其稳定性和可靠性。总之,这次实验让我对嵌入式开发领域有了更深入的了解和认识,提高了我的技术水平,更重要的是培养了我们解决实际问题的能力,也让我更加热爱这个领域。