本人硬件知识可以说是空白,接到调试amloigc m6 mx 板子的任务,心里悬的很,现在工作总算告一段落,做下总结:
了解的硬件知识:
1、gpio 口:
General-Purpose Input /Output Ports 通用IO端口,造作GPIO口需要和芯片对应的文档。
首先说下 amlogic 的GPIO 被分为 A 、B 、C、D、E、X、Y、Z、AO 这几个段
gpio 口的控制:
1、单个gpio口控制。
根据文档 就是设置某个寄存器的某个 bit [amlogic 里面有 bit+23 ... 的规则计算地址]
粘贴上 gpio.h 中的函数操作
#define gpio_status_in true #define gpio_status_out false int32_t gpio_set_status(uint32_t pin,bool gpio_in); //设置是输出还是输入模式
/** * GPIO out function */ int32_t gpio_out(uint32_t pin,bool high); //在输出模式下 设置 输出是 hight or low
复制操作的还没看懂,待续.....
1、-------------------------------------------------------------------
#error 11111111111111
可以调试宏:如果代码走这里 编译的时候 就会出错。
2、.so 文件可以用 vi 打开 并find 字符串。
3、__FILE__ __FUNCTION__ __LINE__ 可以打印出文件名,函数名,行号
2、i2c:I平方C 都这么读,就知道是个总线,显示屏和触摸板和摄像头都可以挂到该总线上,I平方C 会分为几个组,没个组中有几个设备,每个设备在总线中都一个唯一的ID
3、GPIO的上拉电阻的作用:上拉 提高阵脚输出电压 下拉:应该是 降低电压
软件遇到的问题:
1、公版是 1G 内存,我们开发板是512 ,只调整了Uboot的设置,烧写后,能运行但是10次有9次 中途出现死机,苦等两天后,换成 1G 的内存,估计调整内存大小不止uboot一个地方。
2、调整显示屏参数,需要根据屏的文档来配置相应的参数,分辨率和一个大数组,全是 223 225 一连串头晕的数字,技术支持搞定的。
3、调试触摸板 也是在common/customer/board/board-***.c 文件中配置i2c 及参数,触摸板原厂的人给搞定的数组的参数。
4、摄像头还没搞定,也挂着I2C上的设备,需要在bord-****.c配置信息,需要摄像头原厂的支持,如果amlogic调试过的摄像头会很快能搞定,总之 就是配置参数。
//-----------------------
1、选择 mutilmedia usb uvc -----Video capture adapters --- v4l usb -- usb video class (UVC)驱动---------识别USB摄像头
2、修改Kconfig 添加光感程序的驱动,准备利用光感程序来编写酒精传感器的程序。
3、amlogic\common\vmlinux 包含了所有的打印信息
4、obj-$(CONFIG_LS_GL3526) += ls-gl3526.o // 在.config 中配置了 CONFIG_LS_GL3526=y 才会编辑 ls-gl3526.o
obj-$(CONFIG_LIGHT_SENSOR) += lightsensor/ //在 .config 中配置了 CONFIG_LIGHT_SENSOR 才会加载 lightsensor
obj-$(CONFIG_AM_SENSORS) += sensors/ //在 .config 中配置了 CONFIG_AM_SENSORS 才会加载 sensors 模块
问题:改动android系统后,每次都编译文件系统,再打包,实在麻烦, 可以到 修改的目录 有 Android.mk 的地方进行 mm 只要关注下mm 生成的的东西 直接 copy 到板子系统相应的目录下(但是不能保证一定可行,如果不行 只能乖乖的编译文件系统)。
编译后的文件,打包的时候一定使用吗? 不一定 山寨的做法会从别的目录直接包生成的.so copy过来,这样打包用的.so 并不是我们改动的文件,我们该怎么办?
办法1:比较板子上文件大小和我们编译出 文件的大小,如果大小不一样,可能不是我们生成的文件,而这个文件从哪里弄来的那 ,可以在整个目录下搜索 同名的文件,找出 和使用文件大小一样的文件(他在其他工程里面都不要惊讶---有时候就这样山寨)。
办法 2:分析 makefile 从 make v=1 打印出 所有的执行命令 你会找到 文件从哪里cp 来的
串口调试:
如何测试串口是否能够正常工作:
首先一个正常使用的串口(a),一个待测试的串口(b)。
开2 个CRT终端,a终端 执行二进制的串口测试程序(测试程序设置波特率等后,直接操作串口b),在串口B的CRT会有相应的输出。
|