Hi3515自带串口驱动加载说明 .
来源:互联网 发布:d3.js 力导向图 编辑:程序博客网 时间:2024/05/22 08:53
转自: http://blog.csdn.net/olei_oleitao/article/details/7383592
首先了解到Hi3515 的串口挂载在AMBA总线上,驱动采用的是ARM AMBA PL011去的那个源码在内核drivers/serial/amba-pl011.c
具了解首先到开发板给定的内核查找自身所带的驱动文件;查找方法:进入到内核根目录执行makemenuconfig命令 跳出如图所示:
选择Device Drivers 回撤->选择 Character devices 回撤-》选择Serial drives进入串口驱动目录如图所示:
进入后查看需要将ARM AMBA PL011 加载进内核编译;
Hi3515 的串口挂载在AMBA 总线上,所以我们必须将串口设备注册到AMBA 总线,首先初始化AMBA 总线设备链表,然后判断是否有设备要添加,如果有则调用__driver_attach 函数将新设备添加至AMBA 总线设备链表。
代码修改
A:我们知道了驱动代码在drivers/serial/amba-pl011.c文件中;根据Hi3515 H.264编解码处理器用户指南.pdf文档11.2UART篇章介绍Hi3515 提供了以下4 个UART 单元:?? UART0
主要用于调试。
UART1
主要用于接RS-485 总线和控制云台。
UART2、UART3
主要用于扩展接口,如外部MCU(Micro Controller Unit)。
目前只能看到UART0 和UART1 那么就在arch/arm/mach-hi3515v100/core.c中所有出现uart0和uart1的地方都添上uart2和uart3
Line 169附近 增加
#define UART3_IRQ { INTNR_UART3, NO_IRQ }//oleitao 2012-03-21 add
Line 173 附近增加
HIL_AMBA_DEVICE(uart3, "uart:3", UART3, NULL);//oleitao 2012-03-21 add
Line 189行附近 增加
& HIL_AMBADEV_NAME(uart3),//oleitao 2012-03-22
B:根据海思文档知道UART2和UART3接口信号收发与VI和GPIO的部分信号线复用,UART2和UART3的接受和发送分别对应管脚为VI0HS VI0VS 和VI2HS VI2VS;对应的寄存器分别为reg0(偏移地址0x0000)、reg1(偏移地址0x0004)和reg10(偏移地址0x0028)、reg11(偏移地址0x002C)(由于-v设备没有对IO寄存器使用)所以在串口初始化的地方直接对该地址设置1即可;
VI0HS VI0VS 和VI2HS VI2VS 管脚的具体复用情况。
00:VI0HS;
01:URXD2;
10:GPIO1_3;
最后在hisilicon_init_machine函数后面增加对这4个管脚复用设置为串口使用;
writew(1, IO_ADDRESS(REG_BASE_IO));
writew(1, IO_ADDRESS(REG_BASE_IO+0x0004));
writew(1, IO_ADDRESS(REG_BASE_IO+0x0028));
writew(1, IO_ADDRESS(REG_BASE_IO+0x002C));
然后编译内核重新下载内核 查看dev目录下有了ttyAMA2 和ttyAMA3
然后用串口测试工具测试OK!
- Hi3515自带串口驱动加载说明
- Hi3515自带串口驱动加载说明 .
- Hi3515 UART2和UART3驱动加载
- Hi3515 UART2和UART3驱动加载
- 【转】Hi3515 UART2和UART3驱动加载
- Hi3515 UART2和UART3驱动加载
- Linux串口加载驱动问题
- oracle自带脚本说明
- 源码自带项目说明
- Linux系统自带spi驱动加载及应用程序编写方法详解
- Linux系统自带spi驱动加载及应用程序编写方法详解
- Linux系统自带spi驱动加载及应用程序编写方法详解
- Linux系统自带spi驱动加载及应用程序编写方法详解
- Qt5中自带串口类QtSerialPort
- Qt5 自带 串口通讯基础模块
- C#自带的serialPort串口控件
- jdk自带的动态代理说明
- codeigniter自带数据库类使用方法说明
- Apache Shiro 使用手册(二)Shiro 认证
- Linux下查看CPU信息[/proc/cpuinfo]
- 数据库创建和查询语句总结
- EJB到底是什么,真的那么神秘吗??
- __attribute__ 你知多少?
- Hi3515自带串口驱动加载说明 .
- nginx:rewrite
- tor使用测试
- C#中的套接字工作原理
- [LeetCode] Symmetric Tree
- htonl(),htons(),inet_addr(),inet_ntoa(), inet_aton()函数
- Android核心基础(手机卫士的一个知识点总结)
- 理解Hibernate主键类型
- 常用排序算法之插入排序c及lua实现