当前位置: 首页 > news >正文

成都网站建设网站制作七牛云存储代替WordPress

成都网站建设网站制作,七牛云存储代替WordPress,seovip培训,wordpress 模板宽度Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 Linux的学习笔记今天更新到了第42天。鉴于国往笔记内容整理中出现的问题,我尽量按照平时学习时笔记的要求进行优化。尽量不再大段大段的贴代码。而是…

Linux版本号4.1.15   芯片I.MX6ULL                                    大叔学Linux    品人间百味  思文短情长 


        Linux的学习笔记今天更新到了第42天。鉴于国往笔记内容整理中出现的问题,我尽量按照平时学习时笔记的要求进行优化。尽量不再大段大段的贴代码。而是从我自身学习的角度,按照我个人的理解去整理优化教程中的内容。因为如果都是大段的贴代码贴内容而没有自己的思考总结,学习的过程仅仅是机械的复制粘贴将是没有任何意义的。因为我文章的定位是学习笔记而不是教程,不能面面俱到。整理重点、难点,加之自己的理解消化后形成的文章才是我所需要的。

        本次笔记将学习开发板通过GPS模块接收卫星信息,题目中提到的天外来客就是卫星。接收以后模块通过串口232发送给开发板,解码以后显示在minicom界面中。

        本章的思维导图如下:

        串口分为TTL和RS232,不管什么接口电平,驱动程序都是一样的。

一、Linux下UART驱动框架

1、uart_driver注册与注销

        串口驱动没有主机端和设备端区分,就只有一个串口驱动。

295 struct uart_driver {
296 struct module *owner; /* 模块所属者 */
297 const char *driver_name; /* 驱动名字 */
298 const char *dev_name; /* 设备名字 */
299 int major; /* 主设备号 */
300 int minor; /* 次设备号 */
301 int nr; /* 设备数 */
302 struct console *cons; /* 控制台 */
303
304 /*
305 * these are private; the low level driver should not
306 * touch these; they should be initialised to NULL
307 */
308 struct uart_state *state;
309 struct tty_driver *tty_driver;
310 };

        每个串口驱动都需要定义一个 uart_driver,加载驱动的时候通过 uart_register_driver 函数向
系统注册这个 uart_driver,此函数原型如下:

int uart_register_driver(struct uart_driver *drv)

        同理,注销驱动需要:

void uart_unregister_driver(struct uart_driver *drv)

2、uart_port的添加与移除

        uart_port 表示一个具体的 port,uart_port 中最主要的就是第 235 行的 ops, ops 包含了串口的具体驱动函数。

        uart_port 是怎么和 uart_driver 结合起来的呢?这里要用到 uart_add_one_port 函数:

int uart_add_one_port(struct uart_driver *drv,
struct uart_port *uport)

        卸载函数:

int uart_remove_one_port(struct uart_driver *drv, struct uart_port *uport)

3、uart_ops实现

        Linux收发数据都是通过ops函数实现的。

        ops是uart_ops类型的结构体指针变量。是和寄存器打交道的。

二、I.MX6U UART驱动分析

1、UART的platform驱动框架

        imx_uart_devtype为传统匹配表。

        static const struct of_device_id imx_uart_dt_ids[]为设备树所使用的匹配表。

        platform 驱动框架结构体 serial_imx_driver。

2、uart_driver初始化

        在 imx_serial_init 函数中向 Linux 内核注册了 imx_reg, imx_reg 就是 uart_driver 类型的结
构体变量。

3、uart_port初始化与添加

        当 UART 设备和驱动匹配成功以后 serial_imx_probe 函数就会执行,此函数的重点工作就
初始化 uart_port,然后将其添加到对应的 uart_driver 中。

4、imx_pops结构体变量

        imx_pops 就是 uart_ops 类型的结构体变量,保存了 I.MX6ULL 串口最底层的操作函数.都是和寄存器打交道的。

三、硬件原理图分析

 1、RS232原理图

2、RS485原理图

        RO 为数据输出端, RI 为数据输入端, RE 是接收使能信号(低电平有效), DE 是发送使能信号(高电平有效)。

3、GPS原理图

