创作

完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

3天内不再提示

学习嵌入式技术的重点分享

c-stm32 来源:搜狐网 作者:搜狐网 2020-09-23 11:05 次阅读

很多人嵌入式学习都有些迷茫,不知道从哪里入手,不知道自己的水平位于哪个层次,不知道从哪方面提升,今天我们就从一个8年工作经验的嵌入式资深工程师的分享,来看一下嵌入式学习那些你绕不开的技术点。

一位朋友做嵌入式这行已经8年,也算是一个老工程师了,工作多年,做过MCUDSPARM、ARM+DSP、ARM+FPGA等等芯片。把嵌入式学习的一些绕不开的技术点整理了一下下,希望对嵌入式初学者有些帮助。

嵌入式绕不开各种接口

比如:uart 、spii2cusb、eth、mipi、edp、can、i2s、hdmi等等。需要了解各接口的使用场景、带宽、机制、时序、工作模式、缺点,时序等等。我相信硬件接口这一块儿就会让很多新手摸不到头脑吧。

嵌入式绕不开交叉编译工具

嵌入式一般都需要自己搭建交叉编译工具链,当然MCU类的开发也会有成熟的IDE可供使用。但是对于编译器而言一般都是GCC。对于嵌入式开发人员来说,搭建交叉编译工具链。编译过程分为 ——预编译、编译、汇编、链接。通过GCC提供的工具可以使程序完成任一阶段的处理。要清楚各个阶段主要完成了什么工作。链接分为静态链接、动态链接,各自的优缺点及使用场景要知道。同时编译生成ELF格式的文件,要理解ELF文件的格式、必要的时候需要通过objdump或readelf工具来解析ELF文件。

嵌入式开发绕不开调试

嵌入式开发的很大一部分时间都在调试,好的调试方法和工具可以更快速的定位问题。学习过程中需要了解的工具:

vargrind

gdb

kdump

corddump

oops

嵌入式开发离不开优化

嵌入式的优化分为两部分,算法上的优化,编程上的优化。其中编程上的优化分为以下技术:

内存使用上的优化-cacheline的使用。cache涉及到cache命中率、cache一致性,write-back,wrte-through等。全局变量问题、常用变量位置问题、互锁问题。

并行优化主要是SIMT或SIMD技术的应用,包括GPU的使用,NEON优化、SSE优化等。其中并行分为任务并行和数据并行,任务并行是多核方面的优势,数据并行是GPU和NEON来解决。

依赖性问题主要是流水线问题,避免数据的依赖性可以高效的使用流水线。至于这部分的优化要借助反汇编,来对比不同写法造成的差异。

很多人对驱动开发有技术情节,越是年轻的工程师越是这样。驱动的开发本质上就是给外设配置参数,使其工作在期望的方式。linux下的驱动开发需要遵从linux的驱动框架,裸机的驱动开发就是直接配置寄存器就可以。linux有一个很好的理念,就是万物皆文件。linux将外设也会抽象成文件,读写外设和读写文件在操作上没有了区别。linux下的设备,分为字符型设备、块设备、网络设备。linux下注册驱动的时候,将设备号和文件名进行了映射,并实现file_operation里的一些函数,例如,write、read、ioctl。其中write、read主要用于读写外设的有用数据。ioctl主要用于配置外设的一些参数,使其工作在不同的模式或状态。

其实嵌入式指的就是嵌入式操作系统,操作系统有很多种。vxworks、ucosfreertos、bios、linux、uclinux、nuttx等等。对于操作系统的选择个人感觉要看实时性、以及生态。生态很重要,这样出现问题的时候,才不至于绝望,感觉不是孤军奋斗。其实操作系统的出现,主要是为了解决任务调度、内存管理。这两方面是操作系统的精髓。感兴趣可以阅读源码。ucos的源码不多,可以从它看起。

总结

嵌入式的东西很多,想要整理起来,也是很花费力气的一件事情,有时间我就会慢慢的整理,当然如果对别人有用的话,那就更好。

目前AI异常火爆,现阶段大家都停留在功能实现上,至于端测的落地,个人感觉还有一小段距离要走。当AI落地的时候,我相信市场上对嵌入式工程师、硬件工程师的需求会越来越大。尤其是涉及到性能优化方面,我相信应该会有很大的市场吧。

