嵌入式开发

2024/4/11 20:04:43

做嵌入式开发经历(一).背景和第一次

这几篇可能有些吐槽,也许还有点思考吧 1. 交代一下背景 17年底进入现在的公司,刚开始做的项目我姑且认为是试用期的考验吧,因为是老板受朋友委托做他们业务相关的一个智能门闸软件开发,而这个朋友的公司就在我们公司斜对角。 现…

s3c2440 --跑马灯 C+汇编代码

/*led_asm_c.c*/ #define rGPFCON (*(volatile unsigned *)0x56000050) //Port F control #define rGPFDAT (*(volatile unsigned *)0x56000054) //Port F data #define rGPFUP (*(volatile unsigned *)0x56000058) //Pull-up control F //GPFCON 8口的 extern int …

RCC_AHBPeriph_DMA DMA_Channel1 在那里定义的?

下面的在:stm32f10x_rcc.h中 #define RCC_AHBPeriph_DMA1 ((uint32_t)0x00000001) #define RCC_AHBPeriph_DMA2 ((uint32_t)0x00000002) 下面的在:stm32f10x.h中 #define DMA1_BASE (AHBPERIPH_BASE 0x0000) …

Infineon+EB构建MCAL驱动包Demo实现片内外设使用

本篇文章以实际MCAL示例程序的实现与使用,帮助读者理解MCAL层在BSW中具体担任的功能与角色。文章首先介绍了为了构建MCAL示例程序所需要的相关应用程序的安装;然后介绍了个软件相互集成配置的过程,达到可以编译生成可执行文件;最后…

08.音频系统:第003课_Linux音频驱动程序:第001节_alsa音频驱动框架

在上小节我们分析了Adndroid系统音频的框架,这么一个复杂的系统我们怎么去学习呢?我们从下往上学,先分析音频的驱动程序,看看linux系统中驱动程序是怎么编写的,他的结构是怎么样的,然后在琢磨Tinyalsa&…

嵌入式的应用领域有哪些呢?

说到嵌入式,相信很多人不会陌生,自2016年开始,教育部高等教育司倡导“新工科”,加快校企合作,推进企业一线技术与学校人才资源相结合。嵌入式、物联网、智能制造等一系统新颖的名词走进了学校,走进了课堂&a…

内存拷贝函数的编写整理(很流行的面试题)

很多公司都喜欢出关于内存拷贝的这么一道题,下面是本人整理的关于内存拷贝函数编写的过程,仅供参考。 以下是我在一次模拟笔试中写的程序:void MyMemcpy(char *dst,char *src,int count){while(count--){*dst *src;}}很显然,这样…

WSL构建nRF5 SDK + ARM GCC开发环境

陈拓 2022/07/19-2022/07/22 1. 概述 nRF5 SDK开发环境有下面4种: Keil Vision IDEIAR Embedded WorkbenchSES SEGGER Embedded StudioGCC ARM Embedded 我选择GCC ARM Embedded,它是开源跨平台交叉工具链,可以选择Windows、Linux或者macO…

ESP8266接温度传感器18B20时序校准

陈拓 chentuoms.xab.ac.cn 2020/06/22-2020/06/25 1. 概述 在《ESP8266_SDK发送温度数据到阿里云》 https://blog.csdn.net/chentuo2000/article/details/105592791 https://zhuanlan.zhihu.com/p/132582024 一文中我们将温度传感器DS18B20的温度数据传送到了阿里云物联网平…

什么是内存碎片?

在嵌入式系统中,内存是十分有限而且是十分珍贵的,用一块内存就少了一块内存,而在分配中随着内存不断被分配和释放,整个系统内存区域会产生越来越多的碎片。 因为在使用过程中,申请了一些内存,其中一些释放…

08.音频系统:第003课_Linux音频驱动程序:第004节_声卡控制之kcontrol

一个芯片之中有多个寄存器,一个寄存器里,某些位用来表示某个功能。如下,那我们要分析的kcontrol是表示一个功能,还是表示一个寄存器呢?当然使用kcontrol表示一个功能比较好,如下: 在打开某个功…

DCMI 接口DMA 传送数据问题

最近在学习 DCMI接口 通过DMA将DCMI接口中的数据传送到内存中的一个数组中,DCMI 和 DMA都有自己的中断入口,DCMI有行同步中断 和帧同步中断,这两个中断都可以自动进入,但DMA2的传送完毕中断就是进不去,我知道DCMI中有个…

08.音频系统:第006课_音频系统HAL分析:第002节_AudioFlinger层调节音量流程

该小节我们讲解一下在AudioFlinger这一层的对音量调节的代码流程,分为以下四个部分进行讲解: a. AudioFlinger对master volume, stream volume的初始化与设置 b. PlaybackThread对master volume, stream volume的初始化与设置 c. AudioTrack volume的设置…

做嵌入式开发经历(四).路漫漫其修远

老司机的实习 经手几个老项目之后,慢慢地熟悉起工作流程,渐渐在熟悉的领域得心应手 老项目的维护过程总是很漫长,而新的需求接踵而至,老项目的许多问题也开始堆积、被隐藏。 比如,有将近一年时间都使用了接手的前辈项…

解密Linux内核神器:内存屏障的秘密功效与应用方法

一、内存屏障简介 现在大多数现代计算机为了提高性能而采取乱序执行,这可能会导致程序运行不符合我们预期,内存屏障就是一类同步屏障指令,是CPU或者编译器在对内存随机访问的操作中的一个同步点,只有在此点之前的所有读写操作都执…

做嵌入式开发经历(二).上道得忐忑

上道有点艰难 18年过完年回来,上一个项目已经交付等待下一步进展了。真正要开始接触当前公司已有项目 有了一开始项目的一些经历,看起已有项目还是很吃力 ——以往写代码都是一个人完成需求开发,中间没有别人参与,而实际上对于自…

做嵌入式开发经历(三).绝知此事要躬行

新手司机要上路 掌握一些基本的工作方法后开始尝试多多运用起来,总是有更多需要磨练的 自己的开发工作固然重要,加入团队协作更重要;项目中需要协商问题时不知道怎么提出正确的问题和建议让人很头疼,有些话在现在看来真是不经过脑…

05.Binder系统:第6课第2节_Binder系统_驱动情景分析_打印数据交互过

在前面面的小节中,使用了C语音编写了几个应用程序,使用binder实现了进程之间的通信,我们通过 binder_call最终调用 ioctl(bs->fd, BINDER_WRITE_READ, &bwr)实现进程之间的通信,其中的bwr参数为结构体: struct…

Linux内核-标准IO和系统IO的区别

概念 标准IO:指的是C语言实现的文件操作的函数 系统IO(文件IO):指的是linux或windows或unix,实现文件操作的函数。 为什么要有两种IO C语言要实现跨平台,所以C语言在不同操作系统中实现文件操作方式是不一…

