嵌入式Linux驱动开发
文章平均质量分 79
设备驱动相关
heat.huang
不积跬步无以至千里
展开
-
Macronix MX25L25645G NOR Flash无法擦除问题分析
处理器使用的 SAM9X60, 使用的内核版本是 5.10.80,在调试 Macronix MX25L25645G NOR Flash时,发现flash驱动加载成功后,使用 mtd_debug 工具 erase flash时,擦除一整片flash区域时,命令执行速度很快,而且命令执行完没有报错,但是最后发现flash并没有真正被擦除。最先开始初始时,spi_nor_scan 中定义的是 SNOR_PROTO_1_1_1。对比spi_nor_select_read 和 spi_nor_select_pp。原创 2023-09-11 16:32:30 · 959 阅读 · 0 评论 -
Linux下CAN总线通信调试记录
1. 概述 CAN总线是德国BOSCH公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率最高可达1Mbps。 SAMA5D27处理器的CAN控制器使用的是BOSCH公司的MCAN IP核,其手册中MCAN章节的内容与BOSCH的MCAN用户手册基本一致。 我们的CAN通信测试如下:使用处理器连接CAN分析仪,分析仪为USB转CAN,分析仪连接PC机。在PC机上运行CAN分原创 2021-06-17 15:20:04 · 2858 阅读 · 1 评论 -
FPGA从串模式启动-比特文件加载
1 FPGA从串模式加载及升级设计 FPGA程序加载及升级功能:通过配置FPGA引脚,使得FPGA工作在从串模式下,处理器通过SPI将比特流文件传送给FPGA,用于FPGA从串模式启动。1.1 硬件连线 处理器与FPGA硬件连接如下。FPGA硬件配置框图如下。FPGA从串模式加载时序如下。相关引脚解释: M0和M1引脚:用于配置FPGA的工作模式。salve serial 模式或master serial模式; PROGRAM_B和INIT_B引脚: 从串模式下,作为起原创 2021-06-16 15:21:24 · 2464 阅读 · 2 评论 -
KSZ8081RNB-PHY芯片调试记录
1 概述 选用的PHY型号为Micrel KSZ8081-RNB 。该PHY与处理器MAC 控制器的Interface为RMII模式,对外的Media Interface为电口(RJ45)。硬件原理图设计如下。2 驱动修改情况 KSZ8081的驱动内核已支持,源码路径:\linux-at91\drivers\net\phy\micrel.c。 一般情况下,仅需修改设备树添加phy节点。在头文件: \linux-at91\include\linux\micrel_phy.h中找到原创 2021-06-16 15:10:48 · 4780 阅读 · 4 评论 -
Uboot-sama5d27-NAND初始化代码走读
elevator-4.0-ida-driver\u-boot-at91\common\board_r.c进入 nand_init()elevator-4.0-ida-driver\u-boot-at91\drivers\mtd\nand\atmel_nand.c进入board_nand_init,board_nand_init和具体的平台相关进入 atmel_nand_chip_initnand_scan_ident读取flash ID并建立MTD相应字段;nand_scan_tail填原创 2021-06-16 14:37:08 · 237 阅读 · 0 评论 -
Linux串口驱动分析及移植
1 概述 在Linux中,常碰到“控制台”、“终端”、“console”、“tty”等术语,也会经常使用一些设备文件:/dev/console、/dev/ttyS0、/dev/ttyUSB0等。tty是Teletype的缩写,Teletype是最早出现的一种终端设备,Linux通常使用tty来表示“终端”,终端设备的种类有很多,比如串行终端、键盘和显示器、通过网络实现的终端等。 UART与USART都是单片机上的串口通信, UART(universal asynchronous receiv原创 2021-06-16 14:26:06 · 8204 阅读 · 1 评论 -
看门狗芯片-SP706-调试记录
一、 看门狗芯片1.1 看门狗芯片与处理器引脚连接 本次主控单元使用的看门狗芯片为SP706芯片 。 引脚定义:1.2 使能外部看门狗(1) 看门狗芯片SP706芯片手册中的电路图:(2) 看门狗与主控板连接原理图如下所示: 当J2接上跳线帽时,开启看门狗。反之,看门狗关闭。 独立的看门狗芯片:这种看门狗主要有一个用于喂狗的引脚(一般与CPU的GPIO相连)和一个复位引脚(与系统的RESET引脚相连),如果没有在一定时间内改变喂狗脚的电平,复位引脚就会改变状态复位C原创 2021-06-16 13:52:05 · 6395 阅读 · 1 评论 -
I2C驱动-module_i2c_driver 分析
I2C driveri2c.h将参数(ch452_driver)传入函数 module_driver.module_driver(ch452_driver, i2c_add_driver, i2c_del_driver)下面来看module_driver的定义:(device.h)理解上述宏定义后,将module_i2c_driver(ch452_driver) 按其宏定义展开就可以得到:static int __init ch452_driver_init(void) \{原创 2021-06-16 13:36:49 · 2569 阅读 · 0 评论 -
U-boot中打开debug调试信息
debug(">>spl:board_init_r()\n");Uboot中打开debug调试信息的方式如下:在Uboot的根目录下找到文件:/include/common.h在上图红色箭头位置添加 #define DEBUG ,重新编译Uboot,将Uboot镜像烧写至开发板,启动查看打印日志。...原创 2020-03-05 14:00:38 · 4895 阅读 · 0 评论 -
时钟合成芯片-CDCE913-Linux驱动调试-(1)
1. 芯片简介 CDCE913的芯片手册可在 TI 官网下载,地址:http://www.ti.com.cn/product/cn/CDCE913?keyMatch=CDCE913&tisearch=Search-CN-technicaldocument&usecase=part-number CDCE913的功能框图: CDCE913芯片支持 I2C 通...原创 2019-11-18 14:15:12 · 1335 阅读 · 0 评论 -
ubuntu下使用源码交叉编译gpsd工具--Building GPSD from source
1.下载源码 You can download the lastest gpsd tarball from: http://download.savannah.gnu.org/releases/gpsd/ 进入下载页面,选择最近发布的版本进行下载,下载tar.gz压缩包。(国外服务器有时候下载速度会很慢) windows下载:直接点击相应的版本下载; ...原创 2019-11-06 17:29:52 · 2068 阅读 · 5 评论 -
UBI文件系统烧录后出现用户名为1000的问题解决办法
问题截图: 用户名和组应该都为root才对,但现在用户名为1000,而用户组为input。产生这个问题的原因是:在制作UBI文件系统镜像时,根文件系统的文件所属的用户名和组不是root造成的,比如下面的情况: 将根文件系统的文件所属用户名和组修改为root,重新制作UBI文件系统镜像,烧录开发板后,文件恢复为root用户名和组。烧录后:...原创 2019-10-31 18:07:31 · 410 阅读 · 0 评论 -
【Linux驱动开发调试工具】- devmem2
在调试设备驱动的时候,能否利用一个小工具来查看CPU中寄存器的值呢?答案是肯定的!已经有这样的工具,用 /dev/mem 实现,叫做 devmem2。devmem工具在应用层能够侦测内存地址中的数据变化,以此来检测驱动中对内存或者相关配置的正确性验证。 devmem2使用方法: devmem2 { address } [ type [ d...原创 2019-10-15 09:52:10 · 3431 阅读 · 2 评论 -
Linux下EEPROM-24LC16驱动调试
1 概述 Microchip公司的24AA16/24LC16B (24XX16*)是一个16kbit的电可擦PROM。该设备由8块(共256×8位)内存和2线串行接口组成。低压设计允许运行到1.7 v。24XX16还具有最多16字节数据的页写入功能。2 引脚连接及I2C从器件地址、时序2.1 引脚连接 使用的硬件平台: Atmel SAMA5d4,Cortex-A5处理...原创 2019-10-12 17:59:36 · 3511 阅读 · 6 评论 -
Linux下SPI Flash-W25Q64驱动调试
1 简介 W25Q64是华邦公司推出的大容量SPI FLASH产品,其容量为8M。该25Q系列的器件在灵活性和性能方面远远超过普通的串行闪存器件。W25Q64将8M字节的容量分为128个块(block),每个块大小为64K字节,每个块又分为16个扇区(sector),每个扇区4K字节。W25Q64的最小擦除单位为一个扇区,也就是每次必须擦除4K个字节。所以,这需要给W25Q64开辟一...原创 2019-10-12 15:08:04 · 6513 阅读 · 1 评论 -
【UBI文件系统制作】-(1)UBI文件系统简介
1 引言 在Linux-2.6.27以前,谈到Flash文件系统,大家很多时候多会想到CRAMFS、JFFS2、YAFFS2等文件系统。它们也都是基于文件系统+MTD+Flash设备的架构。Linux-2.6.27后,内核加入了一种新型的Flash文件系统UBI(Unsorted Block Images)。下面将详细介绍UBI文件系统的制作方法。2 UBI文件系统简介 Flas...原创 2019-09-23 17:17:21 · 592 阅读 · 0 评论 -
【UBI文件系统制作】-(2)Busybox制作根文件系统
接上一篇文章:【UBI文件系统制作】-(1)UBI文件系统简介https://blog.csdn.net/weixin_40407893/article/details/101214434 3 UBI文件系统制作步骤3.1 Busybox制作根文件系统 使用busybox编译和生成Linux根文件系统的流程如下。 (1) 准备工作 系统版本和开发环境 -...原创 2019-09-23 17:40:25 · 881 阅读 · 0 评论 -
【UBI文件系统制作】-(3)制作UBI文件系统镜像
系列文章:【UBI文件系统制作】-(1)UBI文件系统简介https://blog.csdn.net/weixin_40407893/article/details/101214434【UBI文件系统制作】-(2)Busybox制作根文件系统https://blog.csdn.net/weixin_40407893/article/details/101214693 3.2 制作U...原创 2019-09-23 18:15:33 · 1491 阅读 · 0 评论 -
Linux 串口驱动分析
(1)https://blog.csdn.net/qq_22847457/article/details/91477264Linux串口驱动程序(1)-tty驱动程序架构(2)https://blog.csdn.net/qq_22847457/article/details/91530701Linux串口驱动程序(2)-串口驱动程序初始化分析(3)https://blog.csdn.net...转载 2019-09-26 09:26:15 · 296 阅读 · 0 评论 -
linux中断处理原理分析
Tasklet作为一种新机制,显然可以承担更多的优点。正好这时候SMP越来越火了,因此又在tasklet中加入了SMP机制,保证同种中断只能在一个cpu上执行。在软中断时代,显然没有这种考虑。因此同一种中断可以在两个cpu上同时执行,很可能造成冲突。 Linux中断下半部处理有三种方式:软中断、tasklet、工作队列。转载 2019-10-08 11:21:09 · 307 阅读 · 0 评论 -
Linux内核自带SPI设备驱动测试程序分析:spidev_test.c
在Linux系统中,SPI 的用户模式设备接口的驱动源码位于 drivers/spi/spidev.c,在应用层生成 /dev/spidev* 的节点,可以通过 read、 write 达到与硬件设备的 SPI 通信。下面介绍spidev驱动移植和应用程序编写方法。 硬件配置: 创龙TL335x-IDK 开发板+SOM-TL3359-eMMC 核心板 内核版本: ...原创 2019-10-09 18:45:17 · 16363 阅读 · 2 评论 -
Linux下CH452数码管芯片驱动调试(GPIO模拟I2C)
CH452 是数码管显示驱动和键盘扫描控制芯片。CH452 通过可以级联的 4 线串行接口或者 2 线串行接口与单片机等交换数据。CH452使用2 线串行接口时,支持最大400KHz 时钟速度,兼容两线 I2C 总线。本文只研究CH452芯片驱动数码管显示的功能, 探索CH452数码管显示芯片在主控板上的使用。分别在主控板Linux内核空间和用户空间,通过使用GPIO口模拟I2C时序的方式,点亮显示数码管。原创 2019-05-30 15:04:36 · 1631 阅读 · 14 评论