调试amligic m6 mx mid板子总结

来源:互联网 发布:广州淘宝培训哪家好 编辑:程序博客网 时间:2024/04/27 23:14
人硬件知识可以说是空白,接到调试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会有相应的输出。

原创粉丝点击