【物联网无线通信技术】WiFi从理论到实践(ESP8266)

文章从理论基础到具体实现完整的介绍了最常见的物联网无线通信技术:WiFi。 文章首先介绍了WiFi这种无线通信技术的一些基本概念,并针对其使用的802.11协议的基本概念与其定义的无线通信连接建立过程进行了简单的介绍,然后对WiFi开发常常涉及的…

AMD 自适应和嵌入式产品技术日

概要 时间:2023年11月28日 地点:北京朝阳新云南皇冠假日酒店 主题内容:AMD自适应和嵌入式产品的更新,跨越 云、边、端的AI解决方案,赋能智能制造的机器视觉与机器人等热门话题。 注:本文重点关注FPGA&a…

【MCAL】TC397+EB-tresos之GPT配置实战 - 定时器

本篇文章介绍了在TC397平台使用EB-tresos对GPT驱动模块进行配置的实战过程,不仅介绍了使用GTM来实现定时器的方案,还介绍了基于GPT12来实现连续定时器的实例。因为GTM是德国博世公司开发的IP,而英飞凌的芯片集成了这个IP,并在这个基础上搭建了…

开源Linux社区Armbian开发指南

1. 什么是armbian Armbian是一个基于Debian或Ubuntu的开源操作系统,专门针对嵌入式ARM平台进行优化和定制。Armbian可以运行在多种不同的嵌入式设备上,例如树莓派、ArmSoM、香蕉派等等。Armbian针对不同的嵌入式平台,提供了相应的硬件支持&a…

嵌入式Linux:提升VMware虚拟机运行速度的方法

使用虚拟机运行Linux操作系统通常会比在物理机上直接安装系统的运行效率更低,本篇博文将介绍如何优化虚拟机的设置,进而提升虚拟机性能体验。 第1步:选择VMware菜单:编辑–>首选项–>更新,将”启动时检查产品更新…

Linux操作系统ARM体系结构处理器机制原理与实现

ARM 的概念ARM(Advanced RISC Machine),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM 公司并不生产芯片也不销售芯片,它只出售芯片技术授权。其合作公司针对不同需求搭配各类硬…

Linux内核六大进程通信机制原理

初学操作系统的时候,我就一直懵逼,为啥进程同步与互斥机制里有信号量机制,进程通信里又有信号量机制,然后你再看网络上的各种面试题汇总或者博客,你会发现很多都是千篇一律的进程通信机制有哪些?进程同步与…

Linux内核进程管理进程优先级

前言:进程优先级实际上是系统对进程重要性的一个客观评价。根据这个评价的结果来为进程分配不同的系统资源,这个资源包括内存资源和CPU资源。为了保证“公平公正”的评价每个进程,Google工程师为此设计了一套评价系统。为什么要有进程优先级&…

Linux内核进程管理实时调度与SMP

一,实时调度器类实时调度类有两类进程:循环进程SCHED_RR:循环进程有时间片,随着进程的运行时间会减少。当时间片用完时又将其置为初值,并将进程置于队列末尾。先进先出SCHED_FIFO:没有时间片调度&#xff0…

【汽车电子】CAN总线分析仪使用介绍(PCAN/同星CAN卡)

本篇文章以CAN卡的使用为基本线索,介绍了在汽车电子领域涉及的一些CAN卡使用流程,搭配强大的上位机可以实现诸多功能。文章并没有局限于一种CAN卡,而是针对PCAN和同星的CAN卡分别以常用CAN报文收发以及诊断控制台实现这两种方向进行了CAN卡使…

S3C2440移植uboot之新建单板_时钟_SDRAM_串口

上一节S3C2440移植uboot之启动过程概述我们我们分析了uboot启动流程,这节将开始新建一块单板支持S3C2440。 文章目录1.新建单板1.1 将2410的单板文件夹拷贝成2440:1.2 将2410的头文件拷贝成24402.修改boards.cfg,使uboot支持2440单板:3.修改uboot系统时钟4.烧写修改…

【MCAL】TC397+EB-tresos之MCU配置实战 - 芯片时钟

本篇文章介绍了在TC397平台使用EB-treso对MCU驱动模块进行配置的实战过程,主要介绍了后续基本每个外设模块都要涉及的芯片时钟部分,帮助读者了解TC397芯片的时钟树结构,在后续计算配置不同外设模块诸如通信速率,定时器周期等&…

ADM106x Configuration Tool使用说明

1、简介 ADM106x Configuration Tool是ADM公司针对ADM106x等电源监控芯片进行参数配置及修改的辅助芯片使用工具,借助此工具可以快速实现对ADM106x芯片参数的配置,从而加入代码开发效率。 2、简单操作及工具介绍 2.1 选择离线操作 2.2选择ADM 106x的芯…

嵌入式开发:从终端到云保护嵌入式和物联网设备

在物联网(IoT)、工业物联网(IIoT)和物联网人工智能(AIoT)的今天,一切都与其他一切相连,无论是直接相连还是通过云相连,在嵌入式开发中,“嵌入式系统”一词在很大程度上与“物联网设备”同义,任何事物均不能被认为是安全…

STM32开发_我的经验大招

大道至简, 你自己理解吧~哈 不论新技能学习,还是工作过程, 已习惯桌面铺开一张A4纸, 过程导图, 重点, 理解, 各种写写划划整理, 会比空着快很多!! -

汽车CAN网络控制系统的设计和验证

汽车电子系统分配 基本车辆系统体系结构 综合车辆系统体系结构 汽车嵌入式控制主要协议 CAN 通信–适应性与事件 车身低速CAN子系统推荐方案 CAN系统开发流程 分支节点模块定义和硬件设计

嵌入式系统开发-麦子学院(14)- uboot详解(1)

1. 三星芯片uboot版本演变 start.S是uboot程序的入口 反编译uboot arm-linux-objdump -S u-boot未完待续。。。。

嵌入式 linux 系统开发网络的设置

目录 一、前言 二、linux网络静态地址设置 前言 为什么要对linux系统下的ubuntu进行网络设置呢? 因为我们在嵌入式开发中,我们要保证windows系统、linux系统、开发板的ip要处于同一个网段,而默认ubuntu下的linux系统的ip是动态分配的&#…

网络编程——套接字和字节序

目录 一、BSD套接字接口1.1 套接字类型1.2 套接字的位置 二、字节序2.1 大小端2.2 大小端判断2.3 主机字节序和网络字节序2.4 字节序转换函数 一、BSD套接字接口 BSD套接字接口是BSD的进程间通信的方式,它不仅支持各种形式的网络应用而且它还是一种进程间通信的机制…

08.音频系统:第008课_项目实战2_多APP同时录音:第001节_使用c++编写录音程序

