电子发烧友网>今日头条> > 正文

Linux系统移植篇1:STM32MP1微处理器之源码编译

2021年08月19日 15:17 ? 次阅读

系统移植前说明

关于命令行提示符

在实验步骤中会涉及到执行命令的操作,为区分操作是在Ubuntu上完成还是在开发板上完成,不同操作会有不同的提示符:

Ubuntu操作时命令行提示符为:linux@ubuntu:$

开发板Linux系统下操作时命令行提示符为:root@fsmp1a:$

开发板u-boot期间操作是命令行提示符为:STM32MP>

注意由于部分操作需要进入特定目录下完成,导致命令行提示符较长如

linux@ubuntu:~/FS-MP1A/stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/sources/arm-ostl-linux-gnueabi/u-boot-stm32mp-2020.01-r0/u-boot-stm32mp-2020.01$

过长的命令行提示符不便于文档编写,所以本文中所有命令行提示符均忽略了当前工作目录的显示,命令行提示符不代表当前目录,具体当前操作是在哪个目录下完成,请结合文档上下文确定。

?

1. 源码编译

1.1 源码目录结构

1.1.1 编译环境配置

由于OpenSTLinux所涉及到的源码较多,且有路径的依赖。所以请按照本文的说明建立源码文件夹。

在用户home目录下建立fs-mp1a文件夹。

linux@ubuntu: $ cd ~

linux@ubuntu: $ mkdir fs-mp1a

将工作目录切换到fs-mp1a目录下,建立linux、optee-os、trusted-firmware、u-boot、tools文件夹

linux@ubuntu: $ cd ~/fs-mp1a

linux@ubuntu: $ mkdir linux optee-os trusted-firmware u-boot tools

?

请务必按照此目录名称建立文件夹,否则会导致后续的OpenSTLinux系统编译错误。

?

1.1.2 SDK工具链安装

    1. ?

OpenSTLinux SDK是Yocto SDK定制发行版的软件开发套件,它提供了独立的交叉开发工具链和针对特定镜像中所使用到的特定链接库。

开发资料光盘中提供的SDK是基于FS-MP1A开发板的定制交叉编译工具链,该工具链可用于FS-MP1A开发板中所有项目的编译与调试。

资料光盘下【华清远见-FS-MP1A开发资料\01-工具软件】的en.SDK-x86_64-stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24.tar.xz复制到ubuntu主机中,可以采用共享文件夹的方式也可以使用tfp方式将文件存入FS-MP1A源码目录下的tools文件夹下进行解压。

linux@ubuntu: $ tar -xvf en.SDK-x86_64-stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24.tar.xz -C /home/linux/fs-mp1a/tools/

解压之后得到sdk目录,进入到sdk文件夹之后内容如下。

?

执行st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1-openstlinux-5.4-dunfell-mp1-20-06-24.sh安装脚本。

linux@ubuntu: $ ./st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1-openstlinux-5.4-dunfell-mp1-20-06-24.sh

运行之后会提示输入安装位置,直接按回车键默认即可:

?

继续询问是否安装SDK,输入Y,回车

?

默认安装路径安装在opt目录下,这个目录需要有root权限,所以安装时需要使用sudo安装,过程中需要输入用户的sudo密码(如果当前用户sudo功能已经授权,这个密码就是用户的登录密码),输入密码后开始进行安装。

?

输入密码后等待安装,安装后显示如下:

?

导入sdk

linux@ubuntu: $ source /opt/st/stm32mp1/3.1-openstlinux-5.4-dunfell-mp1-20-06-24/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

验证开发工具是否安装正确,显示版本信息如下图所示。

linux@ubuntu: $ $CC --version

?

1.1.3 源码导入

    1. ?

    2. Bootloader源码

    3. ?

将光盘资料中【华清远见-FS-MP1A开发资料\02-程序源码\05-预装系统源码\u-boot】下的u-boot-fsmp1a-2020.01.tar.xz和Makefile.sdk导入到fs-mp1a目录下u-boot文件夹中