四、RS232驱动编写

        NXP已经将驱动写好了,开发者只需要添加对应的uart3节点即可。

1、UART IO节点创建

        参考已有的uart1节点,创建uart3节点:

1 pinctrl_uart3: uart3grp {
2 fsl,pins = <
3 MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX 0X1b0b1
4 MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX 0X1b0b1
5 >;
6 };

2、添加uart3节点

1 &uart3 {
2 pinctrl-names = "default";
3 pinctrl-0 = <&pinctrl_uart3>;
4 status = "okay";
5 };

五、移植minicom

        minicom类似于串口调试助手,是Linux下很常用的一个串口工具。

1、移植ncurses

        移植minicom前,需要先移植ncurses。因为minicom会用到ncurses.

2、移植minicom

        移植minicom完成后,输入minicom -s命令,如果打开失败的话。新建/etc/passwd 文件,然后在 passwd 文件里面输入如下所示内容:

1 root:x:0:0:root:/root:/bin/sh

        之后一定记得重启开发板。

六、RS232驱动测试

1、RS232连接设置

        JP1跳线帽   USB转串口线连接

2、minicom设置

        回显功能配置项为“ local Echo on/off..E”,按键E打开或关闭回显功能。

3、RS232收发测试

1)、发送测试

        minicom输入需要传输信息内容,在电脑端的SecureCRT会收到该信息内容。前提是需要打开minicom的回显功能。

2)、接收测试

        同样,通过Secure CRT发送信息内容,在minicom界面能收到该信息内容。同样需要提前打开Secure CRT的回显功能。

七、RS485测试

1、RS485连接设置

        一个设备是不能测试通信功能的,需要另外一个设备才行。

        三合一串口转换器

2、RS485收发测试

        485的测试和232一样。

1)、RS485发送测试

2)、RS485接收测试

八、GPS测试

1、GPS连接设置

        minicom设置如下:

①、波特率设置为 38400,因为正点原子的 ATK1218-BD 模块默认波特率就是 38400。
②、 8 位数据位, 1 位停止位。
③、关闭硬件和软件流控。

2、GPS数据接收测试

        minicom界面显示接收数据。


本文为参考正点原子开发板配套教程整理而得,仅用于学习交流使用,不得用于商业用途。

http://www.yayakq.cn/news/402609/

相关文章:

  • 免费购物网站室内设计师工资
  • 网站qq访客采集系统_访客qq获取系统源码网站客户qq抓取代码公司内部网站管理系统
  • 微网站系统建设部网站中煤三建
  • 数字中国建设峰会 官方网站建立网站时要采用一定的链接结构
  • 织梦网站后台密码忘记seo网站营销推广
  • 无锡市建设招标网站深圳个人注册公司要求
  • 保定网站制作wordpress加链接地址
  • 公司建设网站的意义怎么做网站描述
  • 北京网站开发建设公司常熟滨江开发区人才网
  • 广东如何进行网站制作排名医院网站建设目的
  • 滨湖网站制作做网站怎么收费多少
  • 在哪些网站做推广比较好做网页向网站提交数据
  • 简单网站开发实例温州网站开发网站的制作
  • 建站 哪个网站系统好用网站内容批量替换
  • 在深圳帮人做网站wordpress 主题吧
  • 视频播放网站开发淘宝网网页版登录电脑版官网
  • 台州城乡建设规划网站php黄页系统
  • 网站 分辨率为网站做seo
  • 做第三方的qq互联接口时_回调到自己的网站时要延时很久是什么原因wordpress更改了数据库密码
  • 卓越高职院建设网站建设部网站2015年第158号
  • 成都明腾网站建设公司wordpress 浮窗播放器
  • 乐山网站seo广州安全教育平台登录账号登录入口
  • 宁波网站设计服务免费的建手机网站
  • 企业网站客户案例WordPress网站运行时间
  • 网站建设html代码如何添加简单 大气 网站模版
  • 网站分类目录淘宝指数查询官网手机版
  • 网站主机和空间合肥网络公司排名
  • 网站项目的推广wordpress 批量 上传
  • 个人网站的基本风格是wordpress 比较
  • 一个交易网站开发的成本是多少网络工程师考几科