08 2018 档案
摘要:一、设置TIM3的GPIO为推挽输出 二、设置TIM3的PWM1方式4路输出 上面的TIM周期是20ms 三、修改PWM的方法
        阅读全文
                
摘要:4412的笔记比较多,不方便查询。我想把它列在一个网页里,这样比较方便。 一、4412环境准备 迅为4412开发板入门准备(2018-06-29 11:17) 4412 使用搭建好的环境编译系统(2018-06-30 09:28) 4412应用编程(2018-07-06 21:47) 4412 串口
        阅读全文
                
摘要:一、Linux定时器基础知识 1.1 定时器的使用范围 延后执行某个操作,定时查询某个状态;前提是对时间要求不高的地方 1.2 内核时间概念 Hz:(系统时钟通过CONFIG_HZ来设置,范围是100-1000;HZ决定使用中断发生的频率) 1/200 = 5ms,说明4412中是5ms产生一次时钟
        阅读全文
                
摘要:1.Linux主机驱动和外设驱动分离思想(I2C驱动里有) SPI驱动总线架构:SPI核心层(x),SPI控制器驱动层(x),SPI设备驱动层(√)。前面两个设备驱动搞明白了可以去看 2.教程中介绍:SPI函数接口(API): 简单介绍SPI协议,硬件原理(4412datasheet) 3.教程中介
        阅读全文
                
摘要:1.Linux主机驱动和外设驱动分离思想 外设驱动→API→主机驱动→板机逻辑--具体的i2c设备(camera,ts,eeprom等等) 2.主机驱动 根据控制器硬件手册,操作具体的寄存器,产生波形。 Linux应用工程师:屏蔽了驱动和硬件 Linux驱动工程师:屏蔽硬件,提供标准的主机驱动。驱动
        阅读全文
                
