文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十八)驱动设计的思想:面向对象/分层/分离

1.1 面向对象字符设备驱动程序抽象出一个file_operations结构体; 我们写的程序针对硬件部分抽象出led_operations结构体。1.2 分层上下分层,比如我们前面写的LED驱动程序就分为2层:① 上层实现硬件无关的操作,比如注册字符设备驱动:leddrv.c②下层实现硬件相关的操作,比如board_A.c实现单板A的LED操作1.3 分离还能不能改进?分离。 在board_A....

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十八)驱动设计的思想:面向对象/分层/分离
文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十七)具体单板的LED驱动程序

以下板子选用的内核都是4.x版本,操作都是类似的:rk3399 linux 4.4.154 rk3288 linux 4.4.154 imx6ul linux 4.9.88 am3358 linux 4.9.1681.1 怎么写LED驱动程序?详细步骤如下:① 看原理图确定引脚,确定引脚输出什么电平才能点亮/熄灭LED②看主芯片手册,确定寄存器操作方法:哪些寄存器?哪些位?地址是?...

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十七)具体单板的LED驱动程序
文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十五)最简单的LED驱动程序

1.写LED驱动程序1.1第一步 先看原理图1.2第二步 再看芯片手册:使能GPIO1.3 第三步 设置引脚是GPIO功能1.4 第四步 设置引脚是输出1.5 第五步 设置输出电平2.最简单的LED驱动程序后面的LED驱动程序为了容易扩展,引入了很多数据结构。对C语言的要求有点高,所以我们基于Hello驱动程序先写出最简单的LED驱动程序。2A.1 LED操作方法_基于IMX6ULL视频中的文档....

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十五)最简单的LED驱动程序
文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十九)I2C应用编程(上)

1.I2C应用编程1.1 I2C视频介绍参考资料:请点击1.1.1 I2C硬件框架在一个芯片(SoC)内部,有一个或多个I2C控制器在一个I2C控制器上,可以连接一个或多个I2C设备I2C总线只需要2条线:时钟线SCL、数据线SDA在I2C总线的SCL、SDA线上,都有上拉电阻1.1.2 I2C软件框架以I2C接口的存储设备AT24C02为例:APP: 提出要求:把字符串"www.100ask....

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十九)I2C应用编程(上)
文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十七)多线程编程(下)

1.2 线程的控制1.2.1 多线程编临界资源访问当线程在运行过程中,去操作公共资源,如全局变量的时候,可能会发生彼此“矛盾”现象。例如线程1企图想让变量自增,而线程2企图想要变量自减,两个线程存在互相竞争的关系导致变量永远处于一个“平衡状态”,两个线程互相竞争,线程1得到执行权后将变量自加,当线程2得到执行权后将变量自减,变量似乎永远在某个范围内浮动,无法到达期望数值,如例程9所示。使用GIT....

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十七)多线程编程(下)
文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十七)多线程编程(上)

1.多线程编程本章将分为两大部分进行讲解,第一部分将引出线程的使用场景及基本概念,通过示例代码来说明一个线程创建到退出到回收的基本流程。第二部分则会通过示例代码来说明如果控制好线程,从临界资源访问与线程的执行顺序控制上引出互斥锁、信号量的概念与使用方法。1.1 线程的使用1.1.1 为什么要使用多线程在编写代码时,是否会遇到以下的场景会感觉到难以下手?要做2件事,一件需要阻塞等待,另一件需要实时....

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十七)多线程编程(上)
文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程(中)

1.3.4 查询方式APP调用open函数时,传入“O_NONBLOCK”表示“非阻塞”。APP调用read函数读取数据时,如果驱动程序中有数据,那么APP的read函数会返回数据,否则也会立刻返回错误。1.3.5 休眠-唤醒方式APP调用open函数时,不要传入“O_NONBLOCK”。APP调用read函数读取数据时,如果驱动程序中有数据,那么APP的read函数会返回数据;否则APP就会在....

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十五)输入系统应用编程(中)
文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十四)文字显示(上)

一.文字显示1.1 字符的编码方式1.1.1 编码和字体在计算机上,我们看到的字符“A”可能长这样:也可能长这样:对于同一个TXT文件中的内容,你在Notepad上选择不同字体时,字符显示的形状不一样。所以TXT文件中保存的是字符的核心:它的编码值。而Notepad上显示时,这些字符对应什么样的形状态,这是由字符文件决定的。编码值,字体是两个不一样的东西,比如A的编码值是0x41,但是在屏幕上显....

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十四)文字显示(上)
文章 2022-12-12 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(八)IMX6ULL开发板编译第一个程序以及驱动(下)

2.开发板的第1个APP实验2.1获取程序请按上一章节使用GIT下载源码、使用repo下载工具链,并配置了交叉编译工具链。从Git仓库驱动源码相关文件,在Ubuntu终端上执行如下命令。git clone https://e.coding.net/weidongshan/01_all_series_quickstart.git代码获取示意图如下所示。使用GIT下载所有源码后,本节源码位于如下...

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(八)IMX6ULL开发板编译第一个程序以及驱动(下)
文章 2022-12-12 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(下)

摘录如下:假设某主机上的网络接口配置和路由表如下:$ ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:C2:8D:7E inet addr:192.168.10.223 Bcast:192.168.10.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICA...

嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(下)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注