android深度探索(卷1)hal与驱动开发第五章 搭建s3c6410开发板的测试环境读书笔记

author author     2022-07-31     513

关键词:

作为开发和学习嵌入式技术的主要硬件设备,开发板是机器重要的。因为即使可以在PC上开发Linux驱动,并重新编译成ARM架构的Linux驱动模块,但最终还是要在开发板上进行测试。有两个原因:因为ARM架构的开发板可 基于X86架构的PCCPU指令以及二进制格式上都有所不同;而且驱动需要访问的硬件,有些很难在PC上进行模拟。开发板与手机类似,适合对程序进行测试,尤其是底层的Linux驱动。

5.1是对开发板的简介。

5.2需要安装的串口调试工具是minicom。由于开发Linux驱动程序无法与Android应用程序一般,直接在eclipse上进行调试,所以需要使用其他方式显示Linux驱动程序输出的调试信息,即串口通信。这里需要一根USBRS232串口线。

 

1.检测当前系统是否支持USB 转串口

Lsmod | qrep usbserial

2.安装minicom

Apt-get install minicom

3.配置minicom

Minicom -s

进入菜单并按图设置并保存。

4.测试minicom

minicom

启动安卓系统就会接收到信息

5.3烧写Android系统

1.使用Eboot擦除Nandflash

(1).准备工作:用串口线或USB转串口线连接开发板和PC,并启动minicom

(2).进入Eboot状态:打开开关,出现等待5s提示,按PC键盘的空格键使开发板停留在Eboot状态。

(3)擦除nandflash:输入A

2.烧写Android步骤

(1).准备工作:准备一个SD 卡,FAT32分区格式,插入读卡器并连接PC

(2)向SD卡写入mmc.binzImage-sd.bin

(3)烧写Android前的准备工作:讲Android_fs.tarmmc.binzImage文件复制到SD卡上,并设置好开关。

(4)校准屏幕

5.4配置有限网络

可以使用Linux命令ifconfig设置IP和子网掩码,用route命令设置网关。

Ifconfig eth0 192.168.17.150 network 255.255.255.0 up

Route add default gw 192.168.17.254 dev eth0

软件1308班31号 张帆 博客园地址: http://home.cnblogs.com/u/sxauzzz/ 

 

《android深度探索》(卷1)hal与驱动开发读后感

第9章:硬件抽象层HAL1.HAL(HardwareAbstractionLayer,硬件抽象层)是建立在Linux驱动之上的一套翻字库。这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用层。2.编写一款支持HAL的Linux驱动程序的步骤编写一款支持HAL的Linux驱... 查看详情

android深度探索与hal驱动开发(卷1)--第九章随笔

第9章硬件抽象层:HALHal(HardwareAbstractLayer,硬件抽象层)是建立在Linux驱动之上的一套程序库。这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用层。 编写支持HAL的Linux驱动程序的步骤:第一步:编写Linux驱动第... 查看详情

《android深度探索》(卷1)hal与驱动开发读后感

第10章:嵌入式Linux的调试技术对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行调试。例如,设置断点、逐步跟踪代码、输出调试信息等。一、打印内核调试信息:printkprintk函数在前面的章节己多次使用过。该函数... 查看详情

android深度探索(卷1)hal与驱动开发阅读心得10

嵌入式Linux的调试技术打印内核调试信息:printk该函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。也就是说,像Linux驱动这样的Linux内核程序只能使用printk函数输出调试信息。Printk函数在... 查看详情

《android深度探索》(卷1)hal与驱动开发读后感

