在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣在Linux上開發STM32程序

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-11-19 17:44 ? 次閱讀

步驟1:下載所需的一切

怎樣在Linux上開發STM32程序

您需要下載三個部分才能正常工作:

用于ARM的GCC編譯器

STM32固件文件

St-link實用程序

Sample Project

編譯器是將我們的C代碼和所有其他庫文件編譯成stm32控制器可以理解的機器語言的主要軟件。下載此編譯器的最新預編譯版本。

包含STM32固件的文件夾是保存主處理器運行所需的所有啟動文件和核心文件的文件夾。我們將使用HAL已超越的標準外圍設備庫。我更喜歡StPeriphLibrary,因為使用該處理器的公司都在使用它們,因為它功能強大,更老舊并且受支持。它也更堅固。它不會減少初始化外圍設備或打開LED所需的工作,但是會迫使您學習這些處理器的工作方式。這樣一來,您將對內部工作有更多的了解,從而可以對任何任務進行編程

最后一個下載的軟件是st-link實用程序。它在github上維護,用于通過板上的stlink IC作為SWD/JTAG編程器/調試器將編譯的二進制文件傳輸到處理器。

我還提供了一個示例項目文件夾稍后再下載。它位于第一個VIDEO1文件夾中。

步驟2:安裝軟件

下載后我建議您將所有文件都放在一個公用文件夾中,因為它們都出于相同的目的而一起使用。我將所有文件夾放在HOME目錄中一個名為“ Embedded”的文件夾中。

我們將從最簡單的STM32庫開始。您下載的文件夾可以留在這里。只需確保四處挖掘以查看適當文件的存儲位置。因此,您可以更改和編輯主MakeFile,使其可以在您的平臺上使用。

第二個最簡單的是編譯器。您也不需要執行任何操作,但是我們將使編譯器成為可全局訪問的函數,因此您可以從任何文件夾調用編譯器,而無需考慮路徑。所有步驟都可以在終端機或gui中完成,但是我喜歡使用終端機,因為當您有經驗時,它會變得越來越快,更容易,如果您擔心的話,建議您多使用終端機。步驟如下:

進入主文件夾“/home/YOURUSERNAME/”或“?/”,或在終端中輸入 cd

通過鍵入以下內容來打開文件“ .bashrc”: nano .bashrc

向下滾動到文件末尾并添加以下行:

export PATH = $路徑:?/Embedded/gcc-arm-none-eabi-8-2018-q4/bin

通過保存退出: CTRL + X,單擊Y,ENTER

運行命令: source .bashrc 刷新終端源

通過鍵入以下命令檢查是否一切正常: arm-none-eabi-gcc --version,它應該顯示編譯器的最新版

要安裝st-link,請將已下載的存檔解壓縮到Embedded文件夾中。然后執行以下步驟:

運行: make

進入文件夾“ build/Release”: cd build/Release

鍵入 ls ,您將看到兩個名為“ st-flash”和“ st-util”的可執行文件

將這兩個可執行文件移動到父目錄中stlink: mv st-flash st-util 。./。./

可以,如果您想使用這兩個功能,可以通過以下方式再次全局編輯“ .bashrc”文件添加:

導出PATH = $ PATH:?/Embedded/stlink/

僅此而已!您擁有所需的一切。現在,抓住您自己喜歡的文本編輯器。我只使用標準的,像SublimeText或Atom這樣的更智能的標準。

第3步:建立示例項目

我們現在將創建一個示例項目,您可以使用該示例項目來啟動每個項目。就像一個模板,已經處理了所有主要設置。

您可以將其下載到我的MEGA中,該鏈接位于本教程的第一步,并且在我的所有youtube視頻下。里面是空的main.c文件,以及此處理器和Makefile的一些啟動文件。 Makefile可以告訴C編譯器在哪里找到arm編譯器,如何編譯以及所有庫在哪里。為了獲得適合您項目的這些文件,您可以進入STM32庫文件夾并檢查“ project”或“ examples”文件夾。在內部,您將看到并復制以下文件: main.c , Makefile 和 XXX_conf.h , system_XXX.c。

此外,您還需要 stm32_flash.ld 鏈接程序文件,該文件可在示例文件夾或以下文件夾中找到:

“/FLASH_Program/TrueSTUDIO/FLASH_Program/”或只需搜索文件即可。

Makefile可以在線找到,也可以從我的文件夾中復制,但是您需要做一些更改。讓我們來看看我的make文件以及可以更改的內容。

# Path to stlink folder for uploading code to board

STLINK=~/Embedded/stlink

# Put your source files here (*.c)

SRCS=main.c system_stm32f4xx.c

# Libraries source files

#SRCS += stm32f4xx_rcc.c

#SRCS += stm32f4xx_gpio.c

# Binaries will be generated with this name (.elf, .bin, .hex)

PROJ_NAME=test