在android5.0,6.0,7.0,8.0中,都没有实现多个APP同时录音的功能,假设有一个应用程序在录音,其他的APP则不能再录音。我们先写一个C的录音程序。然后在讲解录音的框架,以及代码流程。 使用C编写一个程序,他可以获得原始的…

STM32F407IGT6开发板

[ 芯片 ]1. STM32F407IGT6 内  核:Cortex-M4 32-bit RISC; 特  性:单周期DSP指令; 工作频率:168MHz,210 DMIPS/1.25 DMIPS/MHz; 工作电压:1.8V-3.6V&#xff1b…

Linux编程——进程间通信(信号灯集、消息队列)

目录 一、信号灯集1.1 概念1.2 信号灯集创建步骤⭐⭐⭐1.3 信号灯集对应函数 二、消息队列 一、信号灯集 1.1 概念 信号灯(semaphore),也叫信号量。它是不同进程间或一个给定进程内部不同线程间同步的机制;System V的信号灯是一个或者多个信号灯的一个…

【雪天鱼】(2) PYNQ_Z2从Vivado到SDK开发流程

文章目录一、Vivado中手动添加Pynq-Z2板卡文件二、Block Design2.1 新建工程2.2 Block design三、SDK开发3.1 Create Platform Project3.2 Create application project四、下载验证Date: 2023/3/23 Author: 雪天鱼 一、Vivado中手动添加Pynq-Z2板卡文件 在xilinx官网下载pynq…

NXP公司K60N512+PWM控制BLDC电机

本篇文章介绍了使用NXP公司提供的塔式快速原型系统来驱动控制带霍尔传感器的无刷直流电机。文章涉及的塔式快速原型系统主要包括以下四个独立板卡:1.塔式系统支撑模块(TWR-Elevator),用以连接微控制器以及周边模块;2.低…

【单片机】STM32单片机频率计程序,外部脉冲计数程序,基于脉冲计数的频率计程序,STM32F103

文章目录 定时器外部脉冲计数功能程序实现TIM1 定时一秒钟中断TIM2 外部脉冲计数配置TIM3 PWM产生总程序 定时器外部脉冲计数功能 两种方法用于在单片机中实现频率计的功能。 第一种方法是通过定时器来衡量信号的周期,然后将周期转换为频率。在这种方法中&#xf…

详解UDS CAN诊断:什么是UDS(ISO 14229)诊断?

目录 1、UDS诊断概念 2、UDS诊断组成部分 3、UDS诊断服务 之前讲解到CAN物理层和数据链路层的相关知识,这些属于ISO 11898-1、ISO 11898-2和ISO 11898-3协议方面的知识,本篇博文开启新篇章,讲解依托于CAN通信的应用层服务:UDS&…

嵌入式系统开发-麦子学院(4)——Linux C初级编程2

上篇文章讲到了Linux C初级编程的C语言基础部分:https://blog.csdn.net/QiHsMing/article/details/84947781 下面接着Linux C初级编程的Linux基础部分。 linux 操作系统基础 linux系统的发展 1991年,linus编写8000行代码,完成linux系统0.…

sudo出现 unable to resolve host xxxx的解决方法

不知从什么时候开始,使用sudo就会出现 unable to resolve host xxxx(XXXX是主机名) 这个虽然对sudo的功能没有影响,但是每次sudo都看到,就觉得很不爽,然后就找了些资料,把这个干掉了&#xff0…

【STC单片机学习】第十七课:LCD1602显示器

【朱老师课程总结 侵删】 第一部分、章节目录 1.17.1_2.LCD显示器相关背景1_2 1.17.3.开始学习LCD1602 1.17.4.LCD1602控制器的低层时序1 1.17.5.LCD1602控制器的低层时序2 1.17.6.代码实践 第二部分、随堂记录 1.17.1_2.LCD显示器相关背景1_2 1.17.1.1、LCD简介 (1)显示器 …

用psftp在电脑和树莓派之间互传文件

陈拓 chentuoms.xab.ac.cn 2020/06/14-2020/04/14 在《树莓派安装ESP8266_SDK开发环境》https://zhuanlan.zhihu.com/p/122246166https://blog.csdn.net/chentuo2000/article/details/105296166 一文中我们在树莓派上安装好了ESP8266 SDK开发环境,在以后的开发工作…

1.1.1开发基础-硬件-万用表

示波器 示波器作用 示波器规格 示波器使用步骤 示波器注意事项 1 万用表参数 万用表又叫多用表、三用表、复用表,是一种多功能、多量程的测量仪表,一般万用表可测量直流电流、直流电压、交流电压、电阻和音频电平等,有的还可以测交流电…

05.Binder系统:第8课第2节_Binder系统_JAVA实现_hello服务_编程

该小节我们将使用java实现一个hello服务,曾经我们讲解硬件访问服务的时候,实现一个LED服务,那个时候我们只知道照葫芦画瓢,并不知道其中的原理,该小节我们写出hello服务之后,相信你对他的原理就比较了解了。…

【嵌入式开发工具】TI+IAR建立工程与在线调试

IAR于1983 年在瑞典乌普萨拉由工程师Anders Rundgren创立,“IAR”是 Ingenjrsfirman Anders Rundgren 的缩写,意思是Anders Rundgren工程公司。笔者接触到这个开发工具主要是因为其对早期Ti的芯片支持很好,开发起来比较方便。不过现在TI公司官…

Linux操作系统汇编指令入门级整理知识点

前言我们大都是被高级语言惯坏了的一代,源源不断的新特性正在逐步添加到各类高级语言之中,汇编作为最接近机器指令的低级语言,已经很少被直接拿来写程序了,不过我还真的遇到了一个,那是之前的一个同事,因为…

掌握GDB调试工具,轻松排除bug!

一、什么是GDB gdb是GNU debugger的缩写,是编程调试工具。 GDB官网: https://www.gnu.org/software/gdb/GDB适用的编程语言: Ada / C / C / objective-c / Pascal 等。GDB的工作方式: 本地调试和远程调试。 目前release的最新版…

【MCAL】TC397+EB-treso之MCU配置实战 - 芯片时钟

本篇文章介绍了在TC397平台使用EB-treso对MCU驱动模块进行配置的实战过程,主要介绍了后续基本每个外设模块都要涉及的芯片时钟部分,帮助读者了解TC397芯片的时钟树结构,在后续计算配置不同外设模块诸如通信速率,定时器周期等&…

Linux内核进程的管理与调度

一,前戏1.1 进程调度内存中保存了对每个进程的唯一描述, 并通过若干结构与其他进程连接起来.调度器面对的情形就是这样, 其任务是在程序之间共享CPU时间, 创造并行执行的错觉, 该任务分为两个不同的部分, 其中一个涉及调度策略, 另外一个涉及上下文切换.1.2 进程的分…

真香!Linux 原来是这么管理内存的