原文标题:学习嵌入式绕不开的技术点

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    智芯公司嵌入式操作系统枢纽4.0安全性达到国际安全性最高标准

    5月25日,智芯公司自主研发的嵌入式操作系统——枢纽4.0(以下简称枢纽4.0)获工信部赛宝实验室功....
    的头像 科技见闻网 发表于 05-27 11:11 308次 阅读
    智芯公司嵌入式操作系统枢纽4.0安全性达到国际安全性最高标准

    2022 RT-Thread全球技术大会:实时嵌入式操作系统概述

    RT-Thread全球技术大会:嵌入式实时操作系统的昨天、今天和明天 主要从四个方面进行介绍,首先对....
    的头像 牵手一起梦 发表于 05-27 10:42 126次 阅读
    2022 RT-Thread全球技术大会:实时嵌入式操作系统概述

    【i.MX6ULL】驱动开发10—阻塞&非阻塞式按键检测

    本篇使用两种I/O模型进行按键读取:阻塞式I/O和非用阻塞式I/O,通过实际的实验,对比两者方式的实....
    的头像 码农爱学习 发表于 05-27 09:08 1438次 阅读
    【i.MX6ULL】驱动开发10—阻塞&非阻塞式按键检测

    自连数字一体化手术室方案提供数据高度共享的技术条件

    自连解决方案通过对手术室内各类医疗器械无线联网升级,例如呼吸机、监测仪、手术显微镜、内窥镜、麻醉站、....
    的头像 科技绿洲 发表于 05-26 16:42 273次 阅读

    【i.MX6ULL】驱动开发9——Linux I/O模型分析并进来类比

    本篇介绍了Linux中的五种I/O模型:阻塞式I/O模型、非阻塞式I/O模型、I/O复用模型、信号驱....
    的头像 码农爱学习 发表于 05-26 09:05 1143次 阅读
    【i.MX6ULL】驱动开发9——Linux I/O模型分析并进来类比

    全志H6开发板香橙派OrangePi 3 LTS在 Linux系统中安装Home Assistant的方法

    注意事项: 本篇介绍的是通过docker安装 Home Assistant 的方式,并且只提供在 Ubuntu 或者 Debian 系统中的安装方法, H...
    发表于 05-25 19:41 1221次 阅读
    全志H6开发板香橙派OrangePi 3 LTS在 Linux系统中安装Home Assistant的方法

    嵌入式工控主板的应用优势

    在我国加工制造领域和各种生产领域之中相关的自动化技术应用之下,要求更多专业的控制主板来提高系统运转的....
    的头像 kimkylin 发表于 05-25 15:31 38次 阅读

    嵌入式主板的常见种类及应用领域

    嵌入式主板一般理解为嵌入在设备里面做控制、数据处理使用的CPU板,也就是设备的"大脑"。嵌入式到设备....
    的头像 kimkylin 发表于 05-25 15:24 92次 阅读

    微型转换器取代电力轨道集群的方法

      市场正在提供越来越多的带有硬件加密引擎的高端通用微控制器。然而,仅仅因为微控制器具有硬件加密引擎....
    的头像 星星科技指导员 发表于 05-25 15:07 103次 阅读

    振弦采集模块VM,如何修改通讯速率?

    振弦采集模块VM系列,如何修改通讯速率?
    发表于 05-25 10:43 1500次 阅读

    【i.MX6ULL】驱动开发8—中断法检测按键 Linux中断和定时使用方法

    本篇主要介绍了Linux中断的使用方法,通过按键来进行中断实验测试,并使用Linux定时器进行按键去....
    的头像 码农爱学习 发表于 05-25 09:09 1375次 阅读
    【i.MX6ULL】驱动开发8—中断法检测按键 Linux中断和定时使用方法

    触控工业显示器内嵌安装与外嵌安装如何选

    嵌入式安装是一种常见的安装方式,它可以让两个物体贴合安装,形成一个整体,看上去简洁、美观且不占空间,....
    发表于 05-24 17:39 13次 阅读

    基于TI AM5728 + Artix-7 FPGA开发板(DSP+ARM) 5G通信测试手册

    前 言本文主要基于我司TL5728F-EVM评估板 + 移远RM500Q 5G模块演示5G网络的功能。 本指导文档适用开发环境:Window...
    发表于 05-24 17:26 1174次 阅读

    使用安全身份验证器保护您的医疗设备端点

      安全认证器通过提供基于硬件的加密、固定功能操作来应对威胁;安全存储;和攻击对策。借助这些 IC ....
    的头像 星星科技指导员 发表于 05-24 16:41 323次 阅读
    使用安全身份验证器保护您的医疗设备端点

    安全IC如何保护物联网设备中的传输数据

     为了拥有真正安全的 TLS 方案并避免我们讨论过的陷阱,需要遵循一组最低限度的规则。在使用时保护会....
    的头像 星星科技指导员 发表于 05-24 16:19 379次 阅读

    深入介绍嵌入式开发中三种不同的程序架构

    三种常用的软件架构有:顺序执行的前后台系统、时间片轮询系统和多任务操作系统:STM32单片机开发中的....
    的头像 STM32嵌入式开发 发表于 05-24 16:02 310次 阅读

    Linux驱动开发_mplayer播放器开发

    USB wifi (360) : 如何从官网下载源码进行代码移植、安装相关无线工具、让嵌入式设备支持....
    的头像 DS小龙哥-嵌入式技术 发表于 05-24 09:56 225次 阅读
    Linux驱动开发_mplayer播放器开发

    如何通过PUF技术防止侵入式攻击

      Maxim 的第一款 PUF 产品是采用 ChipDNA™ 技术的 DS28E38 DeepCo....
    的头像 星星科技指导员 发表于 05-24 09:47 158次 阅读
    如何通过PUF技术防止侵入式攻击

    VM振弦采集模块 ,使用时单次测量和连续测量的区别是什么?

    发表于 05-24 09:41 1217次 阅读

    学好嵌入式Linux,需不需要全精通?专家给的建议一语中的!

    学习之前,一定要弄清楚自己要从事的方向。对于嵌入式开发,方向就分为很多种。比较主流的方向是单片机、L....
    的头像 jf_35791075 发表于 05-24 09:27 2次 阅读
    学好嵌入式Linux,需不需要全精通?专家给的建议一语中的!

    i.MX6ULL 驱动开发7—按键输入捕获与GPIO输入配置与高低电平读取

    本篇主要介绍了i.MX6ULL的按键检测的使用,主要的知识点是设备树的修改,以及GPIO的输入配置与....
    的头像 码农爱学习 发表于 05-24 09:11 2115次 阅读
    i.MX6ULL 驱动开发7—按键输入捕获与GPIO输入配置与高低电平读取

    基于TI AM5728 Artix-7通信综合开发案例

    此案例来源于:创龙科技测试板卡为:TISitara系列AM5728+XilinxArtix-7FPG....
    发表于 05-23 18:03 8次 阅读

    创龙基于AM57X 的CPSW网口SWITCH模式使用说明

    此案例来源于:创龙科技测试板卡为:TISitara系列AM5728+XilinxArtix-7FPG....
    发表于 05-23 17:23 7次 阅读

    TI AM57X FPGA MicroBlaze裸机案例开发

    此案例来源于:创龙科技测试板卡为:TISitara系列AM5728+XilinxArtix-7FPG....
    发表于 05-23 17:23 5次 阅读

    嵌入式开发中串口通讯方案

    在嵌入式开发中,经常会用到串口通讯。面对不同应用场景,需要不同的方案。
    的头像 小麦大叔 发表于 05-23 11:48 296次 阅读

    电路设计中常用的滤波方法锦集

    在整流电路输出的电压是单向脉动性电压,不能直接给电子电路使用。所以要对输出的电压进行滤波, 消除电压....
    的头像 嵌入式应用开发 发表于 05-22 16:09 459次 阅读
    电路设计中常用的滤波方法锦集

    【i.MX6ULL】驱动开发6——GPIO子系统点亮LED

    本篇介绍了使用**Pinctrl子系统与GPIO子系统**的方式来点亮LED,与之前的寄存器版点亮L....
    的头像 码农爱学习 发表于 05-21 21:50 1576次 阅读
    【i.MX6ULL】驱动开发6——GPIO子系统点亮LED

    【i.MX6ULL】驱动开发5——设备树原理与点亮LED

    本篇介绍了设备树的基本原理以及设备树的使用方法,在上一篇点亮LED的代码基础上,通过设备树的方式,实....
    的头像 码农爱学习 发表于 05-21 21:41 1538次 阅读
    【i.MX6ULL】驱动开发5——设备树原理与点亮LED

    【i.MX6ULL】驱动开发4——点亮LED(寄存器版)

    本篇主要介绍了如何通过操作寄存器来点亮i.MX6ULL开发板上的led,通过编写LED对应的驱动程序....
    的头像 码农爱学习 发表于 05-21 21:26 1414次 阅读
    【i.MX6ULL】驱动开发4——点亮LED(寄存器版)

    了解系统可靠性何时以及为何如此重要

      Maxim Integrated 推出了一款旨在保持系统高可靠性的新型低功耗微控制器:MAX32....
    的头像 星星科技指导员 发表于 05-21 07:19 84次 阅读

    STM32嵌入式显示器创建一个有答案的生态系统

      工程师可以通过选择是否使用触摸面板、光学或空气粘合、触摸检测的形状以及是否添加框架来定制他们的 ....
    的头像 星星科技指导员 发表于 05-21 07:02 86次 阅读

    「案例分享」基于 AM57x+ Artix-7 FPGA开发板——PRU开发手册详解

    PRU-ICSS(可编程实时单元子系统和工业通信子系统,简称PRU)由双32位RISC核(PRU可编程实时单元)、共享数据和...
    发表于 05-20 17:10 5597次 阅读

    NIST认证和测试为安全解决方案提供信心

    NIST 的成立是为了通过纠正二流的测量基础设施来提高美国企业的竞争力。由于主要优先事项是互操作性,....
    的头像 星星科技指导员 发表于 05-20 16:18 287次 阅读

    ARM怎样去设置imx6开发板的IP地址呢

    imx6 开发板网络相关配置 声明: 每位 imx6开 发板 用户的网络使用环境未必相同,本次操作基于飞凌嵌入式imx6开发板, 网络环境...
    发表于 05-20 15:10 3658次 阅读

    5g NR 入门 --带你了解新无线电通信领域的先进技术

    了解基础的5g NR (新无线电) ,包括其频带,应用,什么技术使之成为可能        5G 是无线智能手机通...
    发表于 05-20 10:33 782次 阅读
    5g NR 入门 --带你了解新无线电通信领域的先进技术

    Zbox-FS零公开、重隐私的嵌入式文件系统

    ./oschina_soft/zbox.zip
    发表于 05-20 09:33 13次 阅读
    Zbox-FS零公开、重隐私的嵌入式文件系统

    RT—thread线程启动详解

    就序列表实现 就序列表实际上就是一个数组,用来存放优先级不同的线程,系统默认最大的线程数量为32个,....
    的头像 嵌入式应用开发 发表于 05-19 16:17 244次 阅读
    RT—thread线程启动详解

    stm32裸机RT—thread开始创建线程详解

          在裸机系统 中,他们统统放在一个叫栈的地方,栈是单片机RAM里面一段连续的内存空间,栈的....
    的头像 嵌入式应用开发 发表于 05-19 15:02 190次 阅读
    stm32裸机RT—thread开始创建线程详解

    嵌入式ARM9 S3C2451如何配置GPIO引脚功能呢

    博主以循循渐进的方式理解 总结如下: GPxCON   配置引脚功能          &...
    发表于 05-19 14:59 3606次 阅读

    想请教下关于单片机io内部结构和内阻的问题

    我看有说单片机内部有很大的内阻,那么想请问下: 问题一:(1)输出时:io可否直接接地?(2)输入时:io可否直接接vcc? 现实...
    发表于 05-19 01:10 1612次 阅读

    Debian系统移植USBWIFI RTL8192EU驱动

    作者: donatello1996 来源:电子发烧友 原文标题: 【飞凌嵌入式OKMX8MP-C 开....
    的头像 柠檬籽儿 发表于 05-18 15:15 281次 阅读
    Debian系统移植USBWIFI RTL8192EU驱动

    传感器引脚为什么要直接串联电容到地?

    传感器引脚为什么要直接串联电容到地?
    发表于 05-18 12:32 6250次 阅读
    传感器引脚为什么要直接串联电容到地?

    移植RT-Thread到STM32开发板的详细步骤例程

    本章开始,先新建一个基于野火STM32全系列(包含M3/4/7)开发板的的RT-Thread的工程模....
    的头像 嵌入式应用开发 发表于 05-18 09:14 1357次 阅读
    移植RT-Thread到STM32开发板的详细步骤例程

    或许智能家居不再是简单的智能设备控制

    说到智能家居你会想到什么,语音声控、自动感知、人性化设置、住宅家居一体化?随着综合布线技术、网络通信....
    发表于 05-17 14:26 49次 阅读

    高性能超值系列微控制器具有更多可能性

      传统上,竞争的微处理器制造商在环境温度升高时试图全速运行 CPU 时会遇到散热问题。因此,开发人....
    的头像 星星科技指导员 发表于 05-17 09:52 239次 阅读

    STM32 Step-by-Step如何加快开发速度

    STM32 Step-by-Step 的另一个基本方面是我们的新社区。多年来,许多成员都表达了学习如....
    的头像 星星科技指导员 发表于 05-16 16:23 277次 阅读

    BlueNRG-Mesh创建蓝牙网状网络解决方案

      通过 STM32Cube 的X-CUBE-BLEMESH1扩展软件包,在连接到 NUCLEO-L....
    的头像 星星科技指导员 发表于 05-16 16:02 223次 阅读

    RoweBots在STM32系列MCU方面的应用

      更传统的软件编辑器自己编写所有东西,但这通常会使他们的系统更难使用,并且当团队试图重新发明轮子时....
    的头像 星星科技指导员 发表于 05-15 16:57 294次 阅读

    STM32MP1微控制器具有丰富功能集的灵活架构

      除此之外,STM32MP1 还得到广泛的 ST 合作伙伴生态系统的支持,以帮助开发图形用户界面、....
    的头像 星星科技指导员 发表于 05-15 09:55 411次 阅读

    嵌入式STM32L452CCU6 STM32L432KCU6简述

    嵌入式技术 STM32L452CCU6 STM32L432KCU6 32位ARM微控制器 参数
    发表于 05-14 16:28 140次 阅读

    Qorvo可扩展电源供应和管理平台可最大限度地减少能源消耗

    Qorvo 的可扩展电源供应和管理平台可用于工业、商业和消费设备市场终端应用,以及任务关键型国防应用....
    的头像 科技绿洲 发表于 05-13 17:09 542次 阅读

    嵌入式软件详细设计

    该文档在概要设计的基础上,进一步的细化系统结构,展示了软件结构的图标,物理设计、数据结构设计、及算法....
    的头像 硬件攻城狮 发表于 05-13 14:23 176次 阅读

    TouchGFX 4.13生成器使GUI更易于访问

      TouchGFX 4.13 还附带了许多错误修复和优化。任何穷举的尝试都是徒劳的,因此我们将满足....
    的头像 星星科技指导员 发表于 05-13 10:08 130次 阅读

    经纬恒润自主研发出符合AUTOSAR标准的软件产品

    INTEWORK-EAS(ECU AUTOSAR Software,以下简称EAS)是经纬恒润自主研....
    的头像 经纬恒润 发表于 05-12 17:50 438次 阅读

    内核oops错误原因及处理方法

    最近在调试设备时,遇到了一个偶发的开机死机问题。通过查看输出日志,发现内核报告了oops错误,如下所....
    的头像 Linux阅码场 发表于 05-12 16:20 395次 阅读

    EDT与GUI框架TouchGFX如何极大地加速开发

      评估套件包括一个项目示例,该示例使用模块上所有可用的接口,从 RS232 到 RS485、CAN....
    的头像 星星科技指导员 发表于 05-12 15:50 182次 阅读

    在正确的内存配置中获得更高的性能

    有效的工厂和家庭自动化要求应用程序处理大量数据。例如,人们可能会使用振动监测来依赖预测性维护。然而,....
    的头像 星星科技指导员 发表于 05-12 14:21 217次 阅读

    具有成本效益的MCU面临独特的挑战

      开发人员现在面临的挑战是利用部分帧缓冲。实际上,它要求团队考虑最适合此功能的动画类型。例如,传统....
    的头像 星星科技指导员 发表于 05-12 11:02 211次 阅读

    用OpenSTLinux帮助决定合适的嵌入式Linux发行版

      OpenSTLinux 提供了三个包。STM32MP1Starter是启动演示和试用我们的开发板....
    的头像 星星科技指导员 发表于 05-12 10:49 164次 阅读

    STM32Cube是什么?

    在 ST 公司的发展过程中,STM 系列嵌入式单片机也得到了飞速发展,目前 STM32 系列单片机(....
    的头像 STM32单片机 发表于 05-12 10:42 229次 阅读