将u-boot-fsmp1a-2020.01.tar.xz解压之后得到u-boot-fsmp1a-2020.01文件夹

linux@ubuntu:$ tar -xvf u-boot-fsmp1a-2020.01.tar.xz

?

? ? ?trusted-firmware源码

  1. ?

将光盘资料中【华清远见-FS-MP1A开发资料\02-程序源码\05-预装系统源码\tf-a】下的fsmp1a-trusted-firmware-2.2.tar.xz和Makefile.sdk导入到fs-mp1a目录下trusted-firmware文件夹中

将fsmp1a-trusted-firmware-2.2.tar.xz解压之后得到fsmp1a-trusted-firmware-2.2文件夹

linux@ubuntu:$ tar -xvf fsmp1a-trusted-firmware-2.2.tar.xz

?

  1. optee_os源码

将光盘资料中【华清远见-FS-MP1A开发资料\02-程序源码\05-预装系统源码\optee】下的fsmp1a-optee_os-3.9.0.tar.xz和Makefile.sdk导入到fs-mp1a目录下optee-os文件夹中

将fsmp1a-optee_os-3.9.0.tar.xz解压之后得到fsmp1a-optee_os-3.9.0文件夹

linux@ubuntu:$ tar -xvf fsmp1a-optee_os-3.9.0.tar.xz

?

?

  1. linux源码

盘资料中【华清远见-FS-MP1A开发资料\02-程序源码\05-预装系统源码\linux】下的fsmp1a-linux-5.4.31.tar.xz导入到fs-mp1a目录下linux文件夹中

将fsmp1a-linux-5.4.31.tar.xz解压之后得到fsmp1a-linux-5.4.31文件夹

linux@ubuntu:$ tar -xvf fsmp1a-linux-5.4.31.tar.xz

?

  1. Yocto源码

盘资料中【华清远见-FS-MP1A开发资料\02-程序源码\05-预装系统源码\Yocto】下的fsmp1a-ST-Yocto.tar.xz导入到fs-mp1a目录下

将fsmp1a-ST-Yocto.tar.xz解压之后得到fsmp1a-ST-Yocto文件夹

linux@ubuntu:$ tar -xvf fsmp1a-ST-Yocto.tar.xz

盘资料中【华清远见-FS-MP1A开发资料\02-程序源码\05-预装系统源码\Yocto】下的downloads.tar.xz导入到由fsmp1a-ST-Yocto.tar.xz得到的fsmp1a-ST-Yocto文件夹下。

将downloads.tar.xz解压之后得到downloads文件夹。

linux@ubuntu:$ tar -xvf downloads.tar.xz

?

?

至此OpenSTLinux全部源码就导入完成了。导入源码完成后的fs-mp1a目录结构如下。

?

  1. ?

  2. 1.2 u-boot源码编译

  3. 导入交叉编译工具链并验证

linux@ubuntu:$ source /opt/st/stm32mp1/3.1-openstlinux-5.4-dunfell-mp1-20-06-24/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

linux@ubuntu:$$CC --version

?

?

  1. 将工作目录切换到u-boot-fsmp1a-2020.01源码目录下。

linux@ubuntu:$ cd ${HOME}/fs-mp1a/u-boot/u-boot-fsmp1a-2020.01

?

?

  1. 导入配置文件。

fsmp1a的u-boot可以支持basic、trusted、optee三种配置。分别对应三种配置文件。

?

?

这里使用trusted配置来编译

linux@ubuntu:$ make stm32mp15_trusted_defconfig

?

?

  1. 编译源码

linux@ubuntu:$ make DEVICE_TREE=stm32mp157a-fsmp1a all

编译完成后得到u-boot.img文件

?

?

  1. 使用Makefile.sdk编译

除了传统的编译方式之外还可以通过上层目录下的Makefile.sdk来编译镜像。使用此方法需要将先前编译过的源码清除后再编译,否则会导致编译出错。

linux@ubuntu:$ make distclean

  1. 编译basic镜像