Linux 内存管理模型非常直接明了,因为 Linux 的这种机制使其具有可移植性并且能够在内存管理单元相差不大的机器下实现 Linux,下面我们就来认识一下 Linux 内存管理是如何实现的。 一,基本概念 每个 Linux 进程都会有地址空间,这…

MIPI D-PHYv2.5笔记(1) -- DPHY概览

D-PHY是一个源同步的、高速、低功耗和低成本的PHY,特别适合移动应用领域。D-PHY主要是用作摄像头和显示屏和主处理器的数据通信,但也能用于多种其他类型应用场景。 D-PHY功能概要 D-PHY提供了Master和Slave之间的同步连接功能。实际场景中的PHY配置&…

【硬件】嵌入式电子设计基础之数字电路

数字电路与模拟电路的设计思想和应用方法有许多不同之处。 计算器是一个典型的由数字电路实现的电子设备,用户通过数字或符号摁键输入运算式,计算器经过运算之后把结果显示在屏幕上。现代数学电子学始于1946年,其标志是一台以电子管为核心器件…

Linux操作系统内存管理之磁盘高速缓存机制

前言:相信通过前面的虚拟文件系统VFS及一个具体的Ext2文件系统博文,大家对基本的VFS体系有一个大致的掌握了吧。从本章开始,我们将讨论一些VFS底层的技术细节,磁盘高速缓存就是其中一个重要的技术。磁盘高速缓存是一种软件机制&am…

Linux内核进程管理原理详解

前言:Linux内核里大部分都是C语言。建议先看《Linux内核设计与实现(Linux Kernel Development)》,Robert Love,也就是LKD。Linux是一种动态系统,能够适应不断变化的计算需求。Linux计算需求的表现是以进程的通用抽象为中心的。进程可以是短期…

07.显示系统:第005课_Vsync机制:第002节_Vsync框架

在上一节中,讲解了黄油计划,在android系统中,通过黄油计划的三个方法改进显示性能,增强人机交互的流畅程度,其中最重要的就是引入了Vsync机制,所有的部件都在Vsync到来的时候开始工作。下面开始讲解Vsync的…

虹科分享 | 平衡速度和优先级:为多样化的实时需求打造嵌入式网络(2)——实时通信系统的需求

现代实时应用的复杂性和需求不断增加,需要强大而可靠的通信系统。正如本系列第一部分所述,这些应用涵盖从秒到毫秒的广泛响应时间要求,它们的成功通常取决于其响应的精确时间。因此,所选的通信系统必须能够满足这些严格的时序限制…

rust嵌入式之用类函数宏简写状态机定义

笔者一向认为,用有限状态自动机来做硬件控制是最好的选择,同时又倾向于用文本定义来定义状态机是更好的做法。所以此次用rust开发嵌入式自然也是如此。 状态机实现起来很简单,关键是用文本来定义状态机,在rust中,自然…

08.音频系统:第004课_Android音频系统详解:第004节_AudioPolicyService启动过程分析

经过前面小节的学习我们知道android音频系统中有两个服务:AudioFlinger与AudioPolicyService。该小节我们讲解AudioPolicyService,他会做哪些事情呢? 比如应用程序要播放声音,那么这个声音从哪个设备播放出来,其就是通…

08.音频系统:第004课_Android音频系统详解:第005节_AudioFlinger启动过程分析

该小节讲解AudioFlinger启动的过程,作为一个硬件访问服务,其启动过程十分的简单,只需要向系统注册服务就可以了,然后被动的等待其他的客户端来访问。 在上一小节讲解了AudioPolicyService的启动过程,其除了注册本身的服…

08.音频系统:第004课_Android音频系统详解:第011节_PlaybackThread处理流程

上小节我们讲解了音频数据的传输,应用程序会创建一个AudioTrack,然后会到时其与playbackThread之间创建一个共享内存,当然这个共享可以是应用程序创建,也可以是playbackThread创建。应用程序只要把数据写入到共享内存,…

【STC单片机学习】高级外设和项目篇一:温度传感器DS18B20

【朱老师课程总结 侵删】 本节知识点:串口uart、LCD1602、DS18B20 第一部分、章节目录 2.1.1.DS18B20相关背景知识1 2.1.2.DS18B20相关背景知识2 2.1.3.原理图和数据手册1 2.1.4.原理图和数据手册2 2.1.5.原理图和数据手册3 2.1.6.原理图和数据手册4 2.1.7.原理图和…

【面试】嵌入式软件与非嵌入式软件、设备驱动与裸机驱动开发区别

