赞
踩
常有场景需要使用 ARM 作为主控,通过 ARM 的外设并行 RAM 类总线外挂 FPGA ,使用 FPGA 来做高速的数据采集或者运算的架构,在通信,医疗电子等等行业,这都屡见不鲜;
如以ARM作为主控,采用FSMC外设外挂FPGA,使用FPGA做高速运算(DDS等)。
最近在学习嵌入式Linux,好奇为什么STM32能否移植linux系统。于是,我查阅相关文章及论文答疑解惑。
嵌入式系统分为软件和硬件两部分:
①硬件:主要包括核心处理器芯片、内存和存储芯片等外围芯片;
②软件:主要包括有嵌入式系统运行的引导程序如uboot、操作系统(如linux)、底层设备驱动及应用软件等。
系统硬件核心是处理器芯片,市面上常见的处理器架构主要是有ARM、Power和MIPS。常用的嵌入式操作系统是linux系统。
STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex®-M0,M0+,M3, M4和M7内核。
STM32采用的是ARM的Cortex-M系列指令集,所以问题可以转换为Cortex-M指令集能否跑linux?
在解决问题前,我们需要先了解一下ARM架构。
ARM(Advanced RISC Machines)指精简指令集计算机设备,使用 ARM 技术生产的各种型号芯片称为 ARM 处理器。
ARM公司使用RISC技术设计芯片,给其他公司授权芯片IP core。ARM处理器从ARMv4系列开始得到市场广泛认可。在ARMv7开始,其指令集架构变成3种款式,即目前大家熟知的Cotex-M、 Cotex-R、 Cotex-A。
Cortex-A :针对高端领域的处理器,在移动互联设备、数字电视等领域使用广泛。
Cortex-R :在实时性方面有巨大优势,应用领域例如智能汽车、消费电子等。
Cortex-M:主要优势为低成本和低功耗,主要应用于微控制领域,如工业控制和家用电器等
不能!
Cortex-M系列处理器是没有内存管理单MMU。
linux是非实时性操作系统,多进程是其主要特点。
多进程依赖于内存管理单元MMU。换而言之,Linux操作系统对MMU具有极强的依赖性。
所以cortex-M不建议跑Linux!
cortex-M可以跑实时操作系统,因此不涉及到线程间的地址空间分配,不需要使用MMU,例如ucos、 FreeRTOS、 RT-Thread等。
STM32各芯片产商国产芯片平替可见链接:https://www.eet-china.com/mp/a59611.html。
因国家与美国的芯片战于20年早已打响,STM32芯片价格过高!STM32F103ZET6的售价为379元。
北京兆易创新科技股份有限公司生产的GD32F103VET6可作为STM32的平替,价格是前者的1/7。(实话说芯片还是好贵,希望全球芯片危机早早过去,也希望我国半导体行业能解决卡脖子问题,打赢贸易战!)
替换时的注意事项查看https://www.21ic.com/article/885505.html。
手环开源码:https://github.com/FASTSHIFT/WatchX
计划使用littleVGL进行嵌入式GUI设计。
littleVGL可以说是近些年才刚开始流行的一个小型开源嵌入式GUI库,具有界面精美,消耗资源小,可移植度高,响应式布局等特点,全库采用纯C语言开发。
正点原子littleVGL学习视频:https://www.bilibili.com/video/BV1ug4y1q7ha?p=1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。