linux@ubuntu:$ make -f $PWD/../Makefile.sdk all UBOOT_CONFIGS=stm32mp15_fsmp1a_basic_defconfig,basic,u-boot.img

编译成功后会在上级目录下生成build-basic目录。其中的u-boot-stm32mp157a-fsmp1a-basic.img和u-boot-spl.stm32-stm32mp157a-fsmp1a-basic即为生成的烧写镜像

?

  1. 编译trusted镜像

linux@ubuntu:$make -f $PWD/../Makefile.sdk all UBOOT_CONFIGS=stm32mp15_fsmp1a_trusted_defconfig,trusted,u-boot.stm32

编译成功后会在上级目录下生成build-trusted目录。其中的u-boot-stm32mp157a-fsmp1a-trusted.stm32即为生成的烧写镜像

?

?

  1. 编译optee镜像

linux@ubuntu:$ make -f $PWD/../Makefile.sdk all UBOOT_CONFIGS=stm32mp15_fsmp1a_trusted_defconfig,optee,u-boot.stm32

编译成功后会在上级目录下生成build-optee目录。其中的u-boot-stm32mp157a-fsmp1a-optee.stm32即为生成的烧写镜像

?

?

  1. 编译basic、trusted、optee三种镜像

linux@ubuntu:$ make -f $PWD/../Makefile.sdk all

编译成功后会在上级目录下会同时生成build-basic、build-trusted、build-optee三个目录。

?

?

  1. ?

  2. 1.3 tf-a源码编译

  3. 导入交叉编译工具链并验证

linux@ubuntu:$ source /opt/st/stm32mp1/3.1-openstlinux-5.4-dunfell-mp1-20-06-24/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

linux@ubuntu:$ $CC --version

?

?

  1. 将工作目录切换到fsmp1a-trusted-firmware-2.2源码目录下。

linux@ubuntu:$ cd ${HOME}/fs-mp1a/trusted-firmware/fsmp1a-trusted-firmware-2.2

  1. 编译trusted镜像

linux@ubuntu:$ make -f $PWD/../Makefile.sdk TFA_DEVICETREE=stm32mp157a-fsmp1a TF_A_CONFIG=trusted ELF_DEBUG_ENABLE='1' all

编译成功之后会在上级目录下生成build目录,build目录下的trusted目录中tf-a-stm32mp157a-fsmp1a-trusted.stm32即为烧写镜像。

?

?

  1. 编译optee镜像

linux@ubuntu:$ make -f $PWD/../Makefile.sdk TFA_DEVICETREE=stm32mp157a-fsmp1a TF_A_CONFIG=optee ELF_DEBUG_ENABLE='1' all

编译成功之后会在上级目录下生成build目录,build目录下的optee目录中tf-a-stm32mp157a-fsmp1a-optee.stm32即为烧写镜像。

?

?

  1. 编译trusted、optee两种镜像

linux@ubuntu:$ make -f $PWD/../Makefile.sdk all

编译成功后会在上级目录下生成build目录,该目录下同时生成了trusted和optee两个目录。

?

  1. ?

  2. 1.4 optee-os源码编译

    ?

  3. 导入交叉编译工具链并验证

linux@ubuntu:$ source /opt/st/stm32mp1/3.1-openstlinux-5.4-dunfell-mp1-20-06-24/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

linux@ubuntu:$ $CC --version

?

?

  1. 将工作目录切换到fsmp1a-optee_os-3.9.0源码目录下。

linux@ubuntu:$ cd ${HOME}/fs-mp1a/optee-os/fsmp1a-optee_os-3.9.0

?

?

  1. 编译源码

linux@ubuntu:$ make -f $PWD/../Makefile.sdk CFG_EMBED_DTB_SOURCE_FILE=stm32mp157a-fsmp1a

编译成功之后会在上级目录下生成build目录其目录下的tee-header_v2-stm32mp157a-fsmp1a-optee.stm32、tee-pageable_v2-stm32mp157a-fsmp1a-optee.stm32、tee-pager_v2-stm32mp157a-fsmp1a-optee.stm32即为烧写镜像。