嵌入式软件开发与非嵌入式软件开发区别? 设备驱动开发与裸机驱动开发区别? 嵌入式开发与传统单片机开发区别? 如果面试遇到这样的问题: 三个问题的答案一致。 答:我认为嵌入式软件与非嵌入式软件(设备…

【物联网无线通信技术】ZigBee从理论到实践(CC2530)

文章延续之前【物联网无线通信技术】系列文章的风格,首先对ZigBee这种在物联网发展初期出现的无线通信技术进行了相关背景概念的介绍,并横向介绍了几款时间跨度比较大的ZigBee芯片。然后以CC2530为例,从硬件到软件介绍了ZigBee这中无线通信技…

Linux内核超级装备eBPF技术详细研究

定义一(http://ebpf.io的定义) eBPF (which is no longer an acronym for anything) is a revolutionary technology with origins in the Linux kernel that can run sandboxed programs in a privileged context such as the operating system kernel.…

Rust + 嵌入式:强力开发组合

Rust 的由来 Rust 编程语言的灵感诞生于一次意外。2006年,当 Graydon Hoare 回到位于温哥华的公寓时,发现电梯又因为软件崩溃出了故障。住在 21 楼的他无奈爬楼时,不禁心想,“我们搞计算机的,怎么连个能正常运行的电梯…

嵌入式开发:硬件和软件越来越接近

从前,硬件和软件工程师大多生活在自己的世界里。硬件团队设计了芯片,调试了从铸造厂返回的第一批样本,让软件团队测试他们的代码。随着虚拟平台和其他可执行模型变得越来越普遍,软件团队可以在芯片制造之前开始,有时甚…

ARM、DSP、FPGA比较

ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软 件。ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系…

【嵌入式开发工具】STM32+Keil实现软件工程搭建与开发调试

本篇文章介绍了使用Keil来对STM32F103C8芯片进行初始工程搭建,以及开发与工程调试的完整过程,帮助读者能够在实战中体会到Keil这个开发环境的使用方法,了解一个嵌入式工程从无到有的过程,并且具备快速搭建一个全新芯片对应最小软件…

【物联网无线通信技术】NFC从理论到实践(FM17XX)

NFC,全称是Near Field Communication,即“近场通信”,也叫“近距离无线通信”。NFC诞生于2004年,是基于RFID非接触式射频识别技术演变而来,由当时的龙头企业NXP(原飞利浦半导体)、诺基亚以及索尼联合发起。NFC采用13.5…

08.音频系统:第003课_Linux音频驱动程序:第003节_RK3399声卡驱动移植_combine

该小节我们讲解一下开发板RK3399声卡rt5651的移植,主要分为4个部分,platfrom,codec,machine,dts(设备树)。 首先我们从设备树开始讲起,当然在讲解之前,我们先来体验下声卡…

实战:基于TC3XX STM模块的时间片程序开发

1. 前言 STM模块,全称为系统定时器模块,可以看作是汽车ECU中的一个计时器。STM模块能够精确地测量和跟踪时间。 在ECU软件中,STM模块通常用于创建定期任务,比如每10毫秒执行一次的任务。这就像是一个闹钟,每隔10毫秒就会响一次,提醒ECU执行某个特定的任务。 这里的10m…

写得了代码,焊得了板!嵌入式开发工程师必修之代码管理方案(下)

目录 极狐GitLab嵌入式开发场景解决方案 3.1 高可用部署与灾备 3.2 组织管理 3.3 分支策略 3.4 分支保护 3.5 推送规则 3.6 代码评审 3.7 数据保护 3.8 其他相关 本文来自 武让 极狐GitLab 高级解决方案架构师 💡 前两篇文章,作者介绍了嵌入式开…

08.音频系统:第004课_Android音频系统详解:第003节_所涉及文件形象讲解

上小节我们讲解了:stream type, strategy, device, output, profile, module : policy,out flag的基本概念,理解了这些概念之后,我们就比较容易去分析代码了。 那么我们需要去分析那些代码呢?这些代码都在那些文件呢&…

c语言中的内存管理(重点:动态内存申请释放,野指针,指针函数)

内存分布: 代码区全局变量与静态变量区(全局变量,字符串常量等)局部变量区(栈区)(自动分配,自动回收)动态存储区(堆区)动态内存1.内存申请malloc要…

08.音频系统:第003课_Linux音频驱动程序:第007节_route_path添加过程分析

该小节我们讲解route与path添加过程分析。会使用一些例子,把这个过程讲解清楚。 打开源码文件rt5651.c,根据之前的分析我们知道: static const struct snd_soc_dapm_route rt5651_dapm_routes[] {......{"IN1P", NULL, "LD…

嵌入式开发:嵌入式软件——它能变得多复杂?

从历史上看,嵌入式开发系统非常简单:只有几K内存的8位CPU。尽管这种简单的系统仍在开发中,但许多资源丰富的设备现在都在使用一个或多个32位处理器和许多兆字节的内存。这些设备的巨大威力导致软件的规模和复杂性不断增加。但这种复杂性的极限…

你想要的进程知识——进程替换

进程替换 一、什么是进程替换 创建一个进程后,pid 以及在内核中的信息保持 保持不变,但进程所执行的代码进行替换 作用 : 通过一个进程启动另外一个进程 应用场景: c程序 进程替换启动python.exe 二、exec函数家族 在 Linux 系统中提供了一组用于…

08.音频系统:第004课_Android音频系统详解:第010节_音频数据的传递

通过前面的学习,在应用程序中,每创建一个AudioTrack,在AudioFlinger边,某个playbackThread中就会创建一个Track与其对应,Track与AudioTrack之间,通过共享内存传递音频数据,那么怎么传递这个数据…

Linux内核进程管理之进程状态(二种模型)

1,三态模型三态模型:在多道程序系统中,进程在处理器上交替运行,状态也不断地发生变化。进程一般有3种基本状态:运行、就绪和阻塞。(1)运行:当一个进程在处理机上运行时,则…

嵌入式开发资料免费分享

嵌入式开发资料免费分享 嵌入式工程师经验分享:如何学习嵌入式开发 截取文档部分学习嵌入式工程师经验分享的资料分享给大家,文档上从、嵌入式系统的概念,嵌入式系统的分层与专业的分类,目标与定位,开发系统选择&…

08.音频系统:第003课_Linux音频驱动程序:第006节_DAPM的kcontrol注册过程

在上小节我们初步的讲解了DAPM的widget,route,path3个概念,并且猜测了DAPM对他们的使用过程,接下来的几个小节,我们根据代码讲解DAPM的调用过程: a,dapm的kcontrol注册过程 b,tinymi…

08.音频系统:第006课_音频系统HAL分析:003_音量键和Setting界面调节音量流程

在前面两个小节小节中,已经讲解了音量调节的最重要部分,该小节讲解一下使用音量键,或者在Setting界面调节滑动条调节音量时,其处理流程是怎么样的。 使用音量键控制音量会涉及两个系统,一个是输入系统,一个…

TIM_SetCompare2()

对于**void TIM_SetCompare2(TIM_TypeDef TIMx,uint16_t Compare2)***的理解 void TIM_SetCompare2(TIM_TypeDef* TIMx,uint16_t Compare2) { /*Check the parameters */ assert_param(IS_TIM_LIST6_PERIPH(TIMx)); /*Set the Capture Compare2 Register value */ TIMx->C…

【硬件】嵌入式电子设计基础之产品实践

电子技术是一门实践性非常强的学科,学习电子元器件基础知识和设计技能,最终为的是把具备一定功能的电路板制作出来,解决科研、生产、生活中的实际问题。 本篇文章从实际的电子产品出发,让您能够初步体验电子产品的硬件设计过程&am…

嵌入式Linux:配置Ubuntu系统环境和安装开发工具

目录 1、配置Ubuntu系统环境 1.1、APT下载工具 1.2、更新语言 1.3、更新本地数据库 1.4、安装VIM编辑器 1.5、Ubuntu 和 Windows 文件互传 1.6、开启NFS服务 1.7、开启SSH服务 2、安装开发工具 2.1、Ubuntu安装VSCode 2.2、Windows安装MobaXterm 安装好Ubuntu系统环…

雷达编程实战之提高探测速度

有效帧频率作为雷达一个非常核心的指标,它代表了雷达探测识别的速度,速度越快,后级各项智能驾驶功能就能得到更快、更有效的判断。本篇文章首先从硬件的角度,提供了一种合理利用片上资源提高探测识别速度的常用方法,然…

Linux操作系统进程的状态和转换(五态模型)

1、进程的状态和装换1.1进程的三态模型按进程在执行过程中的不同情况至少要定义三种状态:运行(running)态:进程占有处理器正在运行的状态。进程已获得CPU,其程序正在执行。在单处理机系统中,只有一个进程处…

Linux内核IO基础知识与概念

什么是 IO在计算机操作系统中,所谓的I/O就是 输入(Input)和输出(Output),也可以理解为读(Read)和写(Write),针对不同的对象,I/O模式可以划分为磁盘…

08.音频系统:第004课_Android音频系统详解:第009节_AudioTrack创建过程_Track和共享内存

在上小节中我们讲解了,在AudioTrack创建过程中,他会选择一个output,一个output对应一个播放设备,他也对应着一个播放线程,该小节我们讲解在这个线程之中,怎么去创建一个Track,应用程序的AudioTr…

S3C2440移植uboot之编译烧写uboot

文章目录移植环境获取uboot更新交叉编译工具配置环境变量移植Uboot其他文章链接: S3C2440移植uboot之新建单板_时钟_SDRAM_串口 S3C2440移植uboot之启动过程概述 S3C2440移植uboot之支持NAND启动 S3C2440移植uboot之支持NORFLASH S3C2440移植uboot之支持NANDFL…

Banana Pi 开源社区在深圳国际电子展(2023)上展示全系列新产品

Banana Pi 开源社区在深圳国际电子展(2023)上展示全系列新产品 Banana Pi开源硬件社区是由广东比派科技主导、台湾鸿海科技(富士康)全面战略支持的开源硬件项目。Banana Pi开源硬件系列开发板,完成核心系统和架构设计。开发文档、软件、硬件…

ARM+LINUX嵌入式学习路线

嵌入式学习是一个循序渐进的过程,如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式Linux方向,关注这个方向,大概分3个阶段: 1、嵌入式linux上层应用,包括QT的GUI开发 2、嵌入式linux系统开发 3、…

嵌入式开发的常用软件、学习资源网站推荐

1、软件推荐 1.1、文本编辑软件 ——Notepad 1、适合编写和查看文本文件,也可以安装插件来查看二进制文件、对比文件 2、参考博客:《Notepad实用小技巧》; 1.2、PDF文件阅读软件——福昕PDF阅读器 福昕PDF阅读器,在官网就可以下载…

为啥4位单片机那么LOW,还没被淘汰?

我以为8位的51单片机已经够低端了,没想到竟然还有4位单片机!它到底有什么优势?用在什么领域? 在刚开始学习单片机的时候,我一直以为用越高端的芯片就越牛逼。 而现实,公司做产品和我们单片机学习者&#xf…

08.音频系统:第004课_Android音频系统详解:第002节_以例子说明几个重要概念

该小节我们以几个例子,说明几个重要的概念:stream type, strategy, device, output, profile, module : policy,out flag 我们先画一个图,假设深黑色大框为我们的andriod设备: 接着声卡,声卡上面有一个喇…

嵌入式开发:你需要知道的5种简单

传达嵌入式软件体系结构设计意图通常伴随着基于嵌入式开发人员经验的假设。你可以从资源受限的基于微控制器的系统的角度来看架构设计。如何设计架构将取决于系统的嵌入式软件分类。有许多不同的方法可以对嵌入式软件进行分类。我发现有五种简单的嵌入式软件分类可以帮助我调整…

Linux延时队列工作原理与实现

当进程要获取某些资源(例如从网卡读取数据)的时候,但资源并没有准备好(例如网卡还没接收到数据),这时候内核必须切换到其他进程运行,直到资源准备好再唤醒进程。 waitqueue (等待队列) 就是内核…

【STM32单片机学习】第一课:STM32那些你该知道的事儿

【朱老师课程总结 侵删】 第一部分、章节目录 3.1.1.STM32和STC51开发 3.1.2_3.STM32的来历背景 3.1.4.STM32简单中文手册带读 3.1.5.STM32的各种仿真器调试器是怎么回事 3.1.6.STM32的标准外设库、 HAL库、LL库 3.1.7.本课程使用的开发板介绍 第二部分、章节介绍 3.1.1.STM3…

代码干货 | 嵌入式开发C语言位结构体用途详解

本文来源于阿里云-云栖社区,原文点击这里。 在嵌入式开发中,经常需要表示各种系统状态,位结构体的出现大大方便了我们,尤其是在进行一些硬件层操作和数据通信时。但是在使用位结构体的过程中,是否深入思考一下它的相关…

08.音频系统:第003课_Linux音频驱动程序:第002节_ASoC音频驱动框架

通过上小节alsa音频驱动框架的分析,知道如果要去写一个声卡驱动,我们需要分配,设置,注册snd_card结构体: 定义一个struct snd_card *card;snd_card_new //里面会创建控制接口snd_pcm_new //里面会创建playback&#x…

【MCAL】TC397+EB-tresos之CAN配置实战 - (CAN/CANFD)

本篇文章介绍了在TC397平台使用EB-tresos对CAN驱动模块进行配置的实战过程,不仅介绍了标准CAN的发送与接收,还介绍了CANFD的实现与调试以及扩展帧的使用。M_CAN是德国博世公司开发的IP,因为英飞凌的芯片完整的集成了这个IP,所以整体的配置都比…

LinuxC编程——进程

目录 一、概念1.1 程序1.2 进程 二、特点⭐⭐⭐三、进程段四、进程分类五、进程状态六、进程状态转换图七、函数接口1. 创建子进程2. 回收进程资源3. 退出进程4. 获取进程号 八、守护进程 一、概念 进程和程序是密不可分的两组概念,相对比,便于理解。 1.…

嵌入式开发:通过嵌入式虚

嵌入式虚拟化为实现多核处理能力的优势提供了一种可扩展的机制。嵌入式应用中的虚拟化与其企业和桌面应用有许多共同之处。独特的嵌入式使用案例和专业的底层技术为嵌入式开发人员提供了优化性能和响应设计的新机会。在台式机、数据中心以及现在的嵌入式设计中采用多核技术可以…

arm学习笔记005之Linux平台下TFTP服务器构建

TFTP(Trivial File Transfer Protocol,简单的文件传输协议)是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,端口号为 69。TFTP 这种简单的基于 UDP 的文…

知其然更要知其所以然,聊聊SQLite软件架构

SQLite是一个非常受欢迎的数据库,在数据库排行榜中已经进入前十的行列。这主要是因为该数据库非常小巧,而且可以支持Linux、Windows、iOS和Andriod的主流的操作系统。 SQLite非常简单,是一个进程内的动态库数据库。其最大的特点是可以支持不同…

电子技术经典资料汇总:嵌入式开发12.9G

电子技术经典资料汇总:嵌入式开发12.9G,学完就可以做大牛了,这也是大牛分享出来的资料,嵌入式的各类资料,也希望能够汇集更多想学习嵌入式的朋友一起交流学习,有什么问题可以一起解决:787059199&#xff0c…

嵌入式系统开发-麦子学院(13)-linux底层系统开发(1)

1. 嵌入式系统移植: (1)交叉编译链: 不同平台的对指令集的编码译码不同。将交叉编译器增加到环境变量中: ① PATH$PATH:目录 ② vi /etc/environmet 文件中添加 交叉编译的工具集: readelf -…

Banana Pi BPI-R3 评测:详细信息、功能

Banana Pi BPI-R3 路由板著名的 Banana Pi 品牌背后的公司 Sinovoip Co., Ltd 刚刚宣布了一款名为 Banana Pi BPI-R3 的带有两个 SFP 端口的新型开源路由器。它可能是市场上首批具有内置光接口的单板路由器之一。这种出色的产品对于连接到快速光纤互联网的用户特别有益&#xf…

虹科分享 | 平衡速度与优先级:为多样化的实时需求打造嵌入式网络(3)——CAN与CANopen的实时能力与局限性

在回顾了选择具有实时能力的嵌入式通信系统的基本要求之后,我们现在将更详细地探讨CAN和CANopen的实时能力和局限性。 控制器局域网(CAN)协议是各个行业众多应用的基础,每个应用都有其独特的实时需求。CANopen和J1939等著名示例强调了该协议的多种适应性…

嵌入式开发人员学习x86架构的必要性

嵌入式开发人员学习x86架构的必要性 原文:http://blog.csdn.net/zoomdy/article/details/50550234 mingdu.zheng at gmail dot com 在ARM横扫全球的年头,嵌入式系统很少使用x86,但是作为嵌入式开发人员学习x86还是很有必要的,原…

51零基础学单片机语言开发·经典必学,有视频、课件和源码

51零基础学单片机语言开发经典必学,有视频、课件和源码 今天也是分享资料,不过是很大量的学习资料,足够您国庆七天在家闭关学习了,4G的51单机片开发学习视频和资料,包括每一节的视频、课件和源码!内容很大&…

机械女生,双非本985硕,目前学了C 基础知识,转嵌入式还是java更好?

作为单片机项目开发的卖课佬,个人建议,先转嵌入式单片机开发方向,哈哈。 java我也学过,还学过oracle、mysql数据库,只是当时没做笔记,找不好充分的装逼证据了。 从实习通过业余时间,学到快正式毕…

Banana Pi推出基于龙芯2K1000LA处理器的信创工业控制开发平台

Banana Pi推出基于龙芯2K1000LA处理器的信创工业控制开发平台:BPI-5202信创工业控制开发平台 BPI-5202 龙芯2K1000LA 信创工业控制开发平台 1.1 工控机的应用场景 物联网的狂潮,既是一场众多的计算机软硬件厂家(也包括通讯方案和产品厂家&…

您可以购买 Banana Pi BPI-CM2 而不是 Raspberry Pi CM4。它提供什么?

最近,Banana Pi(SINOVOIP)推出了Banana Pi BPI-CM2系统级模块(SoM)。BPI-CM2 是类似于Raspberry Pi CM4 的计算模块,提供一系列令人印象深刻的功能。Banana BPI-CM2 SoM 采用Rockchip RK3568四核 Cortex-A5…

为什么越来越多的人选择嵌入式?

当下,嵌入式软件工程师仍然是当下备受IT从业者和各大企业青睐的职业。为什么越来越多的人选择嵌入式?今天总结一下,大概有这几个理由。 1.好就业 随着移动互联网、物联网的迅猛发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域…

7 配置的封装

概述 IPC设备通常有三种配置信息:一是默认配置,存储了设备所有配置项的默认值,默认配置是只读的,不能修改;二是用户配置,存储了用户修改过的所有配置项;三是私有配置,存储了程序内部使用的一些配置项,比如:固件升级的URL、固件升级标志位等。恢复出厂设置的操作,实际…

撸代码时,有哪些习惯一定要坚持?

我从2011年开始做单片机开发,一直保持以下撸代码的习惯。 1.做好代码版本管理 有些人,喜欢一个程序干到底,直到实现全部的产品功能,我以前做51单片机的项目就是这样。 如果功能比较多的产品,我不建议这样做&#xff0…

单片机为什么被认为是一门简单的技术?

做了单片机开发时间越长,越感觉这个领域的东西,10年都学不完。 之前我分享过特斯拉超跑Roadster的开源资料,很多老铁说没啥用,都是过时的东西。 我发现,说这些话的,都是些初学者,或者从业不久的…

嵌入式学习路线你知道吗?

嵌入式学习路线你知道吗? 1打好嵌入式软件编程的基础 这一阶段重点打好嵌入式软件编程的基础,包括学习Linux系统的基本应用,Linux的常用命令、C语言编程基础、常用的数据结构。特别是C语言中对指针的理解和应用。这一阶段的主要目的是学习编程…

该不该放弃嵌入式,单片机这条路?

本文几乎浓缩了我从业10几年的精华,内容涵盖我转行、打工、创业的经历。 建议从头到尾不要错过一字一句,因为字里行间的经验之谈,或许能成为你人生重要转折点。 全文3700多字,写了6个多小时,如果你赶时间,建…

10 Wifi网络的封装

概述 Wifi有多种工作模式,比如:STA模式、AccessPoint模式、Monitor模式、Ad-hoc模式、Mesh模式等。但在IPC设备上,主要使用STA和AccessPoint这两种模式。下面分别进行介绍。 STA模式:任何一种无线网卡都可以运行在此模式,这种模式也是无线网卡的默认模式。在此模式下,无线…

【物联网无线通信技术】LoRa从理论到实现(SX1268)

文章先从LoRa的物联网通信技术前辈们讲起,慢慢引出了这种功耗又低,距离又远的无线通信技术,然后又似庖丁解牛一般,从物理层到链路层,详细的介绍了LoRa这种技术的组成,最后以一种实际的原理与嵌入式软件实现…

成为嵌入式工程师以后才明白的道理

岁月是把杀猪刀,有时看着最近拍的照片,MD,像个糟老头。 有时候一直以为自己心理年龄才20多岁,实际却马上要奔4了。 每天看着工业园区那些熙熙攘攘的00后,感叹年轻真好,感叹属于我们的时代,快要过…

学习嵌入式系统开发学习课程有哪些

学习嵌入式系统开发需要掌握一些基础的编程知识和硬件知识,以下是一些常见的嵌入式系统开发学习课程和资源: 1. **C/C编程课程**:掌握好C/C编程语言是嵌入式系统开发的基础,可以通过在线教育平台如Coursera、Udemy、edX等搜索相关…

探索Linux内核4.4版本带来的网络新特性

本文题目有点大,但其实我只想描述一些我个人一直比较关注的特性,并且不会太详细,跟往常一样,主要是帮忙理清思路的,不会分析源码。这主要是为了哪一天突然忘了的时候,一目十行扫一眼就能记忆当时的理解&…

STM32+摁键与定时器实现Led灯控制(中断)

中断作为单片机开发必须掌握的内容,它能够在不搭载操作系统的情况下让我们体验多任务处理的快感,保证了高优先级任务的实时性,同时系统中断也能够提供给用户在核心发生错误之后进行处理的机会。STM32F103系列单片机中断非常强大,每…

Linux用户空间与内核空间通信(Netlink通信机制)

一,什么是Netlink通信机制 Netlink是linux提供的用于内核和用户态进程之间的通信方式。但是注意虽然Netlink主要用于用户空间和内核空间的通信,但是也能用于用户空间的两个进程通信。只是进程间通信有其他很多方式,一般不用Netlink。除非需要…

【STM32单片机学习】第二课:STM32的存储器、电源和时钟体系

【朱老师课程总结 侵删】 第一部分、章节目录 3.2.1.STM32的存储器和总线架构 3.2.2.STM32的位带操作详解 3.2.3.STM32的启动模式 3.2.4.STM32的电源管理系统(PWR) 3.2.5.复位与时钟概述 3.2.6.STM32的时钟控制RCC详解 第二部分、章节介绍 3.2.1.STM32…

【STM32单片机学习】第五课:STM32标准外设库(SPL 库)

【朱老师课程总结】 第一部分、章节目录 3.5.1.为什么会有标准外设库 3.5.2_3.外设库的结构介绍和之后的学习方法1_2 3.5.4.标准库对硬件信息的封装方式 3.5.5.使用结构体方式访问寄存器的原理 3.5.6.使用结构体方式访问寄存器的实践 3.5.7_8.使用标准库重写LED的程序 3.5.9_1…

嵌入式开发:鼓励嵌入式代码重用

在嵌入式开发中,实现嵌入式应用的过程很容易理解:l 代码是用C/C/汇编语言或其他语言编写的,并放在许多文件(模块)中。l 每个模块都被编译/汇编成一个可重定位的目标文件。此文件包含目标处理器的机器指令,但尚未提交地址信息。l 使…

Keil5中写的软件延时函数不起作用现象解析_ARM_Compiler_volatile关键字

一、问题描述 在学习野火霸天虎F407寄存器点亮LED时,出现实验现象:LED灯不亮,野火霸天虎F407资料。 main.c代码如下: #include "stm32f4xx.h"void Delay(unsigned int count);int main(void) { #if 0/* 第一步&a…

学嵌入式开发都有哪些困难?

前几天和徐工喝酒,我讲了一句话,让大家产生了极大的共鸣。 我说:凡事往好处想,往好的方面做,事情就能变好。 这句话,是我很久以前,在网上看到的。 第一次看到的时候,我想&#xff0c…

Linux操作系统进程同步的几种方式及基本原理

1,进程同步的几种方式1.1信号量用于进程间传递信号的一个整数值。在信号量上只有三种操作可以进行:初始化,P操作和V操作,这三种操作都是原子操作。P操作(递减操作)可以用于阻塞一个进程,V操作(增加操作)可以用于解除阻…

Linux内核进程管理几种CPU调度策略

CPU调度我们知道,程序需要获得CPU的资源才能被调度和执行,那么当一个进程由于某种原因放弃CPU然后进入阻塞状态,下一个获得CPU资源去被调度执行的进程会是谁呢?下图中,进程1因为阻塞放弃CPU资源,此时&#…

08.音频系统:第003课_Linux音频驱动程序:第008节_DAPM的情景分析_构造过程

上小节我们讲解了route_path添加过程分析,该小节我们进行DAPM的情景的情景分析,即讲解几个例子。下面是一个图示(看起来比较混乱,不过没有关系,可以当做接线部分不存在,然后再讲解的过程中慢慢观看&#xf…

你真的懂Linux内核中的阻塞和异步通知机制吗?(花了五天整理,墙裂推荐!)

工科生一枚,热衷于底层技术开发,有强烈的好奇心,感兴趣内容包括单片机,嵌入式Linux,Uboot等,欢迎学习交流! 爱好跑步,打篮球,睡觉。 欢迎加我QQ1500836631(备…

Linux操作系统处理器调度基本准则和实现

1,基本概念在多道程序系统中,进程的数量往往多于处理机的个数,进程争用处理机的情况就在所难免。处理机调度是对处理机进行分配,就是从就绪队列中,按照一定的算法(公平、低效)选择一个进程并将处…

STM32:使用蓝牙模块

一、蓝牙概要 蓝牙是一种常见的无线通信协议,通常用于短距离通信。蓝牙分为经典蓝牙和低功耗蓝牙(BLE)。经典蓝牙通常用于需要持续传输数据的设备,比如蓝牙耳机等。低功耗蓝牙通常用于只需要间歇性传输数据的设备,比如运动手环。 蓝牙…

O(1)调度器:Linux2.6版本的核心算法

上一章学习了O(n)调度器的设计,以及它的核心算法,其主要思路如下: O(n)调度器采用一个Runqueue运行队列来管理所有可运行的进程,在主调度schedule函数中选择一个优先级最高,也就是时间片最大的进程来运行,…

玩转Linux内核进程调度,这一篇就够(所有的知识点)

一,进程的分类 在 CPU 的角度看进程行为的话,可以分为两类: CPU 消耗型:此类进程就是一直占用 CPU 计算,CPU 利用率很高IO 消耗型:此类进程会涉及到 IO,需要和用户交互,比如键盘输…

Linux内核Socket通信原理和实例讲解

关于对 Socket 的认识,大致分为下面几个主题,Socket 是什么,Socket 是如何创建的,Socket 是如何连接并收发数据的,Socket 套接字的删除等。Socket 是什么以及创建过程一个数据包经由应用程序产生,进入到协议…

嵌入式就业怎么样?

嵌入式就业怎么样? 现在的IT行业,嵌入式是大热门,下面也要来给大家介绍下学习嵌入式之后的发展以及就业怎么样。 首先是好找工作。嵌入式人才目前是处于供不应求的状态中,据权威统计机构统计在所有软件开发类人才的需求中,对嵌入式工程师的…

【HAL库】STM32F407----CAN通信----中断详解

CAN通信----基本原理 CAN通信----电路图 一、CAN通信----中断简介 STM32F407的CAN通信一共有四个专用中断,分别是: 发送中断FIFO0 接收中断FIFO1 接收中断错误中断 具体如下图所示: 二、CAN通信----中断寄存器 CAN中断使能寄存器&#x…

嵌入式开发利器

前言 俗话说,工欲善其事必先利其器,做嵌入式开发首先需要选择好的工具,对的工具,工具选对了能事半功倍,节省很多时间,那些开发大佬一般都会使用各种各样的工具,不同的环节使用不同的工具&#…

FreeRTOS多任务系统

FreeRTOS 文章目录 FreeRTOS1 单任务和多任务系统1.1 单任务系统1.2 多任务系统 2 FreeRTOS 任务状态3 FreeRTOS 任务优先级4 Free RTOS 任务调度方式4.1 抢占式调度4.2 时间片调度 5 FreeRTOS 任务控制块6 FreeRTOS 任务栈 1 单任务和多任务系统 1.1 单任务系统 单任务系统的…