- 3.5 独立数码管(静态数码管) 3.5.1 数码管原理图 连线: JP10(P0)连接JP3,控制开发板最右边的一个独立大尺寸数码管。 图3-5-1 图3-5-2 开发板上这个独立的数码管刚好接在单片机的P0引脚上。 对应关系: P0.0 -&g... 3.5 独立数码管(静态数码管) 3.5.1 数码管原理图 连线: JP10(P0)连接JP3,控制开发板最右边的一个独立大尺寸数码管。 图3-5-1 图3-5-2 开发板上这个独立的数码管刚好接在单片机的P0引脚上。 对应关系: P0.0 -&g...
- Shell是什么? Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Ken Thompson 的 sh 是第一种 Unix Shell,Windows... Shell是什么? Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Ken Thompson 的 sh 是第一种 Unix Shell,Windows...
- 1.GPIO相关宏定义 #define GPIO_OUT_DEF_VAL 1 宏定义说明: 0:默认输出低电平 1:默认输出高电平 2.audio相关宏定义 #define USER_AUDIO_VOL_LEVEL 5 宏定义说明: 用户音量级别分为0-100级 #de... 1.GPIO相关宏定义 #define GPIO_OUT_DEF_VAL 1 宏定义说明: 0:默认输出低电平 1:默认输出高电平 2.audio相关宏定义 #define USER_AUDIO_VOL_LEVEL 5 宏定义说明: 用户音量级别分为0-100级 #de...
- 转自 http://www.jianshu.com/p/5d032ae53449/ 大家好,我是帅气小伙,今天为大家带来一个非常励志,让我反思的故事。今天为大家讲的是我父亲是如何用行动教会我成为程序员的。 岁月的锤炼 圆口接口的键盘,2003年的 有人问这个键盘难道没有擦过吗?不是的,是擦不... 转自 http://www.jianshu.com/p/5d032ae53449/ 大家好,我是帅气小伙,今天为大家带来一个非常励志,让我反思的故事。今天为大家讲的是我父亲是如何用行动教会我成为程序员的。 岁月的锤炼 圆口接口的键盘,2003年的 有人问这个键盘难道没有擦过吗?不是的,是擦不...
- 前面笔者已实现了用户程序控制led灯闪烁的驱动代码,但是由于代码不规范,显得乱七八糟的,因此需要规范化。如果比较大一点的工程没有规范的话,也不利于后期的跟新与维护。分析先前的程序不规范点有二: 定义的变量多而且散乱程序没有错误处理机制 C语言虽然是面向过程的语言,但是可以利用结构体来实现面向对象的思想。通过引入面向对象的思想,来解决第... 前面笔者已实现了用户程序控制led灯闪烁的驱动代码,但是由于代码不规范,显得乱七八糟的,因此需要规范化。如果比较大一点的工程没有规范的话,也不利于后期的跟新与维护。分析先前的程序不规范点有二: 定义的变量多而且散乱程序没有错误处理机制 C语言虽然是面向过程的语言,但是可以利用结构体来实现面向对象的思想。通过引入面向对象的思想,来解决第...
- 内容 bootloader概念与启动过程介绍U-Boot概念 U-Boot常用命令U-Boot环境变量U-Boot目录分析U-Boot编译,使用 Bootloader:在操作系统内核或用户应用程序运行之前运行的一小段代码。对软硬件进行相应的初始化和设定,为最终运行操作系统准备好环境。在嵌入式系统中,整个系统的启动... 内容 bootloader概念与启动过程介绍U-Boot概念 U-Boot常用命令U-Boot环境变量U-Boot目录分析U-Boot编译,使用 Bootloader:在操作系统内核或用户应用程序运行之前运行的一小段代码。对软硬件进行相应的初始化和设定,为最终运行操作系统准备好环境。在嵌入式系统中,整个系统的启动...
- 总结一句话来说,shell脚本编程 = 基本命令 + 变量 + 语句。看起来没有什么特殊的地方,那就试着分析下吧! 本章内容 shell与shell脚本区分shell变量的类型shell语句函数 一、什么是shell?它和shell脚本有什么区别? shell:英文单词shell可直译为“贝壳”。“贝壳”是动物作为外在保... 总结一句话来说,shell脚本编程 = 基本命令 + 变量 + 语句。看起来没有什么特殊的地方,那就试着分析下吧! 本章内容 shell与shell脚本区分shell变量的类型shell语句函数 一、什么是shell?它和shell脚本有什么区别? shell:英文单词shell可直译为“贝壳”。“贝壳”是动物作为外在保...
- 谈不上什么理解,姑且先记录一下吧。一是方便以后有不懂随时翻来看看,二是以后对Makefile理解深了再做补充吧! 一、Make简介 工程管理器,顾名思义,是指管理较多的文件 Make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳自动发现更新过的文件而减少编译的工... 谈不上什么理解,姑且先记录一下吧。一是方便以后有不懂随时翻来看看,二是以后对Makefile理解深了再做补充吧! 一、Make简介 工程管理器,顾名思义,是指管理较多的文件 Make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳自动发现更新过的文件而减少编译的工...
- ARM cortex-A系列的内核不支持中断嵌套。在内核中断函数中,如果中断处理时间过长,产生中断嵌套,重者系统崩溃,轻者也会影响其他事件处理。这也是中断中不能使用延时函数的原因。 但是有些高实时性设备(比如网卡),就是需要处理大量的业务。为了满足中断处理时间尽量短的原则,我们将一些简单的处理放在中断中实现,这个阶段叫做中断... ARM cortex-A系列的内核不支持中断嵌套。在内核中断函数中,如果中断处理时间过长,产生中断嵌套,重者系统崩溃,轻者也会影响其他事件处理。这也是中断中不能使用延时函数的原因。 但是有些高实时性设备(比如网卡),就是需要处理大量的业务。为了满足中断处理时间尽量短的原则,我们将一些简单的处理放在中断中实现,这个阶段叫做中断...
- 完成应用程序通过驱动控制硬件的实现。实验建立在之前的框架上,我们先实现用户层与内核层之间的数据交互,驱动程序拿到用户传来的指令后,就可以执行点灯的动作了。 应用程序与驱动数据交互 对于驱动程序而言,使用copy_to_user 和 copy_from_user函数与应用程序进行数据交互。当应用程序read时... 完成应用程序通过驱动控制硬件的实现。实验建立在之前的框架上,我们先实现用户层与内核层之间的数据交互,驱动程序拿到用户传来的指令后,就可以执行点灯的动作了。 应用程序与驱动数据交互 对于驱动程序而言,使用copy_to_user 和 copy_from_user函数与应用程序进行数据交互。当应用程序read时...
- Linux系统根据驱动程序实现的模型框架将设备驱动分成字符设备驱动、块设备驱动、网络设备驱动三大类。这里简单理解一下概念 字符设备:设备按字节流处理数据,通常用的串口设备、键盘设备都是这种。块设备:设备按块单位对数据处理,通常是存储设备。网络设备:顾名思义,建立在socket接口上的设备。 字符设备驱动框架 &nbs... Linux系统根据驱动程序实现的模型框架将设备驱动分成字符设备驱动、块设备驱动、网络设备驱动三大类。这里简单理解一下概念 字符设备:设备按字节流处理数据,通常用的串口设备、键盘设备都是这种。块设备:设备按块单位对数据处理,通常是存储设备。网络设备:顾名思义,建立在socket接口上的设备。 字符设备驱动框架 &nbs...
- 应用层的进程是通过内核层驱动来访问硬件的,Linux内核源码在每次编译之后生成一个总的镜像,将镜像加载内存中运行并使用(内核在系统运行时会占用内核空间)。驱动属于内核源码的一部分,如果每次修改驱动都要重新编译加载内核的话,这太麻烦了,所以我们通过模块,使驱动可以独立于内核镜像之外,并能动态的加载和卸载。 在搭建好开发环境之后,通过so... 应用层的进程是通过内核层驱动来访问硬件的,Linux内核源码在每次编译之后生成一个总的镜像,将镜像加载内存中运行并使用(内核在系统运行时会占用内核空间)。驱动属于内核源码的一部分,如果每次修改驱动都要重新编译加载内核的话,这太麻烦了,所以我们通过模块,使驱动可以独立于内核镜像之外,并能动态的加载和卸载。 在搭建好开发环境之后,通过so...
- 当中断发生时,驱动程序会跳转到中断处理的函数入口,实现了中断的捕获和处理,但这样还不够。要让用户能够获取到中断分析的结果,我们将创建一个描述中断事件的结构体对象。硬件产生中断后,驱动代码将对中断事件的分析结果保存在结构体变量中,用户需要的时候,直接通过接口函数获取这个结构体的数据。 内核层: 硬件(中断事件) --> ... 当中断发生时,驱动程序会跳转到中断处理的函数入口,实现了中断的捕获和处理,但这样还不够。要让用户能够获取到中断分析的结果,我们将创建一个描述中断事件的结构体对象。硬件产生中断后,驱动代码将对中断事件的分析结果保存在结构体变量中,用户需要的时候,直接通过接口函数获取这个结构体的数据。 内核层: 硬件(中断事件) --> ...
- 按照之前的实现驱动的方法。对于同一类设备,驱动层实现的操作方法是相似的,而设备信息总是不同的,一个产品上有很多这样的同类设备,我们为每一个设备都定制一套驱动程序,代价似乎太“高昂点”;对于一个设别,如果硬件有所改动,也必然要修改取代代码。 为了提高代码的通用性,我们将驱动和设备进行分离,设备对象专门用来描述设备(硬件)的信息。而驱动负... 按照之前的实现驱动的方法。对于同一类设备,驱动层实现的操作方法是相似的,而设备信息总是不同的,一个产品上有很多这样的同类设备,我们为每一个设备都定制一套驱动程序,代价似乎太“高昂点”;对于一个设别,如果硬件有所改动,也必然要修改取代代码。 为了提高代码的通用性,我们将驱动和设备进行分离,设备对象专门用来描述设备(硬件)的信息。而驱动负...
- 目前已经学习两种应用层IO模型的使用 非阻塞:立即返回结果,如果想得到期望的结果,要不停的调用这个方法(轮询),非常耗费资源 阻塞:没有得到真正的数据前,不返回结果。此时,进程进入阻塞(休眠)态,直到有数据唤醒进程,这个过程不耗资源。 PS:linux应用中,大部分的函数接口都是阻塞 驱动程序将进程进... 目前已经学习两种应用层IO模型的使用 非阻塞:立即返回结果,如果想得到期望的结果,要不停的调用这个方法(轮询),非常耗费资源 阻塞:没有得到真正的数据前,不返回结果。此时,进程进入阻塞(休眠)态,直到有数据唤醒进程,这个过程不耗资源。 PS:linux应用中,大部分的函数接口都是阻塞 驱动程序将进程进...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢
2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
苏州工业园区“华为云杯”2025人工智能应用创新大赛赛中直播
2025/08/21 周四 16:00-17:00
Vz 华为云AIoT技术布道师
本期直播将与您一起探讨如何基于华为云IoT平台全场景云服务,结合AI、鸿蒙、大数据等技术,打造有创新性,有竞争力的方案和产品。
即将直播
热门标签