Android深度探索
开发板是开发和学习嵌入式技术的主要硬件设备,因为当Linux驱动需要访问硬件时,这些硬件很难在PC上进行模拟,那么就要在带有这些硬件的开发板上进行调试和测试。通过对S3C6410开发板的介绍,对开发板的内部构造及功能特性有了进一步的认识;同时,学会了如何在开发板上实现对Android系统的成功安装以及有限网路的成功连接。
认识和探究Linux驱动对于驱动开发程序员来说是至关重要的,Linux系统将每一个驱动都映射成设备文件,保存在/dev目录中。这种设计理念使得与Linux驱动文件进行交互就像与普通文件进行交互一样容易,因此与Linux驱动交换数据就变成了与设备文件交换数据。在该章节中我阅读了如何编写Linux驱动程序的步骤,从编写word_count驱动的业务逻辑:统计单词个数的例子中,让我对Linux驱动程序步骤理解得更加具体化、细节化。
由于内核空间的程序不能直接访问用户空间的数据,因此,需要在word_count_read和word_count_write函数中分别使用 copy _to_user 和 copy_from_user 函数将数据从内核空间复制到用户空间或从用户空间复制到内核空间。
最后,通过编写build.sh脚本文件,成功测试word_count驱动。