?

?

  1. ?

  2. 1.5 linux源码编译

  3. ?

  4. 导入交叉编译工具链并验证

linux@ubuntu:$ linux@ubuntu:$ source /opt/st/stm32mp1/3.1-openstlinux-5.4-dunfell-mp1-20-06-24/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

linux@ubuntu:$ $CC --version

?

?

  1. 将工作目录切换到fsmp1a-linux-5.4.31源码目录下。

linux@ubuntu:$cd ${HOME}/fs-mp1a/linux/fsmp1a-linux-5.4.31

?

?

  1. 导入配置文件

linux@ubuntu:$make stm32_fsmp1a_defconfig

?

?

如果需要修改配置可以使用如下命令来启动menuconfig

linux@ubuntu:$make menuconfig

?

  1. 编译内核镜像

linux@ubuntu:$make -j4 ARCH=arm uImage vmlinux LOADADDR=0xC2000040

编译成功之后会在arch/arm/boot/目录下生成uImage文件

?

?

在源码目录下生成用于调试的vmlinux文件

?

?

  1. 编译设备树文件

linux@ubuntu:$make ARCH=arm dtbs

编译成功之后会在arch/arm/boot/dts目录下生成stm32mp157a-fsmp1a.dtb、stm32mp157a-fsmp1a-rgb070.dtb和stm32mp157a-fsmp1a-mipi050.dtb文件

?

?

stm32mp157a-fsmp1a-rgb070.dtb为rgb屏幕的设备树文件

stm32mp157a-fsmp1a-mipi050.dtb为mipi屏幕的设备树文件

  1. 编译内核???/p>

linux@ubuntu:$make ARCH=arm modules

linux@ubuntu:$make ARCH=arm INSTALL_MOD_PATH="$PWD/../build/install_arTIfact" modules_install

编译成功后会在上层目录生成build目录其中的install_arTIfact目录中存放的即为导出的驱动???。

  1. ?

  2. 1.6 Yocto构建系统

  3. 将工作目录切换到fsmp1a-ST-Yocto源码目录下。

linux@ubuntu:$cd ${HOME}/fs-mp1a/ fsmp1a-ST-Yocto

?

  1. 导入编译配置

linux@ubuntu:$DISTRO=openstlinux-weston MACHINE=fsmp1a source layers/meta-farsight/scripts/envsetup.sh

如下界面提示主机的ubuntu版本与期望的版本不同,这里输入y

?

?

如果是第一次配置,需要同意一些协议,输入y。。

?

?

之后按空格键到协议底部

?

?

输入y会出现如下界面

?

?

  1. 编译源码

linux@ubuntu:$bitbake fs-mp1a-weston

注意:在编译Yocto系统时确保ubuntu主机可以连接互联网

由于OpenSTLinux涉及到的源码较多,因此编译会比较耗时。

编译完成后所生成的镜像文件保存在tmp-glibc/deploy/images/fsmp1a/目录下。

?

这里生成了fs-mp1a开发板所需的烧写镜像,包括basic、trusted、optee三种。

  1. basic专有镜像

u-boot-spl.stm32-stm32mp157a-fsmp1a-basic

u-boot-stm32mp157a-fsmp1a-basic.img

  1. trusted专有镜像

tf-a-stm32mp157a-fsmp1a-trusted.stm32

u-boot-stm32mp157a-fsmp1a-trusted.stm32

  1. optee专有镜像

tf-a-stm32mp157a-fsmp1a-optee.stm32

u-boot-stm32mp157a-fsmp1a-optee.stm32

tee-header_v2-stm32mp157a-fsmp1a-optee.stm32

tee-pageable_v2-stm32mp157a-fsmp1a-optee.stm32

tee-pager_v2-stm32mp157a-fsmp1a-optee.stm32

  1. 公用镜像

st-image-bootfs-openstlinux-weston-fsmp1a.ext4