第8章:让开发板发出声音:蜂鸣器一、Linux驱动的代码重用Linux驱动的代码重用有很多种方法。可以采用标准C程序的方式。将要重用的代码放在其他的文件(在头文件中声明)中。如果要使用某些功能,include相应的头文件即可(... 查看详情

android深度探索与hal驱动开发(卷1)--第十章随笔

第10章嵌入式Linux的调试技术通过虚拟文件系统(/proc)进行数据交互在编写代码时应了解一下几点:1、creat_proc_read_entry函数在内部是通过调用creat_proc_entry函数实现的。所谓只读就是通过creat_proc_read_entry函数可以指定处理文件读... 查看详情

android深度探索(卷1)hal与驱动开发阅读心得8

PWM蜂鸣器驱动 C或C++语言中编译多个源代码文件时,如果a.c使用了b.c文件中的函数,需要a.c文件中使用extern预先定义b.c中的函数,extern的作用就是告诉编译器该函数的函数名、参数个数、参数类型和返回值类型。这些信息对... 查看详情

android深度探索(卷1)hal与驱动开发第九章 硬件抽象层:hal读书笔记

HAL是建立在Linux驱动之上的一套程序库。这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用层。HAL的主要目的一个是用来保护"私人财产",另一个是尽量避免应用程序直接访问Linux驱动程序。传统的Linux系统中Linux驱动... 查看详情

andriod深度探索(卷1)hal与驱动开发第九章读书心得

...在Linux驱动之上的一套程序库。刚开始介绍了为什么要在Android中加入HAL,目的有三个,一,统一硬件的调用接口。二,解决了GPL版权问题。三,针对一些特殊的要求。可以利用位于用户空间的HAL代码来辅助Linux驱动完成一些工作... 查看详情

android深度探索(卷1)hal与驱动开发第十章 嵌入式linux的调试技术读书笔记

...码,输出调试信息等。本章主要讲述了如何利用开发板、Android模拟器以及一些函数、工具调试嵌入式Linux内核模块、可执行程序和共享库。1.打印内核调试信息:printk该函数的用法和printf函数类似,只不过printk函数运行在内核空... 查看详情

android深度探索(卷1)hal与驱动开发第八章 让开发板发出声音:蜂鸣器驱动读书笔记

PWM驱动的实现方式不同于LED,PWM驱动由多个文件组成。大多数Linux驱动的标准实现方式都是这种。一个复杂的驱动不会把所有代码都放在一个文件中。相关的代码会放在相应的文件中,在编译Linux驱动时将这些文件进行联合编译... 查看详情

andriod深度探索(卷1)hal与驱动开发第十章读书心得

对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行调试。例如,设置断点、逐步跟踪代码、输出调试信息等。 Printk函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。也... 查看详情

android深度探索(卷1)hal与驱动开发第六章 第一个linux驱动程序:统计单词个数读书笔记

本章是一个具体的例子,来详细的介绍开发和测试Linux驱动程序的完整过程。尤其是测试Linux驱动。在这个统计单词个数的实例中,重点是该算法的实现技术:即Linux驱动,而不是如何统计的。6.1Linux驱到底是什么Linux驱动的工作... 查看详情

android深度探索(卷1)hal与驱动开发第七章 led将为我闪烁:控制发光二极管读书笔记

本章的实验将会实现真正意义上的Linux驱动,会实现直接与硬件的交互。需要控制4个LED灯。7.1LED驱动的实现原理事实上并不是Linux驱动直接向硬件中的内存写数据,而是与本机的I/O内存进行交互。I/O内存是通过各种接口连接到主... 查看详情

andriod深度探索(卷1)hal与驱动开发第八章读书心得

第八章介绍了第二个实验:蜂鸣器驱动,使开发板发出声音将介绍蜂鸣器的实现原理,并实现一个完整的蜂呜器驱动,通过该驱动可以控制蜂鸣器的打开与关闭。蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣... 查看详情

《android深度探索(卷1):hal与驱动开发》虚拟实验环境(ubuntulinux)及源代码免费下载,不需要cpu虚拟化支持

...使用。该虚拟环境包含了书中所需的实验环境(除了Android源代码,太大,需要自己下, 查看详情

android深度探索(卷一)hal与驱动开发第十章

通过学习Android深度探索(卷一)HAL与驱动开发的第十章让我知道了嵌入式Linux的调试技术和调试工具有哪些。Printk可以打印内核调试信息,该函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空... 查看详情

android深度探索(卷一)hal与驱动开发第九章

通过学习Android深度探索(卷一)HAL与驱动开发的第九章让我知道了HAL硬件抽象层,为什么要在Android中加入HAL和AndroidHAL架构。HAL是建立在Linux驱动之上的一套程序库。这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用... 查看详情