arm
文章平均质量分 68
对的时间点
新手一枚,有错误再所难免,希望各位指正
展开
-
LINUX 内核零散知识 container_of宏
container_of是内核中常用的一个宏。定义如下:#define container_of(ptr, type, member) ({ \ const typeof(((type *)0)->member) * __mptr = (ptr); \ (type *)((char *)__mptr - offsetof(type, member)); })设个宏共有三个参数:ptr:结构体成员member的地址type:结构体的类型member:结构体成员container原创 2020-09-19 15:38:14 · 185 阅读 · 0 评论 -
错误集 字符设备驱动 echo 死循环
现象使用如下命令访问字符设备驱动,本意是通过echo命令调用驱动中的write函数。echo 1 > /dev/mydev但是结果出现了死循环,echo命令并不结束。原因:write函数中,在返回的时候,固定的返回一个0.分析echo命令,进行了3步操作,打开文件,写入数据,关闭文件。在写入文件的时候,有对返回值的判断操作,若返回值不等于写入的数据数量,则会再次进行写入操作。个人推测是根据返回值进行偏移,再次进行写入。但是返回值若是0,则会导致不停的写入,则会产生死循环。..原创 2020-08-27 11:35:30 · 666 阅读 · 0 评论 -
arm 裸机编程 外部中断篇
GIC即 Generic Interrupt Controller 通用中断控制器,是支持和管理系统找你孤单的集中式资源。提供:从硬件(外围)启用、禁用和生成处理器中断产生软件中断中断屏蔽和优先级支持三种中断:软件生成中断(SGI)专用外设中断(PPI):特定于单个处理器的外围中断共享外设中断(SPI):这是可以将其分发给任何处理器组合的外围中断触发方式:边沿触发...原创 2020-04-27 09:05:09 · 408 阅读 · 0 评论 -
ARM 裸机编程 PWM篇
简介Exynos 4412具有五个32位脉宽调制(PWM)计时器。这些计时器为ARM子系统生成内部中断。此外,计时器0、1、2和3包括PWM功能,该功能可驱动外部I / O符号 。计时器0中的PWM具有可选的死区发生器功能,以支持大电流设备。定时器4是内部定时器,不带输出引脚。定时器使用APB-PCLK作为源时钟。定时器0和1共享一个可编程的8位预分频器,可为PCLK提供第一级分频。定时器2...原创 2020-04-22 16:39:05 · 652 阅读 · 0 评论 -
arm 裸机编程 看门狗篇
Watchdog Timer看门狗是一种即使设备。可以用起产生中断信号或者复位信号。功能支持带中断请求的正常间隔定时模式如果计时器计数达到0(超时),则激活内部复位信号支持 水平触发 中断机制。简介PCLK为输入频率,其会经过两次分频,分别由WTCON[15:8]和WTCON[4:3]控制。然后每有一次电平的周期变,WTCNT中的Down Counter就会递减。当其为零的...原创 2020-04-21 19:16:39 · 342 阅读 · 0 评论 -
arm 裸机编程 串口篇
实际上波特率并不等于bps。波特率:一秒钟传输码元的个数bps:一秒钟发送的比特位位数而码元是承载信息量的基本信号单位,一个二进制码元占一个比特位所以仅仅二进制码元时,bps等于波特率同步和异步方式:配置串口大的步骤(使用轮询方式):波特率起始位、停止位、奇偶校验位、数据位收发模式需要分别知道读取和发送串口数据的寄存器需要知道什么时候收数据,什么时候发数据,即状态寄存器。...原创 2020-04-18 10:43:30 · 220 阅读 · 0 评论