嵌入式系统与单片机|技术阅读
登录|注册

您现在的位置是:嵌入式系统与单片机 > 技术阅读

技术阅读

  • 我写了一段代码,CPU为什么就能运行

    2024-05-25

    点击上方蓝色“混说Linux”,选择“设为星标”第一时间看干货文章  1 最近读到这样一篇文章,从底层硬件角度出发剖析了一下CPU对代码的识别和读取,内容之精彩,读完感觉学到的很多东西瞬间联系起来了,分享给大家。首先要开始这个话题要先说一下半导体。啥叫半导体?半导体其实就是介于导体和绝缘体中间的一种东西,比如二极管。电流可以从A端流向C端,但反过来则不行。你可以把它理解成一种防止电流逆流的东西。当C端10V,A端0V,二极管可以视为断开。当C端0V,A端10V,二极管可以视为导线,结果就是A端的电流源源不断的流向C端,导致最后的...

  • 在STM32上模拟Linux自动初始化过程

    2024-05-25

    点击上方蓝色“混说Linux”,选择“设为星标”第一时间看干货文章 1Linux中有很多编程思想可以学习,很多大佬把这些思想、机制运用到单片机的编程上,STM32 模拟Linux kernel自动初始化流程。通常我们写程序都是按照这个套路,一个函数一个函数按照顺序逻辑一个一个的执行下去。如果逻辑非常复杂,涉及的模块比较多,那么这种顺序执行的代码就会比较臃肿,各模块耦合非常紧密。Linux kernel 中,有各种外设驱动,想按照一个顺序逻辑执行下去,几乎是不可能的。而kenrel 代码能有这么大的代码量,大而不乱,把各层次,各模块有效的分离,而大量的代...

  • 这些经常忽略的嵌入式基础知识点,你都掌握了吗?

    2024-05-25

    点击上方蓝色“混说Linux”,选择“设为星标”第一时间看干货文章 1为解决各种问题,人们发明了不计其数的机器。嵌入式设备种类繁多,从嵌入火星漫游机器人的计算机到为操纵核潜艇导航系统的系统,不一而足。冯• 诺伊曼在1945 年提出第一种计算模型,无论笔记本电脑还是电话,几乎所有计算机都遵循与这种模型相同的工作原理。那么你们了解计算机是如何工作的吗?本文将讨论这些内容:◎ 理解计算机体系结构的基础知识◎ 选择编译器将代码转换为计算机可以执行的指令◎ 根据存储器层次结构提高数据的存储速度毕竟,在非程序员看来,编程要像魔法一...

  • C语言灵魂拷问: ++i为何比i++执行效率高!

    2024-05-25

    点击上方蓝色“混说Linux”,选择“设为星标”第一时间看干货文章 1背景相信很多人遇到过这样的问题:printf("%d,%d",i++,++i);也纠结过这个问题,到底答案是什么。却没有一个参考的资料。唯一知道的是,几乎所有C语言教材都这么讲:i++就是先使用i的值再使i自身加一,而++i则是先使i自身加一,然后再使用i的值。出于对真理的追求。今天我们彻底弄明白此问题。 譬如这样的话:int a,b;int i=10,j=10;a=i++;b=++j;我们可以很清楚的知道a和b的值分别将是10和11。这点毫无疑问,因为无论在任何平台任何编译器上运行都是这个结果!然而对于这样的程序...

  • 面试官问:malloc(0)时程序会返回什么?

    2024-05-25

    点击上方蓝色“混说Linux”,选择“设为星标”第一时间看干货文章 1今天跟大家找了篇文章,主要是一个面试中的有趣问题,其实有些问题在开发中没有遇到过会很难回答出来,如果在面试过程中回答正确,皆大欢喜,拿到offer的概率更大;回答不出来也不要信口开河,面试官主要看的是你对待问题的态度~正文:故事要从前两天交流群中一位同学提到的这个问题开始这个问题看起来十分刁钻,不过稍有常识的人都知道,制定 C 标准的那帮语言律师也不是吃白饭的,对这种奇奇怪怪的问题一定会有定义。翻阅C17 标准 草案 N2176,在 7.22.3 节里,有如下说法:The...

  • 嵌入式开发到底有没有中年危机?

    2024-05-25

    点击左上方蓝色“混说Linux”,选择“设为星标”第一时间看干货文章 1 读者提问一个读者问了一个问题:我现在25岁,双非一本本科。在深圳上班,做嵌入式开发,打算走Linux C/C++开发,工资目前一般。读了前辈写的很多博客之后,觉得很棒。我现在有一些疑问。1.最近互联网裁员很厉害嘛,再加上对于稳定工作的宣传,让我对于私企工作这种不稳定性充满担忧,想问问看前辈对于35岁危机有什么化解的应对和方法。2.嵌入式行业真的可以一直干下去嘛,因为我是湖北人,我最后也要回武汉,对于非一线的嵌入式工作可以的发展前景有一些疑惑。3.如果嵌入式...

  • 一张图了解嵌入式系统启动流程

    2024-05-25

    点击上方蓝色“混说Linux”,选择“设为星标”第一时间看干货文章 1如下图所示是嵌入式系统启动流程图,图中红色的数字圆点表示启动的先后顺序。主要分为4个阶段,分别是第一阶段 bootloader,第二阶段uboot,第三阶段内核启动,第四阶段app启动。bootloader阶段主要完成第一阶段系统的引导和初始化工作,包括序号1~3。系统上电后,首先是cpu开始工作,此时引导程序(通常是汇编代码)从ROM被加载到RAM 中,对cpu的寄存器初始化,启动核0,如果是核1或者其他核则处于休眠状态,等待核0在内核启动正常后通过中断或者事件将其唤醒(图中10的位置)。...

  • 嵌入式裸机过渡到RTOS七点建议~

    2024-05-25

    点击上方蓝色“混说Linux”,选择“设为星标”第一时间看干货文章 1实时操作系统已经成为许多嵌入式系统中的关键组件,从裸机调度过渡到RTOS可能是一件棘手的事情。这里有七个小技巧可以帮助嵌入式开发人员更轻松地完成过渡。1首先规划你的架构如果你从未使用过UML或者对软件架构不感兴趣,现在是时候学习一下了。使用RTOS时,开发人员仔细考虑每项任务、同步和通信机制是至关重要的。这些细节不能仅仅存储在工程师的头脑中,而是需要以图表的形式记录下来,以便在需要时可以查看和更新。开发一个基于RTOS的应用程序会很快变得复杂,考虑清楚应用程...

  • UVC 学习:UVC 中断端点介绍

    2024-05-24

    本文主要介绍一下UVC 中断控制端点,大多数情况下UVC 的控制都是由端点0 控制的,一般情况下很少用到UVC 中断端点。今天主要介绍一下UVC 中断端点以及什么情况下需要用到中断端点。1. 什么是中断端点?一个USB视频控制接口可以支持一个可选的中断端点,以通知主机关于视频功能中不同的可寻址实体(终端、单元、接口和端点)的状态。如果存在中断端点,则被整个视频接口集合用于向主机传递状态信息。它被认为是视频控制接口的一部分,因为这是集合的锚定接口。以下情况中断端点是必须支持的:设备支持硬件触发静态抓拍设备支持 AutoUpdate 控件该设备...

  • 芯片设计流片、验证、成本的那些事

    2024-05-24

    前言我们聊聊芯片设计、流片、验证、制造、成本的那些事;流片对于芯片设计来说就是参加一次大考。流片的重要性就在于能够检验芯片设计是否成功,是芯片制造的关键环节,也就是将设计好的方案交给芯片制造厂生产出样品。检测设计的芯片是否达到设计要求,或者是否需要进一步优化;如果能够生产出符合要求的芯片,那么就可以大规模生产了。上图流程的输入是芯片立项设计,输出是做好的芯片晶圆。一、晶圆术语1. 芯片(chip、die)、器件(device)、电路(circuit)、微芯片(microchip)或条码(bar):所有这些名词指的是在晶圆表面占大部分面积的...

  • 什么是eUSB?

    2024-05-24

    本文介绍一下eUSB 基础知识参考:eUSB2_1p1_20180917.pdf1. 什么是eUSB ? 1.1 eUSB 概念eUSB是原USB物理层上的补充,为了解决USB_phy低压需求的问题而出现的,eUSB可以将信号电平降至1.2V甚至更低,与此同时可以优化电源效率。概括为:一种用于芯片间互联的低电压、低功耗的内部接口。1.2 应用背景智能终端设备的尺寸追求越来越小,但其为实现各类多样化功能的组件越来越多。这就使得缩减接口尺寸以便增加更多的组件成为了当务之急。然而,不断缩减的SoC节点尺寸导致栅极氧化层越来越薄,只能支持更低的电压。当工艺节点为7nm及以上时,USB 2.0可继...

  • UVC Bulk 传输实现细节

    2024-05-24

    前段时间有个读者咨询UVC bulk 传输实现,接着这个机会重新梳理一遍UVC bulk 传输实现思路,同时对比ISO 与 Bulk 实现不同。有关bulk 传输实现请先看阅读此文前提:假设读者,已知晓UVC 协议,以及UVC 设备驱动框架1. 描述符布局 1.1 ISO 传输ISO 传输模式下的描述符布局如上图所示:一个配置两个接口:Video Control / Video Stream接口0:VideoControl。处理 UVC CT/PU/XU 等处理,主要用来控制 接口1:VideoStream。处理UVC 视频流控制。一个VideoControl 可以关联一个或者多个流接口。每个流接口下面,关联2个多或者多个接口配置。对于ISO 传输,...

  • UTMI 接口规范介绍

    2024-05-24

    1. 什么是UTMI?UTMI (USB2.0 Transceiver Macrocell Interface):USB2.0 通用传输接口。最初设计是为了减少开发厂商的工作量,旨在提供一种通用标准,来完成USB 2.0 的 底层协议数据处理。UTMI 的出现是为了加速USB2.0 外设的开发。UTMI 最主要的作用主要是负责USB 协议中最底层的物理电信号的转换。其本质是一个接口规范,与usb phy 相连。下图总结了在这个规范中表达的一些概念:USB 2.0 Transceiver Macrocell(UTM):Serial Interface Engine(SIE):串行接口引擎Device Specific Logic:设备特殊逻辑1.1 UTMUTM 处理低级别的USB协议和信号...

  • 一文搞懂 USB 控制器与phy 关系

    2024-05-24

    1. 概述一个完整的usb 系统通信流程如下图所示:整个系统大致分为三层。host客户软件:管理接口设备usb 系统软件:管理设备USB 总线接口(HDC):管理usb 帧数据devicefunction :管理接口usb 逻辑设备:管理端点USB 总线接口(UDC):管理usb 帧数据整个数据流向如下:设备端:function -> usb logical device -> SIE。那么usb framed 数据到底是怎么产生的? 第一种方式:纯软件行为,软件添加 第二种方式:硬件加工,生成符合usb 协议规范的帧数据。目前市面上大部分主流usb 控制器采用第二种方式:即 CPU 从DDR 搬运数据到usb 控制器,然后通过u...

  • USB 设备枚举过程

    2024-05-24

    USB 设备状态切换 前面介绍了USB 设备的状态如下:AttachedPoweredDefaultAddressConfiguredSuspended设备插入后,先进入【attached】 状态,然后hub 端口配置进入【powered】 状态;主机发起复位信号,设备进入【Default】状态,然后分配设置地址,设备配置。USB 设备识别 USB 内部连接1):高速数据传输。产生高速K/J 信号。D+/D- 上电流为17.78ma。(2):用于低速获取全速传输。产生SE0 (3):差分数据接收。用于接收高速数据。(4):传输数据包检测。当接受差分信号低于数据阈值VHSSQ,数据无效(5):低速差分数据接收。用于接收低速数据 (6):高速...

  • USB 基础学习:USB 电气信号介绍

    2024-05-24

    1. USB 设备速度 USB 2.0协议支持3种速率:低速(Low Speed,1.5Mbps)、全速(Full Speed, 12Mbps)、高速(High Speed, 480Mbps)。USB Hub、USB设备,也分为低速、全速、高速三种类型。一个USB设备,可能兼容低速、全速,可能兼容全速、高速,但是不会同时兼容低速、高速。2. USB 设备状态切换 attached:USB 设备连接和断开Powered:USB 设备供电(自动电和总线供电)Default:在设备通电后,它不能响应任何总线事务,直到它收到来自总线的reset。在接收到reset,设备就可以在默认地址上寻址.当复位过程完成后,USB设备将以正确的速度运行(即,低速/...

  • USB 基础学习:USB 体系结构介绍

    2024-05-24

    停更好久,重新梳理一下usb 知识体系1. USB 硬件框架 一个 USB 系统 由三部分来描述:USB interconnectUSB devicesUSB hostUSB interconnect 是指USB 设备连接到主机并与主机通信的方式。这包括以下内容:总线拓扑:USB device 和 host 之间的连接模型。层间关系:数据流模型:USB 调度:1.1. 总线拓扑在USB 系统中有两个硬件的概念:USB host:它跟处理器相连,处理器通过USB Host跟各类USB设备通信。USB Host中集成有一个root hubUSB device:这类设备又分为两类Hub:用来扩展USB接口Function:就是普通的USB设备,比如U盘、声卡等USB 总线拓扑如...

  • ALSA 驱动抽象:ASoc 理解与分析

    2024-05-24

    最近一直在研究 ALSA 驱动,停了一段时间,突然发现Asla 驱动不是一天两天能讲清楚的。1. ASoC 概述ASoC (ALSA System on Chip) ,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系。在ASoc出现之前,内核对于SoC中的音频已经有部分的支持,不过会有一些局限性:Codec驱动与SoC CPU的底层耦合过于紧密,这种不理想会导致代码的重复。音频事件没有标准的方法来通知用户,例如耳机、麦克风的插拔和检测,这些事件在移动设备中是非常普通的,而且通常都需要特定于机器的代码重新对音频路劲进行配置。当进行...

  • 一文读懂 | Linux系统启动过程

    2024-05-24

    如果有一天你们公司很重要的一台Linux服务器突然启动不了了,重装系统又浪费时间,如果是启动过程有问题,那么你知道启动过程可以快速定位系统问题,很快就可以解决。 1. 上电加载BIOS首先肯定是上电,当按下计算机的电源,计算机就会首先加载BIOS系统,BIOS(Basic Input Output System)是基本输入输出系统,主要就是进行硬件检测,检测硬件能否满足运行的基本条件,叫做“硬件自检(Power-OnSelf-Test)”,简称POST,所以,计算机要顺利启动,就需要首先加载BIOS信息,在计算机还没加载操作系统的时候控制计算机。BIOS程序一般被存放在主板ROM(只读...

  • Linux ALSA 学习:ALSA 基础介绍

    2024-05-24

    ALSA 介绍ALSA 概述ALSA(Advanced Linux Sound Architecture )是高级 linux 声卡架构简称, 是目前Linux的主流音频体系结构, 提供了音频和MIDI的支持。除了声音设备驱动,ALSA还捆绑了一个用户空间驱动的库用于应用开发。开发者可以使用这些 ALSA 驱动进行高级 API 开发,可以通过 ALSA 库达成与声音设备的内核(直接)交互。ALSA 特点如下:高效的支持所有类型音频接口,从消费类声卡到专业多声道音频接口;完全模块化的声卡驱动;用户空间库 (alsa-lib) 可简化应用程序编程并提供更高级别的功能;支持较旧的开放声音系统 (OSS) API,为大多...

  • UVC 批量传输技术探讨

    2024-05-24

    1.描述符布局如图为 bulk 传输描述符布局,相对于同步传输,批量传输只有一个可选择的配置,没有备用配置。VideoControl :无变化VideoStream:只有一个 bAlternateSetting(删除alt=1描述符)。同时支持bulk in 端点。需要修改的地方:static struct usb_interface_descriptor uvc_streaming_intf_alt0 = { .bLength  = USB_DT_INTERFACE_SIZE, .bDescriptorType = USB_DT_INTERFACE, .bInterfaceNumber = UVC_INTF_VIDEO_STREAMING, .bAlternateSetting = 0, .bNumEndpoints  = 1,            /* alt0 挂一个...

  • 基于STM32的串口收发讲解(标准库)

    2024-04-30

    介绍串口(UART通用异步收发器,TTL)通讯是一种设备间的串行全双工通讯方式。由于UART是异步传输,没有传输同步时钟,为了保证数据的正确性,UART采用16倍数据波特率的时钟进行采样。因为它简便捷,因此大部分电子设备都支持该通讯方式工程师在调试设备时也经常使用该方式输出调试信息。本文详细的介绍如何来编写一个串口收发程序,我们采用常用的收发逻辑,发送直接编写函数进行实现,而接收使用中断进行完成。接收中断使用接收到一个字节和一帧数据两种中断触发方式。USART中断USART 有多个中断请求事件。之所以介绍这个USART中断请求,是因为很...

  • 基于STM32的串口收发详解(HAL库)

    2024-04-30

    介绍串口(UART通用异步收发器,TTL)通讯是一种设备间的串行全双工通讯方式。由于UART是异步传输,没有传输同步时钟,为了保证数据的正确性,UART采用16倍数据波特率的时钟进行采样。因为它简便捷,因此大部分电子设备都支持该通讯方式工程师在调试设备时也经常使用该方式输出调试信息。本文详细的介绍如何来编写一个串口收发程序,我们采用常用的收发逻辑,发送直接编写函数进行实现,而接收使用中断进行完成。接收中断使用接收到一个字节和一帧数据两种中断触发方式。USART中断USART 有多个中断请求事件。之所以介绍这个USART中断请求,是因为很...

  • 重磅策划丨上汽通用五菱许冰:实行全面“2C”导向,形成差异化竞争力

    2023-12-18

    好不容易熬过了“地狱般”的2022年,没想到2023年开局时刻的中国车市,却给诸多车企泼了一盆冷水。据中汽协公布的2023年1月份车市销量数据,1月汽车销量为164.9万辆,同比下降35%,环比下降35.5%。其中,表现一直不错的新能源汽车出现罕见下滑,同比环比增速均创历史新低。毫无疑问,在1月份“开门黑”,以及各家销量同环比下滑的大背景下,今年的车市恐将不会太平。尤其是诸多头部新能源车企接连发动价格战,搅乱了整个市场的节奏,更让消费者的观望情绪浓厚。如何面对这样的情况?如何做好战略布局,穿越这个更为艰难的周期?以上汽通用五菱为例,...

  • 重磅策划丨比亚迪杜国忠:2023年,重点发力品牌多样化、业务国际化

    2023-12-18

    作为目前国内唯一一家不会被外企供应商卡脖子的新能源车企,比亚迪近些年站在了整个新能源汽车的制高点。正是在核心技术高地的领先,让比亚迪抵御了市场、上游供应链的周期风险,在2022年登顶中国车市冠军宝座,创造了中国车企史上最好成绩。而展望2023年及未来的新能源汽车市场,能够再次成功穿越技术与市场周期的顶流品牌,一定具备技术驱动与长期主义这两大特质,因为唯有坚持这两项核心内容,才能让企业平稳穿越技术变革与市场格局重组带来的行业巨变周期。由此来看,比亚迪有望在未来几年里,持续扮演中国车市乃至世界新能源车市的霸主角色。也...

  • 焦点报道丨吉利银河甫一出道即遭“网暴”,谁是幕后推手?

    2023-12-18

    疫情三年,面对需求收缩、供给冲击、预期转弱三重压力之下,中国车市在负重中前行。随着2023年年初疫情防控政策战略性调整,人流熙攘,车水马龙,久违的烟火气又回来了。疫情放开之后,吉利银河打响了车市第一炮,旗下全新中高端新能源系列银河正式发布,同期带来的还有具有颠覆实力的新能源电气化技术,诸如“神盾电池安全系统、雷神电混8848、银河N OS操作系统、天地一体智驾方案”等,承载了着吉利造车二十多年来的技术沉淀,都是吉利全栈自研的科技干货。尤为值得一提的是,由“银河”命名引发的车圈海报引发了久违的大狂欢,包括比亚迪、长安深...

  • 重磅策划丨雷达汽车:确立“1+N+X”方案,为用户和社会创造新价值

    2023-12-18

    从销量数据来看,2022年是新能源汽车的又一个“丰收年”。但对于身处其中的造车新势力而言,2022年却是事关生死的变革之年。“头部”蔚小理销量不及预期,处于艰难“保级”的状态,身处二线的哪吒反倒依靠“低价走量”的营销路线冲到前端,而没有跟上队的威马、自游家、恒驰、爱驰、天际等摇摇欲坠,似乎被淘汰只是时间的早晚。但放眼前景广阔的新能源车市,依然有挑战者进场。以去年7月份正式发布的RADAR品牌(中文名称为“雷达”)为例,其以无忧的生活方式,无界的探索精神,无痕的环保理念为品牌价值,立足“新能源+多元”新赛道,聚焦用户多元...

  • 重磅策划丨极狐汽车沈鹏:2023全方位出击,开拓新局

    2023-12-18

    在政策和市场的双重作用下,2022年国内新能源汽车实现“超预期”增长,市场占有率达到了25.6%。但随着国补退坡,新能源汽车从政策驱动逐渐转为完全市场驱动,再加上头部新能源车企轮番打价格战,使得2023年的国内新能源汽车市场,以及车企的未来之路充满挑战。以极狐汽车为例,作为中国新能源第一股北汽蓝谷转型高端的关键,2022年极狐汽车的各项数据基本上都跑赢了大盘。据了解,2022年极狐销量同比增长144%,远超行业81.6%的增速;在20-35万价格区间市场,极狐的份额也由2021年的0.9%增长到了2022年的1.3%,排名也由第八名提升到了第七名。不过,20...

  • 再获IIHS“顶级安全之选+”大奖,沃尔沃XC90为何能够屡战屡胜?

    2023-12-18

    身处信息大爆炸的年代中,各大车企都在绞尽脑汁地树立差异化优势,或豪华、或运动,或省油、或耐用的“车设”,成为融合产品与营销之后的销量驱动力。在安全性能层面,沃尔沃汽车凭借着数十年来屹立不倒的“车设”,成为豪华市场中鲜被模仿、难以比肩更无法超越的品牌。沃尔沃汽车创立的独特“豪华观”,实现从关注产品到聚焦用户本身,更将最重要、但也最容易被忽视的“安全性能”提升到了极致。既在意料之外,又在情理之中的是,沃尔沃XC90及XC90 T8车型再获美国高速公路安全保险协会(IIHS)颁发的2023年度顶级安全之选+大奖,进一步夯实了其在安...

  • 焦点报道丨心高气傲的邓承浩,被“腰斩”的销量浇了个透心凉?

    2023-12-18

    “我的目标,至少要把这个产品做到一万七八一个月的量,上市后第一个月至少收到5万台订单,击穿15-30万元区间市场。”这是去年长安新能源CEO邓承浩在接受媒体采访时放出的豪言壮语,如今再来审视这番话,会发现想象和现实的差距不是一般的大。近期,诸多新能源车企都陆陆续续公布了2月份销量数据。如下表所示,虽然2023年1月份经历了销量低迷时刻,但2月份绝大多数新能源车企都恢复了战斗力,拿出了环比正幅增长的销量数据,展现了回暖的一面。不过,环比依然大幅度下滑33%的长安深蓝是个例外,使其成为名单中唯一销量下滑的车企。“众人皆醒而长安...