![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux内核接口驱动
文章平均质量分 65
分享工作中的一些内容
吾名为小咸鱼
从嵌入式单片机到嵌入式linux的学习过程
展开
-
看门狗是触发时,系统是怎么知道并且重启的?
实验板子:飞凌FET335xD操作系统:linux3.2看门狗是触发时,系统是怎么知道并且重启的?1. 首先看一下cpu手册,关于复位寄存器的描述其中bit(4)是看门狗的复位;bit(5)是外部的复位,即开发版的rst复位键当看门狗触发时,会产生一个全局热复位的信号,并把PRM_RSTST的bit4置12. 再看一下cpu手册,关于看门狗的相关描述从上图可以知道溢出/复位的一代看门狗定时器寄存器(WDT_WCRR)溢出时,给PRCM模块产生一个active-low复位脉冲。该RESE原创 2022-05-06 10:29:24 · 1587 阅读 · 0 评论 -
devmem命令直接操作寄存器
可以使用denmem这个命令来直接操作寄存器找到sdio用到的数据引脚,mmc0_dat0,其中控制寄存器映射地址是 0x44E1_0000,改引脚的偏移地址为8FCh1.首先读0x44E108FC,值为30,说明默认是mmc0_dat0功能2.然后写入0x37,也返回了写入成功3.再次读就变回原来的值第一反应是去ti论坛找找是否有相关的帖子,果然是有这个问题:https://e2echina.ti.com/support/processors/f/processors-forum/20原创 2022-04-20 17:40:41 · 1324 阅读 · 0 评论 -
RTC时间不能往前调
问题来源在工作中同事在使用RTC接口时,发现了一个奇怪但又很有意思的问题linux中使用date设置时间后用hwclock -w同步到RTC,重启后,时间不能往前设置在使用的时候发现/etc中有一个timestamp,删除就能设置时间;但是我这边测试一直没有复现同事说的问题,一直没有出现时间戳文件;出现时间戳之后,也能往前设置时间。原因分析1.timestamp时间戳文件怎么生成的,他的作用是什么?时间戳表示unix当初订立的时间,简单用 1970-1-1 , 0:00:00 到现在经过的原创 2022-04-18 18:30:50 · 341 阅读 · 0 评论 -
335x系列-解决爆破音导致的调用延迟问题
实验板子:飞凌FET335xDuboot版本:2011.09linux内核版本:linux3.2cpu:Ti的3354操作系统:linux3.2文件系统:ubi问题:当按照应用笔记中的patch修改了内核,爆破音问题的确解决了,但是发现声音的输出有400ms的延时。想象:每次上电第一次放音会有延时,5s内连续放音没有延时,停5s以上就会出现延时应用笔记中的patchdiff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codec原创 2022-04-18 18:15:14 · 241 阅读 · 0 评论 -
335x系列平台-ADC接口配置和最大采样速率
实验板子:飞凌FET335xDuboot版本:2011.09linux内核版本:linux3.2cpu:Ti的3354操作系统:linux3.2文件系统:ubi1.ADC配置335x的cpu支持8个的ADC通道AIN0-AIN7335xd平台,默认AIN0-AIN3用作电阻触摸屏,AIN4-AIN7直接引出修改板级文件arch/arm/mach-omap2/board-am335xevm-xd.c添加配置和初始化2.用户空间的调用配置完成后,在/sys/bus/iio/devi原创 2022-04-18 17:59:03 · 1540 阅读 · 0 评论 -
nand减少位翻转导致的问题解决方案
问题解决解决这类问题, 系统层面可从两个方面入手:分区域保护和双备份或者可以新建分区,将重要数据放入独立的分区一,双备份目前335x已经对uboot镜像镜像了备份,分区情况如下:mtd0: 0 00200000 "SPL" 存放MLOmtd1: 00200000 00400000 "SPL.backup1" 存放MLO的备份mtd2: 00400000 00600000 "SPL.backup2" 存放uboot.img的备份mtd3: 00600000 00800000 "SPL.bac原创 2022-04-18 17:46:38 · 600 阅读 · 0 评论 -
spi能生成节点,但是没有数据收发不正常,没有数据
实验板子:飞凌FET335xDuboot版本:2011.09linux内核版本:linux3.2cpu:Ti的3354操作系统:linux3.2文件系统:ubi问题现象能生成spidev设备节点,示波器量数据线D0和D1没有波形问题排查1.首先,飞凌的源码默认是sip转can,需要根据手册修改成spi模式,发现还是不通2.排查配置过程,这里说明讲一下spidev的注册过程1) 先配置引脚/* Module pin mux for SPI flash */static struct原创 2022-04-14 18:23:16 · 1452 阅读 · 0 评论 -
335x系列平台-usb的模式切换HOST和OTG
实验板子:飞凌FET335xDuboot版本:2011.09linux内核版本:linux3.2cpu:Ti的3354操作系统:linux3.2文件系统:ubi335xd平台,默认usb0用作OTG,usb1用作HOST修改时只需要修改mode模式,低四位控制usb0的模式,高四位控制usb1的模式例如配置两路usb都用做usb_host...原创 2022-04-14 18:06:33 · 900 阅读 · 0 评论 -
335x系列平台-pwm接口配置和注意事项
实验板子:飞凌FET335xDuboot版本:2011.09linux内核版本:linux3.2cpu:Ti的3354操作系统:linux3.2文件系统:ubi1.基础知识335x的CPU有pwm的控制器PWMSS其中支持三种模式分别是eHRPWM、eCAP、eQEP,对应增强型脉冲宽度调制器、增强型捕捉模块、正交解码单元。下面以在335xd平台配置成4路普通pwm模式为例驱动在代码中使用配置好,只需要复用引脚和配置使用即可修改文件内核文件:arch/arm/mach-omap2/b原创 2022-04-14 18:03:33 · 2058 阅读 · 1 评论 -
linux中通过控制寄存器直接控制gpio的电平
实验板子:飞凌FET335xDuboot版本:2011.09linux内核版本:linux3.2cpu:Ti的3354操作系统:linux3.2文件系统:ubi前言初学嵌入式linux时,总是从控制一个gpio学起,使用linux内核封装好的函数,就能控制gpio了,非常方便。如下: #define GPIO3_1 3<<5|1 gpio_request(GPIO3_1,"gpio3_1"); /*申请一个gpio*/ gpio_direction_output(GPI原创 2022-04-11 15:10:45 · 2473 阅读 · 0 评论 -
335x系列平台-uart波特率的一些注意事项
实验板子:飞凌FET335xDuboot版本:2011.09cpu:Ti的3354系统:linux3.2文件系统:ubi问题来源:在使用qt应用进行串口测试,发现波特率高于115200之后会乱码。1.先复现问题电脑使用的串口助手是 sscom32.exe,qt应用和串口助手分别在9600,115200,128000和256000波特率,测试发现115200以上,的确乱码,问题复现。但是都是有规律的乱码。2.查看波形是否正确发送一个字母a,波形如下以上是115200和256000原创 2022-04-11 11:51:00 · 1207 阅读 · 1 评论 -
增加uart串口的方法
实验板子:飞凌FET335xDlinux内核版本:linux3.2cpu:Ti的3354系统:linux3.2文件系统:ubi通过查阅 CPU 手册, 335 平台可以最多复用出 6 路串口, UART0 – UART5。本次以复用 UART5 为例,讲解如何在 335 xd平台添加串口设备。查阅 Sitara AM335x ARM Cortex-A8 Microprocessors (MPUs) (Rev. F)手册,查看该手册中球特性的内容,该部分列举了 CPU 各球号对应的复用功能,搜原创 2022-04-11 10:44:25 · 710 阅读 · 0 评论