1.屏幕信息屏幕名称:SY101WXB65屏幕参数:引脚描述:上电时序:2.board.dts uboot-board.dts适配board.dts 配置首先:通过屏幕数据手册以及板卡原理图信息,修改&lcd0节点内和&disp节点内信息lcd0内需要修改屏幕信息、接口、电源接口等管脚,结合屏幕数据手册上电时序图,需要配置power,复位、pinctrl三
##通过修改board.DTS,利用platform_device匹配其设备树下的节点实现操控对应的gpio1.首先在board.dts文件内的&soc结构体设置自己要控制的gpio相关信息gzj_led { compatible = "led_test"; gpio-pins = <&pio PG 10 GPIO_ACTIVE_LOW>; status =
1.IIC介绍IIC:飞利浦公司 通信方式:串行同步半双工IIC只有两根线 CLK时钟线 SDA数据线请求应答协议:IIC所支持的地址位数一般为7(偏多)或者10个地址 跟一位读写标志位起始信号:时钟线高电平,数据线为低电平结束信号:时钟线为高电平,数据线为高电平应答信号:(不一定必须有应答信号)在一次数据传输过程后,时钟线
LCD屏应用层 设备文件是 /dev/fb0(设备节点)可以通过api函数获取屏幕的相关参数----ioctl相关应用层开发求助与网络方法(framebuffer应用层开发)在应用层是不会直接操作LCD设备文件,是通过LCD屏幕的映射内存进行操作,进而操作LCD屏方法:采用映射方式,将屏幕映射到当前进程空间 利用mmap函数之后就可以在屏幕中进行写入操作。不仅仅可以映射设备
strcatstrcpystrcmp
注意:移动热点尽量选择安卓手机开的,多次测评apple手机热点不行1.USB WIFI 驱动瑞芯微内部已经做了很多 USB WIFI 驱动进入到内核(make menucnofig ARCH=arm) Device Drivers ---> [*] Network device support ---> [*] Wireless LAN --->
1.RKMedia介绍RV1126_RV1109_LINUX_SDK_V2.2.5.1_20231011/docs/RV1126_RV1109/Multimedia/Rockchip_Developer_Guide_Linux_RKMedia_CN.pdf 音视频开发的文档RKMedia 提供了一种媒体处理方案,可支持应用软件快速开发。RKMedia 在各模块基础 API 上做进一步封装,简化了应
1.设备树简介随着智能手机的发展,每年新出的 ARM 架构芯片少说都在数十、数百款,Linux 内核下板级信息文件将会成指数级增长!这些板级信息文件都是.c 或.h 文件,都会被硬编码进 Linux 内核中,导致 Linux 内核“虚胖”。就好比 你喜欢吃自助餐,然后花了 100 多到一家宣传看着很不错的自助餐厅,结果你想吃的牛排、海鲜、烤肉基本没多 少,全都是一些凉菜、炒面、西瓜、饮料等小吃,相
I2C介绍UART、SPI、IIC 嵌入式开发中经典的通信协议IIC :飞利浦公司 通信方式:串行同步半双工 IIC 只有两根线 包括:SCLK(时钟线)和 SDA(数据线)1)请求应答协议:请求信号:时钟线高电平,数据线是下降沿结束信号:时钟线高电平,数据线上升沿 应答信号:在一次数据传输过程中,在第 9 个时钟周期下,数据线低电平 数据传输:时钟线高电平采样,低电平时数据改变2)支持多主多从-
1.平台设备总线简介像 IIC 设备、SPI 设备、USB 设备等,如何和 CPU 通信? 通过挂载到对应的总线上和 CPU 通信,但是嵌入式设备并不是所有的设备都可以挂到这些总线上,内核为了统一,就把那些无法挂载到物理总线上的设备 统统挂载 到一根虚拟总线上platform—平台设备总线平台设备总线提供一套完整的接口和机制,方便管理内核中的设备平台设备总线分为 设备端 和 驱动端 将之前的驱动程
定时器功能:仅定时判断计数周期eg:T=1/f=1s/200ms=5ms定时:当前时间+未来时间段定时器核心结构体:unsigned long msecs_to_jiffies(const unsigned int m) //将毫秒值转为节拍数 void add_timer(struct timer_list *timer) //向内核添加定时器,仅生效一次 mod_timer(timer, ex
1.网络编程中的TCP--传输控制协议网络编程中,TCP(传输控制协议)是一种面向连接的基于字节流的传输层通信协议,它提供了可靠的数据传输。1.1TCP(传输控制协议)TCP是一种面向连接的协议,他的特性功能如下:①可靠性:TCP确保数据可靠的传输到目标,通过使用序号和确认应答机制来确认数据包的状态。如果数据包丢失或损坏,TCP会重传数据,以确保数据的安全和完整性。②有序传输:TCP保证数据包按照
1中断中断分为:软中断 共享中断 私有中断Linux 中断不需要设置优先级 int request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev) 形参:irq:中断号 可以通过 gpio_to_irq 获取 handler:中断服务函数 typedef
获取到DHT11的数据分为五个阶段①主机发送起始信号②DHT11的应答信号③DHT11发送数据0④DHT11发送数据1⑤解析数据1.主机发送起始信号主机通过拉低数据线至少t1(18~30ms),之后拉高数据线t2(20~40us),读取DHT11的响应。2.DHT11的应答信号正常情况下,DHT11会拉低数据线t3(40~50us)来作为应答信号。之后DHT11会拉高数据线t4(40~50us)后
Linu2.6 注册的多个设备号,主设备号相同,--- 同类设备,这些设备使用同一套接口函数,我们需要在底层接口中区分不同设备(一个模块注册出多个设备文件)区分设备,通过设备号底层函数接口中 open、release 函数形参中有 struct inode 结构体中有 i_rdev 成员(设备号)设备号 获取主设备号 #define MAJOR(dev) ((unsigned int) ((dev
设备号:32 位整数主设备号:高 12 位 次设备号: 低 20 位 Linux2.6 版本的注册,调用一次注册函数 向内核注册 n 个设备号 不会自动生成设备文件 初始化 linux2.6 核心结构体void cdev_init(struct cdev *cdev, const struct file_operations *fops)//申请设备号 int alloc_chrdev_regio
1.字符设备1.1设备分类Linux 下一切皆文件:Linux 系统将文件做分类 d – p l s c bLinu 设备分类有 3 种: 字符设备(文件类型 c) 块设备(文件类型 b) 网络设备(没有设备文件) 字符设备: 鼠标 键盘 屏幕 块设备:硬件 emmc Linux 内核中区分设备 使用设备号(无符号的 32 位整数) 主设备号: 高 12 位 //区分不同设备设备 次设备号: 低
1.当ubuntu此时与开发板网络连接了,想要切换到ubuntu能联网步骤如下应用之后点击确定即可点击网络图标更换网络源若是界面右上角没有网络秤砣类似的图标,输入以下三行代码必定可以显示出来sudo service network-manager stop sudo rm /var/lib/NetworkManager/NetworkManager.state sudo service netw
1.请写出 bool flag 与“零值”比较的 if 语句if(flag) if(!flag)2.请写出 float x 与“零值”比较的 if 语句const float ESPSINON = 0.00001; if ((x >= - EPSINON) && (x <= EPSINON))3.请写出 char *p 与“零值”比较的 if 语句if(p == NUL
上集讲述到了通过图形化界面的文件操作系统相关设计之后,接下来继续文件操作系统的制作。1.使用 rootfs.tar对 SD 卡进行分区 通过 uboot 完成 第一步:SD 卡放到板子中 第二步:进入 uboot 第三步:分区,在此只分了两个分区。fdisk -c 0 2057 0 0第四步:把第一个分区格式化为 FAT 文件系统fatformat mmc 0:1第五步:把第二个分区格式化为 EX
1.linux内核的功能嵌入式系统三大组成部分: bootloader、Linux 内核、根文件系统2.Linux 内核的功能进程管理:进程创建、销毁 进程间通信Linux 下每一个进程都有虚拟空间 ----- 4G 3G 用户空间 + 1G 内核空间 网络管理 设备管理: Linux 下一切皆文件 内存管理 文件系统3.内核目录arch 架构arm 分 3 类目录 (公共目录、mach 开头--
1.boot loader介绍操作系统几乎都不能自己搬运到内存中运行,需要一个”引导程序“。在不断发展中,开发平台越来越丰富,结构越来越多,像 i386、ARM、PowerPC...,引导程序千奇百怪,需要通 用引导程序: BootLoader BootLoader 是一种统称,uboot 是 boot loader 中的一种,uboot 是开源的,给到大家的 uboot 压缩包是包含友 善之臂
1.IIC介绍IIC全称为IIC协议,是一种串行通信协议,常用于连接各种传感器和外设设备。该协议使用双线I2C总线,包括串行数据线(SDA)和串行时钟线(SCL),通过在总线上发送和接收数据来实现设备之间的通信。IIC协议具有简单、灵活、可靠和低成本等特点,被广泛应用于各种电子产品中,如传感器、存储器、显示器等IIC架构示意图2.IIC工作大致流程①主机发送起始信号,从机读取起始信号表示开始接收数
事前准备:开发板: tiny4412 友善之臂 核心板: exynos4412 三星 内部:RAN 256K ROM 64K1.烧写程序到开发板1.将 ledC 语言文件夹复制到 Ubuntu(位置不限)2.Ubuntu 终端 跳转到 ledC 语言文件夹 cd ledC 语言3.make我这里已经编译
1.为什么需要进行交叉编译操作系统和体系结构不兼容。驱动需要运行在特定的操作系统和体系结构下,比如Linux内核驱动需要运行在ARM或x86体系结构的Linux系统上。而编译环境的操作系统和体系结构可能与运行环境不同,这时就需要进行交叉编译。系统环境限制。许多嵌入式系统没有完整的开发环境,开发人员无法直接在目标系统上进行编译。这时需要在有完整工具链的主机上进行交叉编译,生成可在目标系统上运行的驱动
1.开发板介绍开发板: tiny4412 友善之臂核心板: exynos4412 三星 内部:RAN 256K ROM 64K外扩1G DRAM 4G eMMC2.开发板启动方式3.烧写出厂系统4.系统启动流程分析系统启动需要引导程序第一步:sd卡中烧写Superboot4412
作用在系统调用和中断发生时插入用户自定义的处理代码。在任务状态转换和切换时插入用户自定义代码来监视和记录任务状态。在任务创建和删除时插入初始化和清理代码。在中断服务例程中添加额外的处理逻辑。在时间片轮转时插入用户自定义的轮转策略代码。用于进程间通信的异步通知和同步机制定制。常见的任务领域的钩子函数包括task_create_hook():任务创建时调用task_ready_hook():任务准备就
1.任务间通信消息队列可以实现不同任务之间通过交换消息进行通信协作,取代直接的函数调用。2.异步事件通知一个任务可以通过发送消息来异步地向其他任务通知某个事件的发生,接收方任务可以选择立即或稍后处理该事件。3.数据传递任务可以利用消息队列在不同任务之间传递结构化的数据,实现任务间的解耦。4.应用程序定制消息队列中消息的格式和内容完全由应用程序定义,很灵活。5.流量控制消息队列可以缓冲消息,实现产生
区别二值信号量只能取0或1两个值,用于任务间的二进制同步。互斥信号量可以取大于1的任意正整数值,用于控制共享资源的互斥访问。优先级反转产生的原理高优先级任务请求低优先级任务持有的资源,此时低优先级任务被提升为高优先级,操作系统调度高优先级任务运行。高优先级任务运行过程中被中断,系统选择调度提升优先级的低优先级任务,此时低优先级任务的优先级高于原先运行的高优先级任务。低优先级任务执行完后,释放资源并
基于FreeRTOS的实时操作系统的意义和使用实时操作系统的主要原因如下:1.实时响应能力实时操作系统能够在严格的时间限制内完成计算任务或者中断服务子程序,满足实时应用的实时响应要求。2.任务调度管理实时操作系统能够优先办理优先级高的任务,有效地管理和调度不同优先级的任务。3.任务同步机制实时操作系统提供事件标志组、信号量、队列等同步机制,协调不同任务之间的执行顺序。4.资源访问控制实时操作系统采
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号