u-boot下编写测试CPU的GPIO状态代码[转]
2017-12-12 16:38
253 查看
面对自己设计的新板子,基于freesclae的I.MX51 SOC,如果采购仿真器的话,据说连软件带硬件要7000美金,这实在是一笔不小的开销。但是,板子总是需要使用软件方法来测试的,特别是IO的基本功能。那么在u-boot下写一些有关的测试程序是很有必要的。虽然这个方法无法和仿真器相比,但是只要板子boot起来,那么使用底层的IO函数,进行适当的“裸奔”,对设计者来说,总算是有点“招”了。
本文编写了一个gpio_ctrl程序,在u-boot启动后的命令行运行,直接对SOC的GPIO端口进行高低电平测试。实际就是对u-boot 的命令进行一次自己需要性的扩展。具体做的方法如下:
1、添加命令标志CONFIG_CMD_GPIOCTRL
打开u-boot/include/config_cmd_default.h
添加:
#define CONFIG_CMD_GPIOCTRL
2、编写代码
在u-boot/commom目录下,建立一个gpio_ctrl.c空文件,并编写代码:
#include
#include
#include
#include
#include
#include
struct gpio_out_list {
char strPinName[20];
int nGroup;
int bit;
unsigned int PIN;
};
static struct gpio_out_list gpio_list[] = {
{"EIM_D17",2,1,MX51_PIN_EIM_D17},
{"EIM_D18",2,2,MX51_PIN_EIM_D18},
{"EIM_D22",2,6,MX51_PIN_EIM_D22},
{"EIM_A16",2,10,MX51_PIN_EIM_A16},
{"EIM_A18",2,12,MX51_PIN_EIM_A18},
{"EIM_A20",2,14,MX51_PIN_EIM_A20},
{"EIM_A21",2,15,MX51_PIN_EIM_A21},
{"EIM_A22",2,16,MX51_PIN_EIM_A22},
{"EIM_A23",2,17,MX51_PIN_EIM_A23},
{"EIM_A24",2,18,MX51_PIN_EIM_A24},
{"EIM_A25",2,19,MX51_PIN_EIM_A25},
{"EIM_A26",2,20,MX51_PIN_EIM_A26},
{"EIM_A27",2,21,MX51_PIN_EIM_A27},
{"EIM_CS1",2,26,MX51_PIN_EIM_CS1},
{"EIM_OE",2,24,MX51_PIN_EIM_OE},
{"EIM_DTACK",2,31,MX51_PIN_EIM_DTACK},
{"NANDF_RB1",3,9,MX51_PIN_NANDF_RB1},
{"NANDF_CS0",3,16,MX51_PIN_NANDF_CS0},
{"NANDF_CS1",3,17,MX51_PIN_NANDF_CS1},
{"NANDF_D0",4,8,MX51_PIN_NANDF_D0},
{"NANDF_D1",4,7,MX51_PIN_NANDF_D1},
{"NANDF_D3",4,5,MX51_PIN_NANDF_D3},
{"NANDF_D4",4,4,MX51_PIN_NANDF_D4},
{"NANDF_D5",4,3,MX51_PIN_NANDF_D5},
{"NANDF_D6",4,2,MX51_PIN_NANDF_D6},
{"NANDF_D14",3,26,MX51_PIN_NANDF
de39
_D14},
{"NANDF_D15",3,25,MX51_PIN_NANDF_D15},
{"CSI1_D9",3,13,MX51_PIN_CSI1_D9},
{"CSI2_D12",4,9,MX51_PIN_CSI2_D12},
{"CSI2_D13",4,10,MX51_PIN_CSI2_D13},
{"CSI2_D18",4,11,MX51_PIN_CSI2_D18},
本文编写了一个gpio_ctrl程序,在u-boot启动后的命令行运行,直接对SOC的GPIO端口进行高低电平测试。实际就是对u-boot 的命令进行一次自己需要性的扩展。具体做的方法如下:
1、添加命令标志CONFIG_CMD_GPIOCTRL
打开u-boot/include/config_cmd_default.h
添加:
#define CONFIG_CMD_GPIOCTRL
2、编写代码
在u-boot/commom目录下,建立一个gpio_ctrl.c空文件,并编写代码:
#include
#include
#include
#include
#include
#include
struct gpio_out_list {
char strPinName[20];
int nGroup;
int bit;
unsigned int PIN;
};
static struct gpio_out_list gpio_list[] = {
{"EIM_D17",2,1,MX51_PIN_EIM_D17},
{"EIM_D18",2,2,MX51_PIN_EIM_D18},
{"EIM_D22",2,6,MX51_PIN_EIM_D22},
{"EIM_A16",2,10,MX51_PIN_EIM_A16},
{"EIM_A18",2,12,MX51_PIN_EIM_A18},
{"EIM_A20",2,14,MX51_PIN_EIM_A20},
{"EIM_A21",2,15,MX51_PIN_EIM_A21},
{"EIM_A22",2,16,MX51_PIN_EIM_A22},
{"EIM_A23",2,17,MX51_PIN_EIM_A23},
{"EIM_A24",2,18,MX51_PIN_EIM_A24},
{"EIM_A25",2,19,MX51_PIN_EIM_A25},
{"EIM_A26",2,20,MX51_PIN_EIM_A26},
{"EIM_A27",2,21,MX51_PIN_EIM_A27},
{"EIM_CS1",2,26,MX51_PIN_EIM_CS1},
{"EIM_OE",2,24,MX51_PIN_EIM_OE},
{"EIM_DTACK",2,31,MX51_PIN_EIM_DTACK},
{"NANDF_RB1",3,9,MX51_PIN_NANDF_RB1},
{"NANDF_CS0",3,16,MX51_PIN_NANDF_CS0},
{"NANDF_CS1",3,17,MX51_PIN_NANDF_CS1},
{"NANDF_D0",4,8,MX51_PIN_NANDF_D0},
{"NANDF_D1",4,7,MX51_PIN_NANDF_D1},
{"NANDF_D3",4,5,MX51_PIN_NANDF_D3},
{"NANDF_D4",4,4,MX51_PIN_NANDF_D4},
{"NANDF_D5",4,3,MX51_PIN_NANDF_D5},
{"NANDF_D6",4,2,MX51_PIN_NANDF_D6},
{"NANDF_D14",3,26,MX51_PIN_NANDF
de39
_D14},
{"NANDF_D15",3,25,MX51_PIN_NANDF_D15},
{"CSI1_D9",3,13,MX51_PIN_CSI1_D9},
{"CSI2_D12",4,9,MX51_PIN_CSI2_D12},
{"CSI2_D13",4,10,MX51_PIN_CSI2_D13},
{"CSI2_D18",4,11,MX51_PIN_CSI2_D18},
相关文章推荐
- springboot + mybatis +junit 测试用例编写
- (1)写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”); (2)编写单元测试进行测试; (3)用ElcEmma查看代码覆盖率,要求覆盖率达到100%。
- 代码编写和测试的总结
- android:视频录制编写代码一直报非法状态错误,很多时候定位在setVideoEncoder和setAudioEncoder
- [翻译]编写高性能 .NET 代码 第一章:性能测试与工具 -- 平均值 vs 百分比
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
- U-Boot移植串口xmodem协议_附测试代码
- 4.2 用 FSI 编写和测试代码
- python自动化测试开发利器ulipad最佳实践(可写python测试代码也可编写selenium、Appium等)
- junit测试spring整合ActiveMQ编写消费者代码报错:org.springframework.beans.factory.BeanCreationException: Error crea
- 还为代码编写愁吗?代码生成器将让你编写代码测试代码速度极大提升
- NNnit 测试代码的编写等
- 读书笔记-编写可测试的 JavaScript 代码-第二章?
- 编写可测试的前端Javascript代码第一部分--反模式及其解决方案
- CodeNow.Com:在线编写并实时测试代码
- 测试代码的编写
- 分析 u-boot 的第一阶段代码(cpu/arm920t/start.S)
- Maven实践(四)---编写测试代码
- python 获取CPU、内存、硬盘、进程状态信息 代码
- 第一次编写简单的中间件测试工具(2) - 读代码的方法