st-image-userfs-openstlinux-weston-fsmp1a.ext4

st-image-vendorfs-openstlinux-weston-fsmp1a.ext4

fs-mp1a-weston-openstlinux-weston-fsmp1a.ext4

  1. 配置文件

flashlayout_fs-mp1a-weston文件夹中存放的是烧写时所使用的配置文件

?

由上图可以看到配置文件分为sdcard烧写配置和emmc烧写配置。

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

stm32单片机和51单片机区别是什么

单片机也就是单片微型计算机,和集CPU、RAM、ROM、输入输出设备、中断系统在同一个芯片上的器件。....
发表于 2021-08-19 18:21? 62次阅读
stm32单片机和51单片机区别是什么

stm32最小系统组成及作用

最小系统是单片机工作时的最低要求,不包含外设控制,原理比较简单,下面我们一起来看看stm32最小系统....
发表于 2021-08-19 17:18? 73次阅读
stm32最小系统组成及作用

stm32单片机引脚介绍及功能

stm32是一种ARM Cortex-M内核单片机,下面小编为大家介绍一下单片机引脚介绍及功能。单片....
发表于 2021-08-19 16:50? 100次阅读
stm32单片机引脚介绍及功能

stm32单片机的基本组成是什么

stm32是一款高性能、低成本、低功耗、可裁剪的嵌入式单片机。那么stm32单片机的基本组成是什么呢....
发表于 2021-08-19 15:47? 105次阅读
stm32单片机的基本组成是什么

msp430和stm32区别是什么

STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM。 msp430 MSP....
发表于 2021-08-19 15:27? 100次阅读
msp430和stm32区别是什么

浅谈嵌入式中的C语言编程技术分析

程序员可能无意识的传递了错误参数;外界的强干扰可能将传递的参数修改掉,或者使用随机参数意外的调用函数....
发表于 2021-08-19 14:50? 287次阅读
浅谈嵌入式中的C语言编程技术分析

初学者stm32买什么板子好

stm32又名嵌入式单片机,主要应用领域是嵌入式开发,对于新手来说,当然是越少走弯路越好,那么初学者....
发表于 2021-08-19 14:18? 124次阅读
初学者stm32买什么板子好

【教程】宋宝华move to Linux 3·x for ARM(视频教程+PPT课件+项目源代码)

move to Linux 3·x for ARM,最全的学习资料,涵盖了系统移植的视频教程、PPT课件、项目源代码。 ...
发表于 2021-08-19 11:50? 0次阅读
【教程】宋宝华move to Linux 3·x for ARM(视频教程+PPT课件+项目源代码)

stm32用什么软件编程 stm32软件推荐

stm32是嵌入式单片机,有着高性能、低成本、低功耗、可裁剪的特点。相信许多萌新小伙伴还不知道stm....
发表于 2021-08-19 11:27? 147次阅读
stm32用什么软件编程 stm32软件推荐

【教程】嵌入式boa视频服务器项目指导(四)

嵌入式boa视频服务器项目指导(四),视频教程 回复帖子查看资料下载链接: [hide][/hide] ...
发表于 2021-08-19 11:17? 0次阅读
【教程】嵌入式boa视频服务器项目指导(四)

【教程】嵌入式boa视频服务器项目指导(三)

嵌入式boa视频服务器项目指导(三),视频教程 回复帖子查看资料下载链接: [hide][/hide] ...
发表于 2021-08-19 11:15? 0次阅读
【教程】嵌入式boa视频服务器项目指导(三)

【教程】嵌入式boa视频服务器项目指导(二)

嵌入式boa视频服务器项目指导(二),视频教程 回复帖子查看资料下载链接: [hide][/hide] ...
发表于 2021-08-19 11:12? 0次阅读
【教程】嵌入式boa视频服务器项目指导(二)

stm32单片机的基本工作原理

我们使用的大部分电器都使用了单片机,那么stm32单片机的基本工作原理是什么呢?下面小编就带大家了解....
发表于 2021-08-19 11:06? 232次阅读
stm32单片机的基本工作原理

