電子發燒友網>今日頭條> > 正文

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. 編譯內核模塊

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功能以及應用中的注意事項

現代電子系統中,由于“軟”錯誤引起的系統故障比永久性硬件失效引起的系統故障要更多?!败洝卞e誤是指可以....
發表于 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嵌入式固件更新框架中發現重大漏洞
狠狠cao在线视频观看_青青青视频在线观看_免费的三级黄网站