# Put your STM32F4 library code directory here, change YOURUSERNAME to yours

STM_COMMON=/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0

# Compiler settings. Only edit CFLAGS to include other header files.

CC=arm-none-eabi-gcc

OBJCOPY=arm-none-eabi-objcopy

# Compiler flags

CFLAGS = -g -O2 -Wall -Tstm32_flash.ld

CFLAGS += -DUSE_STDPERIPH_DRIVER

CFLAGS += -mlittle-endian -mthumb -mcpu=cortex-m4 -mthumb-interwork

CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16

CFLAGS += -I.

# Include files from STM libraries

CFLAGS += -I$(STM_COMMON)/Libraries/CMSIS/Include

CFLAGS += -I$(STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx/Include

CFLAGS += -I$(STM_COMMON)/Libraries/STM32F4xx_StdPeriph_Driver/inc

CFLAGS += -I$(STM_COMMON)/Utilities/STM32F4-Discovery

# add startup file to build

SRCS += $(STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx/Source/Templates/TrueSTUDIO/startup_stm32f4xx.s

OBJS = $(SRCS:.c=.o)

vpath %.c $(STM_COMMON)/Libraries/STM32F4xx_StdPeriph_Driver/src \

.PHONY: proj

all: proj

proj: $(PROJ_NAME).elf

$(PROJ_NAME).elf: $(SRCS)

$(CC) $(CFLAGS) $^ -o $@

$(OBJCOPY) -O ihex $(PROJ_NAME).elf $(PROJ_NAME).hex

$(OBJCOPY) -O binary $(PROJ_NAME).elf $(PROJ_NAME).bin

clean:

rm -f *.o $(PROJ_NAME).elf $(PROJ_NAME).hex $(PROJ_NAME).bin

# Flash the STM32F4

burn: proj

$(STLINK)/st-flash write $(PROJ_NAME).bin 0x80000000

您可以編輯第一行以將路徑更改為stlink實用程序文件夾

您可以使用庫和YOURUSERNAME

STM_COMMON=/home/YOURUSERNAME/Embedded/STM32F4-Discovery_FW_V1.1.0

將行更改為文件夾的目的地,也可以檢出鏈接所有庫的部分。這可能會根據您使用的平臺而有所不同,因此請檢查文件樹中的更改。包括指向某些文件的路徑在內的所有其他內容,都可以更改,例如帶有啟動文件的下一行。

在Makefile中編輯完所有這些內容之后,您可以檢查其是否正常運行在目錄內打開一個終端,然后輸入: make 。如果它可以毫無問題地編譯所有東西,那么您就設置好了。如果沒有,請查看編譯器錯誤并編輯Makefile。

此外,當我使用Atom時,我并排放置了兩段代碼。通常main.c和Makefile在左側,因為您只需要編輯一次Makefile,在右側編輯庫。您可以在圖片上看到我打開了包含每個庫的.c和.h文件的文件夾。您可以在視頻中看到所有這些內容。

第4步:完成!

現在,您已經配置了Makefile并編譯器正常工作時,您可以將該文件夾用于所有項目作為模板,因此請確保保存此文件夾的副本。

還可以測試 st-flash 和《通過插入開發板并在終端中鍵入 st-info 程序:st-info --probe

您可以看到stlink軟件可以識別的平臺以及IC系列以及緩存和其他東西。您可以鍵入:st-info以查看所有可用參數

責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11326

    瀏覽量

    209964
  • STM32
    +關注

    關注

    2270

    文章

    10915

    瀏覽量

    356755
收藏 人收藏

    評論

    相關推薦

    Linux應用編程的基本概念

    Linux應用編程涉及到Linux環境下開發和運行應用程序的一系列概念。以下是一些涵蓋Linux
    的頭像 發表于 10-24 17:19 ?263次閱讀

    如何在STM32運行AI應用

    1.X-Linux-AI概述X-LINUX-AI是STM32MPUOpenSTLinux擴展包,面向STM32MP1和STM32MP2系列微
    的頭像 發表于 09-30 08:00 ?2614次閱讀
    如何在<b class='flag-5'>STM32</b><b class='flag-5'>上</b>運行AI應用

    TM4C MCU用FreeRTOS開發通用應用程序應用說明

    電子發燒友網站提供《TM4C MCU用FreeRTOS開發通用應用程序應用說明.pdf》資料免費下載
    發表于 09-11 14:15 ?0次下載
    <b class='flag-5'>在</b>TM4C MCU<b class='flag-5'>上</b>用FreeRTOS<b class='flag-5'>開發</b>通用應用<b class='flag-5'>程序</b>應用說明

    【北京迅為】《stm32mp157開發板嵌入式linux開發指南》第五章 Ubuntu使用apt-get下載

    【北京迅為】《stm32mp157開發板嵌入式linux開發指南》第五章 Ubuntu使用apt-get下載
    的頭像 發表于 09-03 16:26 ?824次閱讀
    【北京迅為】《<b class='flag-5'>stm32</b>mp157<b class='flag-5'>開發</b>板嵌入式<b class='flag-5'>linux</b><b class='flag-5'>開發</b>指南》第五章 Ubuntu使用apt-get下載

    嵌入式linux開發的基本步驟有哪些?

    嵌入式Linux開發是一個復雜的過程,涉及到硬件選擇、操作系統移植、驅動開發、應用程序開發等多個方面。以下是嵌入式
    的頭像 發表于 09-02 09:11 ?559次閱讀

    linux開發板如何編譯curl

    Linux開發編譯 curl 庫通常涉及到幾個步驟,包括準備開發環境、下載源代碼、配置編譯選項以及執行編譯和安裝過程。以下是一個基本的
    的頭像 發表于 08-30 15:33 ?725次閱讀

    linux驅動程序如何加載進內核

    Linux系統中,驅動程序是內核與硬件設備之間的橋梁。它們允許內核與硬件設備進行通信,從而實現對硬件設備的控制和管理。 驅動程序的編寫 驅動程序
    的頭像 發表于 08-30 15:02 ?530次閱讀

    Linux 驅動開發與應用開發,你知道多少?

    一、Linux驅動開發與應用開發的區別開發層次不同:Linux驅動開發主要是針對硬件設備進行編程
    的頭像 發表于 08-30 12:16 ?865次閱讀
    <b class='flag-5'>Linux</b> 驅動<b class='flag-5'>開發</b>與應用<b class='flag-5'>開發</b>,你知道多少?

    小白也會的,linux跑android應用的方案

    介紹一個可以linux跑安卓應用的linux桌面——OpenFDE
    的頭像 發表于 08-23 11:14 ?728次閱讀
    小白也會的,<b class='flag-5'>在</b><b class='flag-5'>linux</b><b class='flag-5'>上</b>跑android應用的方案

    stm32程序燒錄的幾種方法?

    STM32是一款由STMicroelectronics公司推出的32位微控制器,廣泛應用于嵌入式系統開發。燒錄STM32程序開發過程中的重
    的頭像 發表于 08-22 09:35 ?4724次閱讀

    keil5怎么往stm32里燒錄程序

    STM32開發板 使用USB線將STM32開發板連接到計算機。 配置Keil5項目 打開Keil5軟件,然后創建一個新的項目。 項目設置中
    的頭像 發表于 08-22 09:31 ?2815次閱讀

    STM32F103電路板怎樣做配套的電路設計呢?

    新手求助: 小弟正在用STM32F103做一個開發,現在正在做硬件部分的電路設計,想求助一下大嬸們如果程序用JLink來下載的話,電路板
    發表于 05-11 08:14

    如何讓CYUSBlinux閃存固件?

    不起作用。 我能知道其他支持 linux 中刷新固件的應用程序嗎,或者如何讓 CYUSB linux
    發表于 02-22 06:23

    盤點那些硬件+項目學習套件:STM32MP157 Linux開發板及入門常見問題解答

    來盤點一下,比較受歡迎幾款“硬件+項目”學習套件,以及一些初學者比較關注的問題。 盤點一:STM32MP157 Linux開發板 ▋開發板標識圖 ▋
    發表于 02-01 14:25

    如何使用linux下gdb來調試python程序

    如何使用linux下gdb來調試python程序? Linux下,可以使用GDB(GNU調試器)來調試Python程序。GDB是一個強大的
    的頭像 發表于 01-31 10:41 ?2682次閱讀
    主站蜘蛛池模板: 最新欧美精品一区二区三区| 乡村乱人伦短小说| 日本黄色录象| 久久久久久久免费| 国产片一级| 视频h在线观看| 一区二区三区高清在线| 亚洲伦理一区| 美女扒开尿口给男人桶| 在线久综合色手机在线播放| 性无码专区无码| 日本妈妈4| 激情五月婷婷综合网| 二区在线播放| 天天干天天澡| 欧美乱乱| 中文字幕亚洲综合久久2| 色综合久久综合欧美综合网| 日韩国产片| 国产一区二区三区毛片| 亚洲午夜在线视频| 国产一级在线观看| 亚洲狠狠狠一区二区三区| 一本到卡二卡三卡视频| 人与禽性视频77777| 国产精品一区电影| 色五月情| 亚洲视屏一区| 特级淫片aaaaa片毛片| 欧美sese| 亚洲天堂va| 521色香蕉网在线观看免费| 李老汉的性生生活1全部| 天堂中文在线www| 韩国成人毛片aaa黄| 天天操天天射天天爽| 黄色午夜影院| 天天碰免费视频| 国产欧美日韩综合精品无毒 | 色婷婷色综合| 国产日韩一区二区三区|