【教程】嵌入式boa视频服务器项目指导(一)

嵌入式boa视频服务器项目指导(一),视频教程 回复帖子查看资料下载链接: [hide][/hide] ...
发表于 2021-08-19 10:56? 0次阅读
【教程】嵌入式boa视频服务器项目指导(一)

初次接触stm32

第一次写#初次接触stm32。以前没做过关于硬件开发,觉得自己能力不够,大学专业学的电子信息。工作了两周了,谈一下我...
发表于 2021-08-19 09:37? 0次阅读
初次接触stm32

STM32 ADC框图讲解

目录01、ADC简介02、STM32的ADC外设03、STM32ADC框图讲解04、触发源05、转换周期06、数据寄存器07、中...
发表于 2021-08-19 08:59? 0次阅读
STM32  ADC框图讲解

STM32的基本外设

STM32属于Cortex-M内核STM32F103~7使用了cortex-M3内核,简称1系列STM32F4xx使用cortex-M4内核l系列:...
发表于 2021-08-19 07:19? 0次阅读
STM32的基本外设

STM32的USART简介

STM32 的USART 简介通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)...
发表于 2021-08-19 06:34? 0次阅读
STM32的USART简介

STM32串口初始化与使用详解

STM32串口初始化与使用详解串口简介串口初始化具体步骤串口收发理论代码执行串口简介USART(Universal Synch...
发表于 2021-08-19 06:06? 0次阅读
STM32串口初始化与使用详解

嵌入式工控机助力智能制造发展

本期上海研强给大家分享的是工控机助力智能制造快速发展,希望看完本篇文章您能对工控机有一个全新的认识!
发表于 2021-08-18 16:47? 550次阅读
嵌入式工控机助力智能制造发展

SM32MCU支持的MAC地址Hash过滤

前言 网络中传递着各种各样的数据包,当设备连接到网络后,为了减少对接收到的数据进行处理的负荷,就需要....
发表于 2021-08-17 17:24? 1903次阅读
SM32MCU支持的MAC地址Hash过滤

Verilog数字系统基础设计中的循环冗余校验

CRC(循环冗余校验) CRC介绍 临时“插播”,后面有实例。 CRC(Cyclic Redunda....
发表于 2021-08-17 17:08? 961次阅读
Verilog数字系统基础设计中的循环冗余校验

延期!2021 ELEXCON深圳国际电子展暨嵌...

2021ELEXCON深圳国际电子展暨嵌入式系统展延期至2021年9月27-29日举办通知。
发表于 2021-08-17 11:51? 371次阅读
延期!2021 ELEXCON深圳国际电子展暨嵌...

使用STM32G474芯片做Half模式的PWM...

有人想使用STM32G474芯片做Half模式的PWM输出,发现有点问题,明明配置了定时器A的两路输....
发表于 2021-08-16 17:59? 1734次阅读
使用STM32G474芯片做Half模式的PWM...

手机行业的跑分软件是噱头还是实力

一、背景:性能之战 “不服跑个分”已经沦为手机行业的调侃用语,但是实话实说,在操作系统领域“跑分”确....
发表于 2021-08-16 15:24? 144次阅读
手机行业的跑分软件是噱头还是实力

Linux内核睡眠的三种状态讲解

1开场白 环境: 处理器架构:arm64 内核源码:linux-5.10.50 ubuntu版本:2....
发表于 2021-08-16 15:13? 110次阅读
Linux内核睡眠的三种状态讲解

Linux内核用户态是如何睡眠的

4.用户态睡眠 以sleep为例来说明任务在用户态是如何睡眠的。 首先我们通过strace工具来看下....
发表于 2021-08-16 15:06? 99次阅读
Linux内核用户态是如何睡眠的

恩智浦MPC5744P上基于MBD工具箱的开发准...

摘要 本篇笔记主要记录在恩智浦MPC5744P上基于MBD工具箱的开发准备工作,即工具箱的安装和初级....
发表于 2021-08-16 14:27? 87次阅读
恩智浦MPC5744P上基于MBD工具箱的开发准...

5G+工业互联网 --什么是5G+工业互联网?有...

“5G+工业互联网”将发挥基础性作用。当前,工业网络无线化发展趋势显著,国际电信联盟定义的5G三大技....
发表于 2021-08-16 14:23? 59次阅读
5G+工业互联网 --什么是5G+工业互联网?有...

2千元级5G工业网关,飞凌FCU2201低价网关...

关于5G在工业自动化应用的话题已热议多年,与前几代移动技术相比,5G的速度更快、时延更低,范围内可连....
发表于 2021-08-16 14:23? 35次阅读
2千元级5G工业网关,飞凌FCU2201低价网关...

聚焦IO,从存储的角度剖析vim原理

vim 编辑超大文件,打开很慢,因为会读一遍文件( readfile ),保存的时候很慢,因为会读写....
发表于 2021-08-16 11:29? 1483次阅读
聚焦IO,从存储的角度剖析vim原理

C语言中Linux字节对齐的问题

最近作者在做一个项目,遇到一个问题,运行于ARM上的threadx在与DSP通信采用消息队列的方式传....
发表于 2021-08-16 11:25? 159次阅读
C语言中Linux字节对齐的问题

一种32位Arm架构的微处理器详细介绍

PlasticARM的芯片架构如下图所示。它是一种SoC,包括源自32位Arm Cortex-M0+....
发表于 2021-08-16 11:04? 1042次阅读
一种32位Arm架构的微处理器详细介绍

什么是架构设计 如何进行架构设计

API设计 可以把一个??榭闯墒呛诤?,给定一个输入,就会返回确定的结果,或者执行确定的功能, ??橹?...
发表于 2021-08-16 10:26? 520次阅读
什么是架构设计 如何进行架构设计

机智云推出基于物联网智能硬件开发套件GoKit3

GoKit3是机智云推出的物联网智能硬件开发套件,采用分体式可插拔设计方案,由主控板、功能扩展板、模....
发表于 2021-08-16 09:34? 861次阅读
机智云推出基于物联网智能硬件开发套件GoKit3

一文迅速了解紫外线的特性、优缺点和杀菌效果

2020年爆发的新冠疫情,对公共卫生健康造成了极大威胁,影响了人类生活的方方面面。医院、学校和企业等....
发表于 2021-08-14 14:46? 187次阅读
一文迅速了解紫外线的特性、优缺点和杀菌效果

Linux内核ftrace的学习

目录 1. 前言 2. ARM64栈帧结构 3. 编译阶段 3.1 未开启ftrace时的blk_u....
发表于 2021-08-13 17:33? 388次阅读
Linux内核ftrace的学习

SRAM ECC功能以及应用中的注意事项

现代电子系统中,由于“软”错误引起的系统故障比永久性硬件失效引起的系统故障要更多?!叭怼贝砦笫侵缚梢?...
发表于 2021-08-13 16:36? 4256次阅读
SRAM ECC功能以及应用中的注意事项

RT-Thread亮相GOTC全球开源技术峰会

刚刚过去的GOTC全球开源技术峰会,无疑是一场以“开源”为主题的技术盛宴,来自全球顶尖科技创新企业的....
发表于 2021-08-13 15:45? 3132次阅读
RT-Thread亮相GOTC全球开源技术峰会

嵌入式系统中的优化技巧

在嵌入式系统中由于资源比较有限,特别是内存资源,因此对程序运行的性能要求比较高。对执行效率高的程序段....
发表于 2021-08-13 15:41? 141次阅读
嵌入式系统中的优化技巧

什么是银河麒麟实时操作系统,它的特点是什么

银河麒麟实时操作系统是在银河麒麟通用安全操作系统基础上,采用先进的Linux实时技术,实现任务管理、....
发表于 2021-08-13 15:05? 48次阅读
什么是银河麒麟实时操作系统,它的特点是什么

探究slab在内核内存管理和用户态Memcach...

很多基础的概念,将跨越软件的层次而存在。比如slab,对于内核人员,我们都知道slab是buddy之....
发表于 2021-08-13 14:55? 155次阅读
探究slab在内核内存管理和用户态Memcach...

如何让openEuler在WSL上运行

首先您需要 6 步配置 WSL 环境,然后您就能在 Microsoft Store 上安装任意 WS....
发表于 2021-08-13 14:29? 148次阅读
如何让openEuler在WSL上运行

通过STM32的C8t6获取DHT11的温湿度数...

本项目通过STM32的C8t6获取DHT11的温湿度数据,以及空气质量传感器MQ135,通过一块ES....
发表于 2021-08-12 14:04? 3617次阅读
通过STM32的C8t6获取DHT11的温湿度数...

嵌入式开发中用来输出log的方法

正文:《论语》有云:“工欲善其事,必先利其器”。输出调试信息是软件开发中必不可少的调试利器,在出现b....
发表于 2021-08-12 10:36? 2290次阅读
嵌入式开发中用来输出log的方法

嵌入式工控机与普通工控机的区别

本期上海研强给大家分享的是嵌入式工控机在产品性能方面的优点有哪些,希望看完本篇文章您能对嵌入式工控机....
发表于 2021-08-11 16:34? 490次阅读
嵌入式工控机与普通工控机的区别

意法半导体新STM8和STM32手机应用软件优化...

为帮助开发者轻松快捷地找到适合项目的微控制器,意法半导体在主要应用商店和公司官网st.com发布了先....
发表于 2021-08-11 14:14? 722次阅读
意法半导体新STM8和STM32手机应用软件优化...

基于RTOS的应用程序的五个最佳实践技巧

我们在编写RTOS应用程序的过程中,经?;嵊龅秸庑├?,包括正确确定系统中有多少任务、如何设置优先级....
发表于 2021-08-11 11:32? 240次阅读
基于RTOS的应用程序的五个最佳实践技巧

5组有趣的Linux命令分享

今天分享5组有趣的Linux命令,即使你是小白,get后也能装大神。 注:以下内容使用阿里云的Ecs....
发表于 2021-08-11 11:00? 190次阅读
5组有趣的Linux命令分享

隐藏结构体成员的方法与问题

今天主要跟大家分享一种隐藏结构体成员的方法,很多地方也叫“不完全类型”,所以这里bug菌以更加通俗易....
发表于 2021-08-11 10:18? 106次阅读
隐藏结构体成员的方法与问题

INtime RTOS操作系统简介与运用案例

INtime RTOS简介 INtime RTOS是一个动态的,确定性的硬实时操作系统,用于多核x8....
发表于 2021-08-10 10:58? 181次阅读
INtime RTOS操作系统简介与运用案例

虹科在RAUC嵌入式固件更新框架中发现重大漏洞

● 虹科Vdoo安全研究团队不断研究领先的嵌入式设备及其供应链,在RAUC 嵌入式固件更新框架中发现....
发表于 2021-08-10 10:07? 192次阅读
虹科在RAUC嵌入式固件更新框架中发现重大漏洞
最好看的最新高清中文字幕,我不卡影院午夜伦不卡,亚洲国产在线精品一区在,yw193.尤物影院 平顺县| 元谋县| 锡林浩特市| 甘德县| 镇宁| 临清市| 石棉县| 岢岚县| 浦北县| 额尔古纳市| 滨州市| 安庆市| 乐至县| 扶风县| 荔波县| 富民县| 临城县| 洱源县| 邳州市| 临潭县| 安福县| 木里| 新巴尔虎左旗| 剑川县| 漾濞| 金秀| 绵阳市| 革吉县| 水城县| 永昌县| 凌海市| 石景山区| 施秉县| 林甸县| 左贡县| 石门县| 阳城县| 东乡县| 合江县| 达孜县| 渭南市| http://444 http://444 http://444 http://444 http://444 http://444