![](https://img-blog.csdnimg.cn/direct/425b9e54b46a4952abbf1dd095f225b7.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
嵌入式智能产品开发实战
文章平均质量分 95
本栏目让您以实践的形式,全面掌握“嵌入式架构的智能硬件领域产品”的开发技能、核心认知、实战技巧,从基础到大师,驾驭未来人工智能领域的嵌入式智能硬件产品开发。轻量级“人工智能硬件”,从嵌入式软硬件体系发展而来,在AI领域的感知、交互、边缘计算等方面有重要作用,是您在未来一定要学习了解的关键知识链之一。
政安晨
专注于人工智能感知交互技术的研究与产品实践,双一流大学软件领域硕士,数十项发明专利授权,18年+行业经验。
展开
-
【嵌入式智能产品开发实战】(十六)—— 政安晨:通过ARM-Linux掌握基本技能【Linux shell揭秘】
Linux的shell有多种,其中最常用的是Bash(Bourne Again SHell),也有其他一些比如Csh、Ksh等。Bash兼容Bourne shell,并且在功能上更加强大和灵活。Linux的shell可以执行各种命令和程序,比如文件操作、进程管理、网络操作等。它还支持通配符和正则表达式,可以方便地进行文件搜索和批量操作。除了执行单个命令外,shell还支持命令的组合和管道。通过使用逻辑运算符(如&&和||)和管道符(|),可以将多个命令连接起来,实现复杂的操作。原创 2024-04-05 05:45:00 · 1138 阅读 · 0 评论 -
【嵌入式智能产品开发实战】(十五)—— 政安晨:通过ARM-Linux掌握基本技能【GNU C标准与编译器】
大家在看一些GNU开源软件,或者阅读Linux内核、驱动源码时会发现,在Linux内核源码中,有大量的C程序看起来“怪怪的”。说它是C语言吧,貌似又和教材中的写法不太一样;说它不是C语言吧,但是这些程序确确实实保存在一个C源文件中。此时,你肯定怀疑你看到的是一个“假的”C语言!我们在Linux驱动开发,或者阅读Linux内核源码过程中,会经常遇到这些“稀奇古怪”的用法,如果不去了解这些特殊语法的具体含义,可能就会对我们理解代码造成一定障碍。原创 2024-04-03 05:45:00 · 1096 阅读 · 1 评论 -
【嵌入式智能产品开发实战】(十四)—— 政安晨:通过ARM-Linux掌握基本技能【链接静态库与动态库】
在一个软件项目中,为了完成特定功能,除了自定义函数,我们还可以使用别人已经封装好的函数库,如C标准库、音视频编解码库等。库函数的使用避免了“造轮子”的重复工作,提高了代码复用率,大大减轻了软件开发的工作量。库分为静态库和动态库两种。如果我们在项目中引用了库函数,则在编译时,链接器会将我们引用的函数代码或变量,链接到可执行文件里,和可执行程序组装在一起,这种库被称为静态库,即在编译阶段链接的库。动态库在编译阶段不参与链接,不和可执行文件组装在一起,而是在程序运行时才被加载到内存参与链接,因此又叫作动态链接。原创 2024-04-02 21:01:03 · 1350 阅读 · 1 评论 -
【嵌入式智能产品开发实战】(十三)—— 政安晨:通过ARM-Linux掌握基本技能【运行环境】
ARM-Linux中的C语言程序在ARM架构、Linux操作系统、C语言编译器、C运行时库和虚拟内存管理的支持下,可以在ARM-Linux系统上编译和运行。这些组成部分提供了丰富的功能和接口,使得开发者可以方便地编写、编译和运行C语言程序。在不同的环境下执行程序,文件的格式一般也会不一样,如在Linux环境下,可执行文件是ELF格式,而在裸机环境下执行的程序一般是BIN/HEX格式。两种程序虽然运行环境不同,文件格式也有所差异,但原理是相通的:都要将指令加载到内存中的指定位置。原创 2024-04-01 06:00:00 · 1232 阅读 · 1 评论 -
【嵌入式智能产品开发实战】(十二)—— 政安晨:通过ARM-Linux掌握基本技能【C语言程序的安装运行】
在ARM-Linux系统中,C语言程序的安装和运行可以按照以下步骤进行:1.准备交叉编译工具链;2.编写C语言程序;3.使用交叉编译工具链编译程序;4.将可执行文件传输到ARM-Linux系统;5.在ARM-Linux系统中运行程序.原创 2024-03-29 05:45:00 · 1997 阅读 · 1 评论 -
【嵌入式智能产品开发实战】(十一)—— 政安晨:通过ARM-Linux掌握基本技能【C语言程序的链接过程】
在一个C项目的编译中,编译器以C源文件为单位,将一个个C文件翻译成对应的目标文件。生成的每一个目标文件都是由代码段、数据段、BSS段、符号表等section组成的。这些section从目标文件的零偏移地址开始按照顺序依次排放,每个段中的符号相对于零地址的偏移,其实就是每个符号的地址,这样程序中定义的变量、函数名等,都有了一个暂时的地址。这些目标文件是不可执行的,它们需要经过链接器链接、重定位后才能运行。链接主要分为3个过程:分段组装、符号决议和重定位。原创 2024-03-21 06:00:00 · 924 阅读 · 1 评论 -
【嵌入式智能产品开发实战】(十)—— 政安晨:通过ARM-Linux掌握基本技能【C语言程序的编译过程】
在ARM-Linux中,C语言程序的编译过程主要包括预处理、编译、汇编和链接四个阶段:1. 预处理阶段:预处理器根据源代码中的预处理指令。2.编译阶段:编译器将预处理阶段生成的中间文件进行词法分析、语法分析和语义分析,生成目标代码。3.汇编阶段:汇编器将目标代码转化为机器指令,生成与特定硬件平台相关的机器代码文件。4.链接阶段:链接器将汇编阶段生成的机器代码文件与其他目标文件、库文件进行链接,生成最终的可执行文件。原创 2024-03-20 07:00:00 · 885 阅读 · 2 评论 -
【嵌入式智能产品开发实战】(九)—— 政安晨:通过ARM-Linux掌握基本技能【C语言程序的预处理过程】
本文在ARM-LInux系统中演绎C语言程序的预处理过程。C语言程序的预处理是在编译阶段之前进行的,主要包括以下几个步骤:1.去除注释:预处理器会将程序中的注释去除,不会传递给编译器。2.头文件包含:预处理器会根据程序中的#include指令,将对应的头文件内容插入到程序中。3.宏替换:预处理器会根据程序中定义的宏,将宏的引用替换为相应的内容。4.条件编译:预处理器会根据程序中的条件编译指令,决定是否编译相应的代码段。5.处理特殊指令:预处理器还可以处理特殊的预处理指令。原创 2024-03-20 06:00:00 · 1992 阅读 · 1 评论 -
【嵌入式智能产品开发实战】(八)—— 政安晨:通过ARM-Linux掌握基本技能【C语言程序的编译过程】
在ARM-Linux中,C语言程序的编译链接安装运行过程如下所示:1. 编写C语言代码:首先,使用文本编辑器编写C语言程序的源代码,并保存为以.c为扩展名的文件。2. 编译源代码:使用交叉编译器将C语言源代码编译为ARM架构下的可执行二进制文件。3. 链接可执行文件:编译器将源代码编译为目标文件后,链接器会将目标文件与所需的库文件进行链接,生成可执行文件。4. 安装可执行文件:将生成的可执行文件安装到ARM-Linux系统中的适当位置。5. 运行程序。原创 2024-03-19 06:00:00 · 1146 阅读 · 1 评论 -
【嵌入式智能产品开发实战】(七)—— 政安晨:通过ARM-Linux掌握基本技能【环境准备:树莓派】
ARM-Linux是一种针对ARM架构的操作系统,它的设计目标是在低功耗、低成本的硬件平台上运行。ARM-Linux可以运行在多种ARM处理器上,包括树莓派。树莓派(Raspberry Pi)是一款基于ARM架构的单板计算机,由英国的树莓派基金会开发。它具有小巧、低功耗、易于使用和开发的特点。树莓派主要用于教育、嵌入式系统、物联网和个人项目等领域。树莓派是我们能得到的相对廉价且通用的ARM-Linux开发板,可以演绎从AI到物联网的各种实验。原创 2024-03-18 06:00:00 · 1845 阅读 · 1 评论 -
【嵌入式智能产品开发实战】(六)—— 政安晨:通过ARM-Linux掌握基本技能【认知准备:体系结构与汇编指令】
ARM-Linux体系是指基于ARM架构的Linux操作系统体系,其它常见的体系还有x86-Linux体系等。ARM架构是一种常用于移动设备和嵌入式系统的处理器架构,如手机、平板电脑、智能手表等都广泛使用ARM处理器。ARM-Linux体系基于Linux开源操作系统,并针对ARM架构进行了优化和适配。它包括了Linux内核和一系列基于Linux的工具和库,提供了完整的操作系统功能和开发环境,可以运行在各种ARM架构的设备上。原创 2024-03-17 14:20:06 · 1066 阅读 · 1 评论 -
【嵌入式智能产品开发实战】(五)—— 政安晨:嵌入式系统基本素养【总线、地址、指令集、微架构】
在智能硬件领域中,一个核心概念是嵌入式系统,整体结构可以分为以下几个主要组成部分:1.控制器:控制器是嵌入式系统的核心。2.存储器:存储器用于存储系统的程序代码和数据。3.输入/输出接口:输入/输出(I/O)接口用于与外部设备进行通信。4.总线:总线是连接系统中各个组件的通信媒介。5.电源管理:电源管理模块用于管理和控制系统的电源供应。6.实时时钟:实时时钟用于提供系统的基准时钟。7.软件层:嵌入式系统的软件层包括操作系统、驱动程序、应用程序等。原创 2024-03-15 10:00:00 · 1150 阅读 · 1 评论 -
【嵌入式智能产品开发实战】(四)—— 政安晨:嵌入式系统基本素养【后摩尔时代】
随着物联网、大数据、人工智能时代的到来,海量的数据分析、大量复杂的运算对CPU的算力要求越来越高。在集成电路工艺制程将要达到极限,摩尔定律快要失效的背景下,无论是单核CPU,还是多核CPU,处理器性能的提升空间都已经快达到极限了。后摩尔时代被认为是在摩尔定律失效或逐渐失去影响力的基础上出现的,摩尔定律是指集成电路上可容纳的晶体管数量每两年翻一番,这一规律被认为是现代计算机和信息技术发展的驱动力。原创 2024-03-15 06:00:00 · 950 阅读 · 1 评论 -
【嵌入式智能产品开发实战】(三)—— 政安晨:嵌入式系统基本素养【计算机体系结构中的CPU关系】
我们编写的程序存储在哪里呢?CPU内部的结构其实很简单,除了ALU、控制单元、寄存器和少量Cache,根本没有多余的空间存放我们编写的代码,我们需要额外的存储器来存放我们编写的程序(指令序列)。存储器按照存储类型可分为易失性存储器和非易失性存储器。易失性存储器如SRAM、DDR SDRAM等,一般用作计算机的内部存储器,所以又被称为内存。这类存储器支持随机访问,CPU可以随机到它的任意地址去读写数据,访问非常方便,但缺点是断电后数据会立即消失,无法永久保存。原创 2024-03-14 06:00:00 · 965 阅读 · 1 评论 -
【嵌入式智能产品开发实战】(二)—— 政安晨:嵌入式系统基本素养【处理器原理】
嵌入式系统的基本素养包括以下几个方面:硬件知识; 软件编程; 系统设计能力; 实时系统知识;通信协议和接口;调试和故障排除能力;学习和研究能力。原创 2024-03-13 16:40:29 · 1637 阅读 · 1 评论 -
【嵌入式智能产品开发实战】(一)—— 政安晨:从深度认知开始
作者政安晨依据自身多年研发经验,本着成过的功与踩过的坑都是浮云的态度,为各位小伙伴们进行一个系列的智能硬件开发领域的示范解析,让对智能硬件感兴趣的小伙伴们少走弯路。这是一路走一路全是干货的文章系列,相信聪明的您不会失望。小伙伴们要晓得,智能硬件开发的本质是在刀尖上跳舞、在芥子里洞天,要想成为这个领域里面的佼佼者,要有对有限资源的深度驾驭能力,而这个驾驭能力则是建立在对芯片、电路、信号、传感、嵌入式系统、编译、C、RTOS、通信协议等等的深刻理解之上,是背景知识、是经验、也是直觉。原创 2024-03-12 06:00:00 · 1100 阅读 · 0 评论