摘要:一、轮询方式获取按键 1.原理分析: 按键会影响电平的输入,通过GPIO的输入电平来检测按键的变化 按下0,前面实验“GPIO读”用到过 应用中是read 2.硬件准备 使用两个按键:Home和Back UART_RING和SIM_DET→ GPX1_1和GPX1_2→ EXYNOS4_GPX1(1
        阅读全文
                
摘要:一、PWM原理 1.有源蜂鸣器和无源蜂鸣器的概念 有源蜂鸣器高电平就响,无源蜂鸣器需要PWM波才响。 2.PWM脉冲波 PWM = 定时器 + 定时器中断(重载) + IO输出(翻转) 3.分析原理图 GPIO-GPD0_0 XpwmTOUT0定时器0,同上面IO口 4.pwm定时器上的资源 5.分
        阅读全文
                
摘要:一、485硬件原理 差分对传输数据的原理 IO数据的传输→差分对 rs232传输的距离在15米以下,RS485传输距离是几十米到1000米以上 为什么485可以传输这么远 差分对的机制可以降低电磁场的干扰 衰减 485传输距离和传输线有关系 注意:双绞线和屏蔽线 IO数据的传输→差分对 差分对的机制
        阅读全文
                
摘要:一、并发基本概念 1.并发 并发的概念是:多个执行单元同时、并行被执行 Linux系统是多任务的,很多任务会同时执行 假如有三个执行单元ABC,共享了内存资源 执行单元A对Buffer写1000个"a"; 执行单元B对Buffer写1000个"b"; 执行单元C从Buffer中读取数据。 如果按照A
        阅读全文
                
摘要:一、配置GPIO读 在视频14的基础上做 1.利用拨码开关来实现GPIO输入 所以AP_SLEEP对应GPC0_3,然后在drivers/gpio/gpio-exynos4.c中对应EXYNOS4_GPC0(0) XEINT6→GPX0_6→EXYNOS4_GPX0(6) 读寄存器手册分析流程: 2
        阅读全文
                
摘要:在linux系统中,proc文件系统用于导出内核的信息 proc文件系统一般是只读,也是可以通过编写代码给proc中添加信息,感兴趣可以在网上找一找代码来实现,用处不大。 类比window系统的任务管理器 学习方法参考"linux命令",知道有这个功能,用到的时候再去查即可 meminfo 返回结果
        阅读全文
                
摘要:一、静态申请字符类设备号 字符类设备函数在文件"include/linux/fs.h"中 内核提供了三个函数来注册一组字符设备编号,这三个函数分别是 register_chrdev_region() alloc_chrdev_region() register_chrdev() register_c
        阅读全文
                
摘要:单个参数 应用程序中可以在main的参数传值 头文件在"include/linux/moduleparam.h" 内核模块可以通过module_param来传单个参数 module_param(name, type, perm) name:模块参数的名称 type:模块参数的数据类型(支持int l
        阅读全文
                
摘要:一、GPIO的初始化 • 在内核源码目录下使用命令“ls drivers/gpio/*.o”,可以看到“gpioexynos4”被编译进了内核.通过搜索*.o文件,可以知道内核编译内哪些文件。针对的看可以简化很多。– 生成.o文件代表最终被编译进了内核– 除了menuconfig配置文件,还可以通过
        阅读全文
                
摘要:单片机MCU 现代中央处理器CPU 4412 的物理地址包括 CPU内部寄存器registere MMC TF卡 现代CPU和单片机相比就多了缓存和内存管理单元 缓存比内存贵,速度快,所有它在挨着CPU的第一级 内存比存储介质贵,速度快,所以它在缓存和内存之间 4412访问物理地址的过程是:从cac
        阅读全文
                
摘要:一、杂项设备 为什么用杂项设备• 杂项设备可以说是对一部分字符设备的封装,还有一部分不好归类驱动也归到杂项设备。杂项设备是字符设备的封装• 为什么会引入杂项设备?• 第一、可以节省主设备号– 如果所有的驱动都是用字符设备,那么所有的设备号很快就用完了,总共就255个主设备号。• 第二、驱动写起来相对
        阅读全文
                
摘要:总线_设备_驱动注册流程详解 注册流程图 • 设备一般都需要先注册,才能注册驱动– 现在越来越多的热拔插设备,反过来了。先注册驱动,设备来了再注册 设备 • 本节使用的命令– 查看总线的命令#ls /sys/bus/– 查看设备号的命令#cat /proc/devices• 设备都有主设备号和次设备
        阅读全文
                
摘要:一、Menuconfig的操作 • Linux编译器通过.config文件确认哪些代码编译进内核,哪些被裁减掉• menuconfig是生成.config的一个工具• 在Linux发展过程中,配置内核可以使用一下命令:– #make config(基于文本的最为传统的配置界面,不推荐使用)– #ma
        阅读全文
                
摘要:最简Linux驱动 必备的头文件 • Linux头文件位置– 类似#include <linux/module.h>的头文件,它们是在Linux源码目录下的include/linux/module.h• #include <linux/module.h>头文件– 所有的Linux 代码必须遵循GPL
        阅读全文
                
摘要:一、QQ聊天记录总结 对于所有的驱动设备Linux看来都是文件,这些文件都有固定的接口,read、write、open、ioctl、close等,包含在struct fileoptions中。 通过设备文件的主设备号和次设备号,让应用程序调用。驱动写的是主设备号的功能,置于类似功能的设备用次设备号区
        阅读全文
                
摘要:无名管道 • 从最早的UNIX 系统开始,无名管道的通信方式就存在,有点类似硬件中的串口,从最初的设计者定型之后,这种通信模型就一直延续到今天,说明无名管道当初的设计就极具科学性• 无名管道有一定的局限性– 它是属于半双工的通信方式– 只有具有“亲缘关系”的的进程才能使用这种通信方式,也就是父进程和
        阅读全文
                
摘要:进程基本概念 • 进程是linux系统编程中非常重要的概念• 嵌入式linux 和嵌入式单片机最重要区别– 嵌入式非常容易实现多任务• 几个基本概念– 程序– 应用– 进程• top命令– x86-Ubuntu以及开发板上执行top命令 进程ID • 每一个进程都有一个唯一的标识符,进程ID 简称p
        阅读全文
                
摘要:链接以及基础知识 • 硬链接和软链接基本概念– 硬链接类似于拷贝,但与源文件同步更新,权限、大小、时间值均与源文件一样,inode也与源文件相同• inode和block– inode存文件属性– block存文件数据• 使用ln命令可以创建链接 硬链接link • 硬链接命令为ln,函数为link
        阅读全文
                
摘要:获取当前目录 • linux命令中可以使用pwd查看当前目录,系统编程中可以通过getcwd获取当前目录• man 3 getcwd• char *getcwd(char *buf, size_t size);– 参数*buf:保存当前目录的缓冲区– 参数size:在现代linux 中,buf 的长
        阅读全文
                
摘要:chmod权限 使用命令"man 2 chmod"学习chmod函数• int chmod(const char *path, mode_t mode);– 参数*path:文件路径。– 参数mode:直接使用数字即可。和前面命令中chmod 777 xxx 中的777 这个参数含义类似,也可以使用
        阅读全文
                
 
                    
                
 浙公网安备 33010602011771号
浙公网安备 33010602011771号