串口驱动的源文件一般是使用drivers/serial/8250.c文件,或该文件的稍作修改。这是因为大多的串口接口的操作寄存器都是符合相关的定义,都是基本一样的。那么在移植串口驱动时,一般是为该驱动添加我们的串口接口设备。一般来说,串口接口设备在board文件中添加或在板级目录下添加专属的serial文件。
设备的定义一般如下:
struct plat_serial8250_port serial_std_platform_data[] = {
{
.membase = (void *) io_p2v(UART5_BASE),
.mapbase = UART5_BASE,
.irq = IRQ_UART_IIR5,
.uartclk = MAIN_OSC_FREQ,
.regshift = 2,
.iotype = UPIO_MEM32,
.flags = UPF_BOOT_AUTOCONF | UPF_BUGGY_UART | UPF_SKIP_TEST,
},
{
.membase = (void *) io_p2v(UART3_BASE),
.mapbase = UART3_BASE,
.irq = IRQ_UART_IIR3,
.uartclk = MAIN_OSC_FREQ,
.regshift = 2,
.iotype = UPIO_MEM32,
.flags = UPF_BOOT_AUTOCONF | UPF_BUGGY_UART | UPF_SKIP_TEST,
},
{
.membase = (void *) io_p2v(UART4_BASE),
.mapbase = UART4_BASE,
.irq = IRQ_UART_IIR4,
.uartclk = MAIN_OSC_FREQ,
.regshift = 2,
.iotype = UPIO_MEM32,
.flags = UPF_BOOT_AUTOCONF | UPF_BUGGY_UART | UPF_SKIP_TEST,
}
}
struct platform_device serial_std_platform_device = {
.name = "serial8250",
.id = 0,
.dev = {
.platform_data = serial_std_platform_data,
},
};
这个platform_device对象的私有数据指成员向一个plat_serial8250_port类型的数组。在这里该数组描述了三个串口接口的基本信息。当8250驱动检测到这个platform_device对象后,就分析该对象的私有数据成员指向的那个plat_serial8250_port类型的数组。然后根据该数组的每个成员描述的信息生成一个串口对象设备。
实现了这个platform_device结构体后,把这个对象注册即可。但这个对象的name必须是serial8250。否则8250驱动检测不到这个样的设备。
如果注册顺利且工作正常,那么在驱动加载时会打印出串口接口探测信息:
serial8250.0: ttyS0 at MMIO 0x40080000 (irq = 7) is a 16550A
serial8250.0: ttyS1 at MMIO 0x40088000 (irq = 8) is a 16550A
serial8250.0: ttyS2 at MMIO 0x40098000 (irq = 10) is a 16550A
serial8250.0表示8250驱动检测到的第一个platform_device对象。如果检测到第二个platform对象,会打印成serial8250.1;如此类推。
0x40080000表示串口接口寄存器物理地址的基地址;
irq描述串口接口所用的中断;
16550A表示该串口接口的类型。有可能这个类型的名字不是我们所预期的,但是只要该类型的TX/RX FIFO长度和我们实际串口接口的一样,就可以接受。
ttyS0/1/2表示串口设备的名字
如果注册成功,则在/dev/目录下生成: ttyS0,ttyS1,ttyS2的设备文件节点。同时在/sys/devices/platform/目录下,生成serial8250,serial8250.0目录。
这时即可对串口的各设备文件节点进行测试。
下面详细介绍plat_serial8250_port这个对象。我们看一段上面的代码:
{
.membase = (void *) io_p2v(UART5_BASE),
.mapbase = UART5_BASE,
.irq = IRQ_UART_IIR5,
.uartclk = MAIN_OSC_FREQ,
.regshift = 2,
.iotype = UPIO_MEM32,
.flags = UPF_BOOT_AUTOCONF | UPF_BUGGY_UART | UPF_SKIP_TEST,
},
membase:
该成员描述的该串口接口寄存器虚拟地址的基地址。在初始化该成员时,需要自己把该串口接口寄存器的物理地址映射到虚拟地址空间。并且该映射工作需要在内核的板级初始化阶段完成。
mapbase:
该成员描述的该串口接口寄存器物理地址的基地址。其实只要初始化了mapbase成员,上面的membase成员就可以不必初始化了。因为8250驱动如果检测到只初始化了mapbase成员而membase为NULL,则自动把该串口接口寄存器的物理地址空间映射到虚拟地址空间。
irq:
该成员描述的是该串口接口使用的中断号。
uartclk:
该成员描述了该串口接口使用的时钟频率。
regshift:
该成员表示:在访问该串口接口的某个寄存器时,需把该寄存器的号左移多少位然后加基地址(不管是物理或虚拟地址)才能得能到这个寄存器的址址。
iotype:
该成员表示该串口接口寄存器的地址类型,可以取值以下的其中一个:
UPIO_PORT 端口地址,8位
UPIO_HUB6
UPIO_MEM 8位的内存地址
UPIO_MEM32 32位的内存地址
UPIO_AU
UPIO_TSI
UPIO_DWAPB
UPIO_RM9000
一般来说,如果该成员初始化为UPIO_MEM或UPIO_PORT,那么regshift成员应该为0;如果该成员初始化为UPIO_MEM32,那么regshift成员应该为2.
flags:
UPF_BOOT_AUTOCONF 表示自动探测串口类型,这个一般是需要的
UPF_SKIP_TEST 表示在探测串口类型时,是否测试地址的可访问性。这在调试阶段是需要的。
除了flags,上面的各个成员都必须严格设置正确才能保证串口接口被正确探测和初始化。
如果串口接口类型没有被探测出来,或者FIFO长度不对,这需要考虑寄存器的访问是否正确,这包括:基地址是否正确,regshift和iotype是否正确,时钟频率是否正确。
如果探测信息也没有,或者接口数量不对。那么请在mem menuconfig中,在
Device Drivers --->
Character devices --->
Serial drivers --->
(8) Maximum number of 8250/16550 serial ports
(8) Number of 8250/16550 serial ports to register at runtime
这两项的数字等于在8250注册串口接口的总数。
以下课程可免费试听C语言、电子、PCB、STM32、Linux、FPGA、JAVA、安卓等。
想学习的你和我联系预约就可以免费听课了。
宋工企鹅号:35--24-65--90-88 Tel/WX:173--17--95--19--08
Linux串口驱动移植的一些心得总结
相关推荐
高效高可靠性LED驱动设计心得技巧分享
近日,小编采访了LED驱动电路设计方面的资深达人DougBailey,他总结了设计工作中需要注意的问题和亲身设计心得、
2014-10-23 15:21:082318
设计达人分享干货:LED驱动设计心得
对于新手来讲,LED驱动设计并不是一件容易的事儿,针对这方面问题,小编特别总结了设计达人的一些在工作中需要注意的问题和亲身的设计心得进行分享。
2015-01-12 15:33:471576
Linux系统移植开发篇2:烧写linux镜像
FS-MP1A开发板,除了Linux系统移植篇外,还包括其他多系列教程,包括Cortex-A7开发篇、Cortex-M4开发篇、扩展板驱动移植篇、Linux应用开发篇、FreeRTOS系统移植篇
2021-09-29 16:00:572768
Linux串口驱动移植的一些心得总结
串口驱动的源文件一般是使用drivers/serial/8250.c文件,或该文件的稍作修改。这是因为大多的串口接口的操作寄存器都是符合相关的定义,都是基本一样的。那么在移植串口驱动时,一般是为该
2018-03-03 14:13:06
Linux驱动之基本理论常识总结
0 引言前面Linux专题中关于Linux下系统编程总结了17篇博文,主要是为了提高Linux下的C编程应用能力,熟悉Linux编程应用环境,从此篇博文起开始Linux驱动的总结,后面计划加一些综合
2021-07-01 10:38:16
Linux内核中GNU C扩展的一些常用C语言语法分析
13.1 总结前面12节的课程,主要针对 Linux 内核中 GNU C 扩展的一些常用 C 语言语法进行了分析。GNU C 的这些扩展语法,主要用来完善 C 语言标准和编译优化。而通过 C 标准
2021-12-14 06:29:10
linux 系统的构建和移植总结
初始化栈指针9.跳转到sdram中执行stage2Stage2(体系结构无关代码,C实现)1.初始化一些相关的硬件 串口,网络,USB等2.将kernel从NandFlash拷贝到sdram3.为
2013-11-27 19:56:57
linux下的Gsensor驱动移植
有没有大神在linux下做过Gsensor的驱动移植,想看看分享的经验,附件是我在移植的时候遇到的一些问题,编译的时候就出错,原厂那边没人精通这方面的,求指教
2016-12-17 09:01:25
一些自己的心得和干货分享
,有优秀的导师指引。 对于嵌入式学习来讲,每个人的嵌入式开发学习心得都是不一样的,linux内核的编程学习过程,读一些优秀的代码时很有必要的,只要自己肯努力用心,在星创客很容易就能学好,未来就业也有
2017-12-01 11:08:03
总结一下429时钟树的一些知识
目录时钟系统时钟源三级目录在前几篇文章中我想把一些基础的部分简单总结一下:首先是前两篇文章,学习一个mcu就要先对它的外设有初步的理解,还有要使用的HAL库,它相当于我们的代码与硬件之间连接的桥梁
2021-08-10 06:23:32
总结了些关于linux学习什么的一些课程设置
ven卢qq3354367110总结了些关于linux学习的一些课程第一:了解Linux系统;区分各种版本的Linux系统,以便于拓展 Linux视野。1、Linux 简介;2、Linux 系统
2017-07-29 15:07:59
ARM与嵌入式linux的一些入门建议
一份教程,这个教程中的例程并不是我为我们所代理的板子写的,是我在我们学院实验室拿的,英培特为他们自己 的实验箱写的,不过很有借鉴意义,可以作为一份有价值的参考。第二,使用linux系统进行一些
2020-04-22 10:46:31
Keil使用生成bin文件问题分析与解决办法
比较好的文章加密驱动开发使用CCMRAM内存串口网口USB虚拟串口在线升级官方资源博客资源推荐资源重要总结Keil使用生成bin文件问题分析与解决JTAG与串口本人STM32开发过程中的一些心得及总结。比较好的文章加密STM32MCU加密原理与方法 (很详细)驱动开发使用CCMRAM内存C...
2021-08-06 06:09:34
PCB Layout的一些总结
PCB设计中总结的一些原则,希望高手能够指正勘误。一、关于布局1.布局,字面上的解释,就是将电路元件合理的放置。那怎么样的放置是合理的,一个简单的原则就是模块化划分清晰,也就是说有一定电路基础的人,拿到
2016-12-20 17:34:18
RTOS和Linux中的内存映射及移植方法
一些移植方法。特别地,本文会重点讨论RTOS和Linux中的内存映射,基于I/O调度队列的移植,把RTOS I/O重定义到Linux下的驱动程序和守护进程里。
2019-07-03 07:43:06
STM32 虚拟串口 LINUX 驱动调试
出该端点。顾客对我们说是因为我们没有在Linux的机器上安装虚拟串口驱动,于是开始网上各种百度。找了半天只有一个网页里有个网友说在Linux上不用安装驱动。但是硬是没有枚举出来,后来打电话给ST的官网
2017-03-07 21:04:25
STM32开发过程中的一些心得及总结
JTAG设备STM32 汇编汇编中含C语言注释数字信号处理滤波IIR滤波器本人STM32开发过程中的一些心得及总结。比较好的文章加密STM32MCU加密原理与方法 (很详细)驱动开发启动使用CCMRAM内...
2021-08-17 08:50:02
labview串口通信的一些心得
labview中串口通信直接用labview中自带的visa是最方便的,在调试过程中的注意事项,一、串口通讯的波特率设置要精确,比如要求9600的波特率,则晶振应选择11.0593MHz或其倍数。二
2011-12-27 11:58:11
labview串口通信的一些心得
labview中串口通信直接用labview中自带的visa是最方便的,在调试过程中的注意事项,一、串口通讯的波特率设置要精确,比如要求9600的波特率,则晶振应选择11.0593MHz或其倍数。二
2012-11-30 19:47:43
laview中强制类型转换控件使用的一些心得
Labview中有个控件叫“强制类型转换”,以前一直没弄明白怎么使用它,今天仔细研究了一下,发现了使用的一些心得,拿出来与大家分享,如有不足请大家指正。由于内容较长,帖子里不好写,就做成附件了
2016-01-19 20:26:06
【转帖】嵌入式学习的一些基础技能
驱动程序编写Skull驱动 编写键盘驱动编写I/O驱动 分析一个看门狗驱动程序 对比Linux2.6内核与2.4内核中字符设备驱动的不同Linux 块设备驱动程序块设备驱动程序工作原理 典型的块设备驱动
2017-08-03 14:50:35
介绍学习Linux的一些建议
一、从基础开始: 常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实
2018-08-18 02:17:57
使用STM32cubemx进行一些串口
STM32cubemx_W5500_TCP和Modbus/TCP以STM32f103zet6开发板为平台使用STM32cubemx进行一些串口,spi等接口的初始化。使用的是野火的w5500模块,以
2022-01-19 07:51:52
使用WiFi的过程中总结的一些经验
简述在我们做项目开发中,经常会用到WiFi,这次给大家分享一下我在使用WiFi的过程中总结的一些经验,这次用到的是esp8266WiFi模块,如图所示。引脚连接:GND:接地GPIO16:其实是
2021-08-05 07:30:19
使用mpu陀螺仪的一些心得分享
浅谈自己使用mpu陀螺仪的一些心得。mpu6050/mpu6500驱动这里是用的原子哥的用虚拟IIC驱动mpu6050代码,之前我一直是用硬件IIC驱动,但是听大神说虚拟IIC比硬件IIC要稳定
2022-02-10 07:15:09
关于linux session的一些认识浅谈
今天我来谈一谈关于linux session的一些认识,以下都是我对这个概念的认识,只是很初级的,希望对各位有所帮组吧。
2019-07-23 06:20:42
关于串口的一些分享
串口是学习单片机重要的一项,用来显示数据和一些简单的控制命令非常方便,经过笔者这几天的测试,总结出了一些需要注意的地方:(以下代码全部基于单片机STM32F407实现)1、关于发送除非你勾选了串口
2016-10-13 10:43:35
分享PCB 设计的一些心得及入门资料
各位朋友:学习PCB设计已有一个月了,终于能自行设计简单的PCB板了,在近一个月的学习过程中有了些学习心得,给各位初学PCB的朋友参考.刚开始学的时候,找各种关于PCB的论坛进行学习,但看到别人发
2020-12-23 10:00:21
分享步进电机驱动的一些经验
来源:公众号【鱼鹰谈单片机】作者:鱼鹰OspreyID :emOsprey以下是鱼鹰当初完成公司第一个项目时写的总结,大家可以看看能否得到一些启发(或许会比较枯燥,毕竟这是鱼鹰自己的...
2021-07-08 08:35:15
分享给你一些实用的Linux技巧
并不需要知道所有的这些东西,但是如果你还在很沉重地在使用Linux的话,这些东西都值得你看一看。(注:如果你想知道下面涉及到的命令的更多的用法,你一定要man一点。对于一些命令,你可能需要先yum或
2016-08-21 17:13:05
分享给你一些实用的Linux技巧
并不需要知道所有的这些东西,但是如果你还在很沉重地在使用Linux的话,这些东西都值得你看一看。(注:如果你想知道下面涉及到的命令的更多的用法,你一定要man一点。对于一些命令,你可能需要先yum或
2016-08-29 09:43:46
刚接触matlab的一些心得。
刚接触matlab的一些心得。是一些非常非常浅显的数学方面的应用。贴出来了!1.普通的数值表达式计算略了,直接输入表达式回车就可以了例: 3^2+2*2+sin(pi) ans = 13注:乘法
2013-06-18 21:58:01
基于RV1109 Linux串口驱动调试心得分享
1、基于RV1109 Linux串口驱动调试心得在调试的时候发现板厂供应商调整了 RK 原厂的原理图设计,然后他们把串口 5 原来的 M0 的连接换成了另一路 IO M1,也就是说他们并没有按照原厂
2022-04-08 16:01:44
学习Linux内核过程中的心得总结
在上了Linux内核这门课后,我对Linux内核开始有了初步的了解,关于Linux内核,我觉得最重要的部分还是进程的创建以及切换,这是整个内核的核心部分。以下是一些我在学习Linux内核过程中的总结:
2019-07-12 07:27:28
学习AD的心得和见解
了不少。不过前辈基本上用的都是17稳定的版本(从18开始界面变化较大,所以看自己的习惯)AD技巧总结一些自己平时熟悉的技巧。1.原理图设计没有什么好讲的,基本上就是结合模数电知识,然后大部分遇...
2021-12-07 10:51:45
对于嵌入式的一些认识
,不开源,软实时µC/OS-Ⅱ:用于单片机,代码很少,约五千行(实时性:在规定的时间内完成规定的动作)Linux无实时性(软实时:纯软件决定硬实时:软件硬件共同决定)以上介绍的就是一些嵌入式的知识,希望
2020-05-25 17:40:28
少走弯路系列!嵌入式linux设备驱动调试移植的一些套路
地整合到操作系统的内核中。 下面是一位嵌入式驱动工程师关于驱动设备的调试和移植的一些经验总结。 做linux底层软件工作也有两年了,算上研究生时期对底层软件的研究,加起来也快四年了。慢慢地发现有必要总结
2017-11-10 16:20:40
嵌入式Linux系统移植的相关资料分享
,根据我们的具体目标平台对这源码进行必要的改写(主要是修改体系结构相关部分)。2.添加一些外设的驱动,打造一款适合于我们目标平台(可以是嵌入式便捷设备也可以是其它体系结构的PC机)的新操作系统。3.
2021-11-05 06:54:06
嵌入式学习的一些必备基础技能
驱动程序编写Skull驱动 编写键盘驱动编写I/O驱动 分析一个看门狗驱动程序 对比Linux2.6内核与2.4内核中字符设备驱动的不同Linux 块设备驱动程序块设备驱动程序工作原理 典型的块设备
2017-08-03 09:42:29
有关VBA的一些编程总结
基本的资料,边学边做。以下是一些总结的问题,希望在网友后面用到作为一些参考。改变单元格字体的COLOR和单元格底色Workbooks(1).Sheets(“Sheet3”).Range(“1:65536”).Font.Color = RGB(0, 0, 0)Workbooks(1).Sheets(“Sheet
2021-06-28 13:59:34
有线IAP用户程序升级的一些心得分享
如果你没有时间,想吃“快餐”,请直接移步至文末。在上一篇博文中,我介绍了我有线IAP用户程序升级的一些心得,有线升级并不是我的目的,无线才是,所以就有了这篇文章。这篇文章介绍的也是在实现单片机有线
2022-02-16 06:33:41
来一起梳理嵌入式Linux的一些知识
前言这篇文章简单我们来一起梳理嵌入式Linux的一些知识,方便于一些想跟我一样想要由单片机进阶到嵌入式Linux的朋友做一些参考学习。嵌入式Linux学哪些东西1、认识Linux学单片机的朋友有些有
2022-01-05 07:18:01
梳理嵌入式Linux的一些知识
前言这篇文章简单我们来一起梳理嵌入式Linux的一些知识,方便于一些想跟我一样想要由单片机进阶到嵌入式Linux的朋友做一些参考学习。嵌入式Linux学哪些东西1、认识Linux学单片机的朋友有些有
2021-11-04 07:33:30
浅谈Linux内核驱动心得
都要难点,而且学习的内容量也是比较多。因此在学习嵌入式ARM的初级阶段是随处碰壁,每天都在遭受打击,例如在移植bootloader时,虽然按照网上的一些方法移植成功了,但只知道复制和粘贴要修改的代码
2012-02-22 10:01:03
深度无盘多配置一些经验心得
`深度无盘多配置一些经验心得 在论坛上看到有不少兄弟在讨论说做无盘的多配置问题,看到有不少兄弟说喜欢做成单包多配置,也有说做成多包的比较好。总之大家都有自己的看法,也蛮有道理的。我今天就是谈下自
2011-07-19 09:22:08
简单总结一些造成电源完整性的问题
造成电源完整性的问题有很过,之前也和大家分享过一些。但这些问题都不是独立的,他们之间的原理是互通,可能解决了这个问题另外一个问题就解决了。今天和大家一起简单总结一些造成电源完整性的问题:1.同步开关
2021-10-29 08:59:35
给嵌入式初学者的一些建议
找就可以了,以后遇到的多了,也就记住了,遇到的少的,忘记也就忘记了。还有,不要直接阅读linux内核源代码,看一些自己把头撞破也想不明白的事,会打击初学者的积极性,要循序渐进,今天学个做个led,明天
2016-11-02 11:47:21
讲述了一些快速配置驱动的方法
建议赛前大家好好看看这里的客观题,过一遍有个印象;模电部分的博文中有一个当时看书总结的一点小知识点;最主要的是蓝桥杯驱动准备-----对官方参考驱动的修改和编写方式和遇到的一些BUG及经验这个博文
2022-01-27 06:31:25
请问有人能给我一些在Linux中提出MCP25625的指针吗?
嗨,我是新来的FW。有人能给我一些在Linux中提出MCP25625的指针吗?我看到了一些用于MCP2515的Linux驱动程序,我不确定它们是否可以直接移植到MCP25625。非常感谢。谢谢
2019-06-11 10:48:04
调试STM32硬件IIC从机的一些心得
IIC从机的一些心得体会。硬件IIC主机通信见另一篇文章:传送门 。硬件平台:STM32F205软件平台:keil v5函数库:标准库硬件IIC从机初始化下面看下STM32中IIC的...
2021-08-11 09:34:47
通过串口调试助手输入命令运行一些调试函数
对于做linux开发的研发人员来说,大家都喜欢通过输入指令符来执行一些命令操作,如果在MCU编程过程中有一个类似linux的shell命令工具可以通过串口调试助手输入命令然后运行一些调试函数,将会
2021-11-03 08:56:26
lwip移植说明及心得
lwip是一套用于嵌入式系统的开放源代码TCP/IP协议栈。Lwip既可以移植到操作系统上,又可以在无操作系统的情况下独立运行。下面我们来看看lwip移植说明及心得。
2017-12-11 16:06:3219515
ntp的移植心得分享
最近做了一下ntp的移植,把心得和大家共享一下,虽然网上有很多关于ntp的移植文件,但是都很简单,好像没有遇到任何的问题,可是我却遇到了不少啊。 第一步:设定交叉编译器的路径 初学者经常漏掉的一步,万一没设定就是以主机的gcc在编,变成主机执行了。
2018-05-29 15:27:014653
如何在DM6446 GPIO中进行LINUX的驱动移植详细程序说明
说到LINUX 驱动移植,没有移植过的朋友,或刚刚进入LINUX领域的朋友,最好去看看《LINUX 设备驱动程序》第三版,有个理论或感性的认识。该版本是基于2.6.10的基础上描述的,经典读物,
2019-05-08 18:19:001
嵌入式Linux串口扩展的驱动设计方案解析
本方案介绍WK2X系列UARTs在嵌入式Linux(Android)下扩展多串口方案,尤其是嵌入式Linux串口扩展的驱动设计方案的思路和原则。
2020-08-31 15:35:121197
从串口驱动到Linux驱动模型
本文通过对Linux下串口驱动的分析。由最上层的C库。到操作系统系统调用层的封装。再到tty子系统的核心。再到一系列线路规程。再到最底层的硬件操作。 对Linux中的tty子系统进行简要的说明
2020-11-04 14:50:312399
ATWILC器件Linux移植指南
本用户指南介绍了如何将 ATWILC1000 和 ATWILC3000 Linux 驱动程序移植到另一个平台,以及移植驱动程序需要进行哪些修改
2021-04-29 10:10:138
【Linux】嵌入式Linux系统的移植(上篇:交叉编译器、连接方式)
嵌入式Linux系统移植嵌入式Linux系统移植是进行Linux驱动开发的基础,如果连Linux系统移植都完成不了,那就更不用说驱动开发了。因此,Linux系统移植至关重要。嵌入式Linux系统
2021-11-01 16:57:0814
(一)嵌入式linux移植使用ch340
有各种版本的 ch340驱动.3、移植一个minicom到你的开发板里面,正点原子有教程,适合很多个平台,只需要更换你的交叉编译器即可,该工具就是一个linux下的串口工具。1.2、开始移...
2021-11-01 17:59:1114
[深度理解嵌入式linux系统移植]深度理解嵌入式linux系统移植
-linux内核工程与编译系统第七章-linux内核启动流程分析第八章-linux移植准备及最小系统构建第九章-linux网卡驱动移植第十章-linux混杂设备驱动第十一章-linuxI2C驱动移植第十二章-linuxSPI驱动移植第十三章-Nand Flash 驱动移植第十四章-SD.
2021-11-02 13:21:2116
Linux单片机串口通信总结
实验总结程序组织串口调试Linux与单片机串口通信 近期要做一个机械臂的小项目,作为ROS和MoveIt的实践平台,上位机和工控机之间暂定为串口通信。上位机:Ubuntu18.04虚拟机工控机:STC89C51,编程环境为keil5 由于选择了早已过时的C51作为下位机,互联网上并没有太多相关资
2021-11-23 18:06:199
linux移植MPU6050的I2C驱动
有MPU6050的例程,测试后很好用,如下图(梦幻联动一下:树莓派PICO+freeRTOS)因为pico上有现成的能用的例程,所以改一改之后直接移植到linux上首先介绍一下linux下的I2C框架①、I2C 总线驱动,I2C 总线驱动就是 SOC 的 I2C 控制器驱动,也叫做 I2C 适配器
2021-12-06 14:21:0910
STM32 USB转串口驱动移植到SylixOS中遇到的问题总结
转串口功能时对该USB库进行了移植。由于该USB库的实现是基于STM32的裸机代码实现,因此在移植的过程中,不需要做过多的修改。 下面章节主要介绍在移植STM32的USB转串口驱动到SylixOS下遇
2021-12-27 19:06:498
CH9434嵌入式Linux与安卓系统驱动移植和使用教程
CH9434是一款SPI转四串口转接芯片,提供四组全双工的9线异步串口,用于单片机/嵌入式/安卓系统扩展异步串口。提供25路GPIO,以及支持RS485收发控制引脚TNOW。本篇基于STM32MP157处理器平台,介绍CH9434在嵌入式Linux系统/安卓系统的驱动移植和使用方法。
2023-04-12 11:55:553632
开发心得(2):Android智能硬件的关键——串口通信
通过总结大大小小多个Andriod智能硬件开发项目,记录了智能硬件产品开发的全流程、智能硬件开发所涉及的技术体系概述的心得,并附上在主板选型、串口通信、屏幕显示、常用外接设备上一些品类的特点和差异
2022-07-04 16:51:36459
总结:Android智能硬件开发心得
通过总结大大小小多个Andriod智能硬件开发项目,记录了智能硬件产品开发的全流程、智能硬件开发所涉及的技术体系概述的心得,并附上在主板选型、串口通信、屏幕显示、常用外接设备上一些品类的特点和差异
2022-10-09 09:33:55622
Linux驱动移植 Linux系统架构优点
系统移植 linux 驱动移植 移植是说同样的一个 linux 操作系统,我们可以跑到不同的硬件上面,我们把操作系统移植到不同的硬件上面,这个过程叫做移植。设备驱动移植步骤,如下图所示: 应用软件
2023-07-27 17:06:06516
一文总结linux的platform驱动
在linux设备驱动中,有许多没有特定总线的外设驱动,在实际开发中,又需要使用到总线、驱动和设备模型这三个概念,故而linux提供了platform这个虚拟总线,挂接在platform总线上的驱动称为platform驱动
2023-10-16 16:45:40369
评论
查看更多