国产chinesehdxxxx老太婆,办公室玩弄爆乳女秘hd,扒开腿狂躁女人爽出白浆 ,丁香婷婷激情俺也去俺来也,ww国产内射精品后入国产

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為APM32F411打造可自動(dòng)化的命令行工作流

Geehy極海半導(dǎo)體 ? 來源:21ic論壇極海半導(dǎo)體專區(qū) ? 2025-07-11 10:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

來源:轉(zhuǎn)載自21ic論壇極海半導(dǎo)體專區(qū)

1 背景

拿到APM32F411的TINY板卡后,在打開官方提供的SDK發(fā)現(xiàn),他們提供的MDK、IAR、Eclipse的工程示例。非常不錯(cuò),但是我想著有一些場(chǎng)景下在沒有安裝IDE的情況下怎么編譯程序呢?

通過學(xué)習(xí),我發(fā)現(xiàn)可以使用開源工具鏈GCC+Makefile編譯程序。經(jīng)過分析發(fā)現(xiàn)極海的Eclipse工程就是基于GCC工具鏈進(jìn)行編譯的,這樣看來我只需要搭建GCC+Makefile的本地編譯環(huán)境就可以在不使用IDE的情況下完成對(duì)APM32F411的程序編譯了。

完成程序的編譯后,我們需要對(duì)程序進(jìn)行下載,由于APM32F411的TINY板卡的板載仿真器是基于CMSIS-DAP而來的,我們可以輕易的就想到使用ARM提供的PyOCD進(jìn)行程序下載。

整體的程序編譯及下載的步驟理論存在,那么我們實(shí)踐開始。

2 工具鏈準(zhǔn)備

在實(shí)際進(jìn)行代碼的搬運(yùn)前,我們需要對(duì)我們所需要的環(huán)境進(jìn)行搭建,我這里使用的是window的環(huán)境,注意是下載相關(guān)的工具鏈,然后把工具鏈的路徑添加到我們的系統(tǒng)變量中,從而使得直接調(diào)用CMD命令就能使用我們的目標(biāo)工具鏈程序。

2.1 make工具鏈

make工具鏈?zhǔn)俏覀儽敬尉幾g腳本的基礎(chǔ)工具,make工具也是多種多樣的,我這里選擇,這個(gè)是它的下載頁面:https://github.com/xpack-dev-tools/windows-build-tools-xpack/releases

這里是它的安裝介紹:https://xpack.github.io/dev-tools/windows-build-tools/install/。

我這里就簡(jiǎn)單描述一下:

1. 先下載我們需要的xPack Windows Build Tools版本,比如說我選4.3.0的。

2. 下載下來是一個(gè)壓縮包,我們把它解壓到一個(gè)合適的路徑,比如我把它放在C盤。

3. 把make.exe的路徑添加到我們的系統(tǒng)環(huán)境變量,比如我的是:C:xpack-windows-build-tools-4.3.0-1in

4. 我們?cè)赾md命令窗口輸入“make -v”檢查是否make程序已經(jīng)正常添加入我們的系統(tǒng)變量中。

f3927168-5bc5-11f0-baa5-92fbcf53809c.jpg

2.2 GCC工具鏈

GCC工具,因?yàn)锳PM32F411是基于Arm Cortex-M4F的芯片,所以我們要選擇的是GNU Arm Embedded Toolchain,

這個(gè)是工具鏈的官網(wǎng):https://developer.arm.com/downloads/-/gnu-rm,也是選擇一個(gè)喜歡的版本進(jìn)行下載,我這里選的是10 2021.10的版本。

需要注意的是,它提供安裝包和壓縮包,使用壓縮包需要自己配置系統(tǒng)環(huán)境變量(可以參考make的工具鏈配置,它的路徑是(我的):C:GNU Arm Embedded Toolchain10 2021.10in,里面有arm-none-eabi-gcc.exe那個(gè)就是),如果是安裝包需要留意勾選“配置至系統(tǒng)變量”的選項(xiàng)。

f39f35b0-5bc5-11f0-baa5-92fbcf53809c.jpg

同樣的,我們也可以在CMD查看支持,僅需要輸入以下命令“arm-none-eabi-gcc -v”,若有打印arm-none-eabi-gcc版本信息即可。

f3a9223c-5bc5-11f0-baa5-92fbcf53809c.jpg

這里也給大家看看系統(tǒng)環(huán)境變量的設(shè)置界面(直接使用WIN+Q 按鍵搜索“環(huán)境變量”即可)。

f3bbed9a-5bc5-11f0-baa5-92fbcf53809c.jpg

2.3 PyOCD 工具鏈

PyOCD的官網(wǎng):https://link.zhihu.com/?target=https%3A//github.com/pyocd/pyOCD,它提供了我們使用命令行的形式配合CMSIS-DAP下載程序至Arm Cortex-M的芯片。

PyOCD這個(gè)工具鏈的安裝是基于Python上的,我們首先需要安裝Python環(huán)境(可以直接在它的官網(wǎng)https://www.python.org/downloads/windows/下載安裝),有了Python環(huán)境后我們直接在CMD上輸入“pip install -i https://pypi.tuna.tsinghua.edu.cn/simpl pyocd”命令等待安裝成功。

安裝成功后我們可以在CMD上輸入“pyocd list”我們可以看到當(dāng)前系統(tǒng)連接的仿真器。

f3cfc978-5bc5-11f0-baa5-92fbcf53809c.jpg

3 源碼選擇

由于我們使用的是GCC的工具鏈環(huán)境,對(duì)于內(nèi)核的源碼我們需要相應(yīng)的版本。即鏈接腳本文件以及啟動(dòng)文件都得選擇GCC版本的。

為了方便我們的后續(xù)程序編寫,我這里新建一個(gè)文件夾,把我們需要的源碼往里面裝進(jìn)去。

1. 板載文件及庫(kù)文件必不可少。將“Boards”、“Libraries”復(fù)制到我們的新文件夾中。

f4128bc8-5bc5-11f0-baa5-92fbcf53809c.jpg

2. 復(fù)制APM32F4xx_SDK_V1.4APM32F4xx_SDK_V1.4ExamplesSysTick下的文件夾至我們的新文件夾中。

f4282078-5bc5-11f0-baa5-92fbcf53809c.jpg

然后把里面的“Project”給刪除,我們不需要這段IDE工程。

3. 復(fù)制鏈接腳本文件以及啟動(dòng)文件。把APM32F4xx_SDK_V1.4LibrariesDeviceGeehyAPM32F4xxSourcegcc里面的“APM32F4xxxE_FLASH.ld”和“startup_apm32f411.S”復(fù)制到我們的新文件夾中。

f4bc5720-5bc5-11f0-baa5-92fbcf53809c.jpg

至此,我們的源碼準(zhǔn)備完畢。

4 編寫makefile腳本

由于我們是使用makefile來做IDE的角色,我們現(xiàn)在回憶一下我們IDE需要哪些基礎(chǔ)的設(shè)置才能完成程序的編譯?對(duì)是的,有工程名、源碼包含、頭文件包含、宏定義、輸出目錄、輸出內(nèi)容、編譯優(yōu)化等級(jí)等內(nèi)容需要一一設(shè)置。

我們新建一個(gè)txt文件,把它名字改為“Makefile”,同時(shí)刪除后綴。然后我們一步步地將以下內(nèi)容寫入文件。

4.1 工程名設(shè)置

首先是工程名設(shè)置,我這里設(shè)置為SysTick_TimeBase。

######################################

# target

######################################

TARGET = SysTick_TimeBase

4.2 編譯設(shè)置

這里設(shè)置編譯是否是debug標(biāo)簽和優(yōu)化等級(jí)。

######################################

# building variables

######################################

# debug build?

DEBUG = 1

# optimization

OPT = -Og

4.3 編譯文件夾設(shè)置

設(shè)置編譯的文件的輸出文件夾

#######################################

# paths

#######################################

# Build path

BUILD_DIR = build

4.4 設(shè)置源碼包含

設(shè)置工程需要包含的源碼路徑。

######################################

# source

######################################

# C sources

C_SOURCES =

SysTick_TimeBase/Source/main.c

SysTick_TimeBase/Source/apm32f4xx_int.c

SysTick_TimeBase/Source/system_apm32f4xx.c

Boards/Board.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_adc.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_can.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_crc.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_cryp.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_cryp_aes.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_cryp_des.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_cryp_tdes.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_dac.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_dbgmcu.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_dci.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_dma.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_dmc.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_eint.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_fmc.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_gpio.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_hash.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_hash_md5.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_hash_sha1.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_i2c.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_iwdt.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_misc.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_pmu.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_rcm.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_rng.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_rtc.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_sdio.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_smc.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_spi.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_syscfg.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_tmr.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_usart.c

Libraries/APM32F4xx_StdPeriphDriver/src/apm32f4xx_wwdt.c

4.5 設(shè)置啟動(dòng)文件

設(shè)置啟動(dòng)文件,將我們的文件夾內(nèi)的startup_apm32f411.S的啟動(dòng)文件后綴名改為小寫的“s”。

# ASM sources

ASM_SOURCES =

startup_apm32f411.s

4.6 設(shè)置編譯MCU內(nèi)核

設(shè)置編譯的MCU內(nèi)核及FPU設(shè)置。工具鏈?zhǔn)褂谩癮rm-none-eabi-”,內(nèi)核為Arm Cortex-M4F。

#######################################

# binaries

#######################################

PREFIX = arm-none-eabi-

# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx)

# either it can be added to the PATH environment variable.

ifdef GCC_PATH

CC = $(GCC_PATH)/$(PREFIX)gcc

AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp

CP = $(GCC_PATH)/$(PREFIX)objcopy

SZ = $(GCC_PATH)/$(PREFIX)size

else

CC = $(PREFIX)gcc

AS = $(PREFIX)gcc -x assembler-with-cpp

CP = $(PREFIX)objcopy

SZ = $(PREFIX)size

endif

HEX = $(CP) -O ihex

BIN = $(CP) -O binary -S

#######################################

# CFLAGS

#######################################

# cpu

CPU = -mcpu=cortex-m4

# fpu

FPU = -mfpu=fpv4-sp-d16

# float-abi

FLOAT-ABI = -mfloat-abi=hard

# mcu

MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI)

4.7 設(shè)置宏定義

設(shè)置工程所需的宏定義。

# C defines

C_DEFS =

-DAPM32F411

-DAPM32F411_TINY

4.8 設(shè)置工程頭文件包含

設(shè)置工程所需的頭文件路徑。

# C includes

C_INCLUDES =

-ILibraries/APM32F4xx_StdPeriphDriver/inc

-ILibraries/Device/Geehy/APM32F4xx/Include

-ILibraries/CMSIS/Include

-IBoards

-ISysTick_TimeBase/Include

4.9 設(shè)置鏈接腳本文件

設(shè)置鏈接腳本文件路徑。

4.10 其他

這個(gè)部分內(nèi)容是編譯的一些指令及操作,直接使用即可這里由于篇幅關(guān)系就不一一舉例,大家拿到附件后可自行了解。

5 編譯程序

在工程目錄下啟動(dòng)CMD,輸入“make”便可以開始編譯我們的代碼。最終編譯結(jié)果如下:

f4d17376-5bc5-11f0-baa5-92fbcf53809c.jpg

6 下載程序

我們這里將使用PyOCD下載程序,我們把“Geehy.APM32F4xx_DFP.1.0.4.pack”復(fù)制到我們的工程目錄,然后在目錄下啟動(dòng)CMD,輸入:

pyocd flash --erase chip --target apm32f411ve --pack=Geehy.APM32F4xx_DFP.1.0.4.pack build/SysTick_TimeBase.hex

最終效果如下,程序下載完畢后板卡將閃燈,并在串口輸出當(dāng)前的延時(shí)速度。

f4e99dca-5bc5-11f0-baa5-92fbcf53809c.jpg

亮燈效果:

f4f9d780-5bc5-11f0-baa5-92fbcf53809c.gif

注:文章作者在原帖中提供了例程文件,有需要請(qǐng)至原文21ic論壇下載

原文地址:
https://bbs.21ic.com/icview-3329116-1-1.html

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1037

    瀏覽量

    85371
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3676

    瀏覽量

    43803
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    679

    瀏覽量

    33967
  • 極海半導(dǎo)體
    +關(guān)注

    關(guān)注

    0

    文章

    163

    瀏覽量

    4825

原文標(biāo)題:APM32芯得 EP.59 | 為APM32F411打造可自動(dòng)化的命令行工作流

文章出處:【微信號(hào):geehysemi,微信公眾號(hào):Geehy極海半導(dǎo)體】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于APM32F411 DMA_ADC Handler模式分析及解決

    ADC連續(xù)轉(zhuǎn)換采集,因此,我沒過濾掉ADC采集中開啟中斷配置的信息,開啟了ADC中斷采集,因此這次以APM32F411官方例程中的DMA_ADC例程,復(fù)刻了此次出現(xiàn)的問題。
    的頭像 發(fā)表于 06-24 14:30 ?481次閱讀
    基于<b class='flag-5'>APM32F411</b> DMA_ADC Handler模式分析及解決

    極海APM32F411微控制器硬件FPU使用指南

    APM32F411是一款基于32位Arm Cortex-M4F內(nèi)核的微控制器。硬件FPU是Arm Cortex-M4F的一大優(yōu)勢(shì)。合理應(yīng)用硬件FPU可以大大縮短運(yùn)算時(shí)間。
    的頭像 發(fā)表于 06-28 11:23 ?769次閱讀
    極海<b class='flag-5'>APM32F411</b>微控制器硬件FPU使用指南

    在STM32實(shí)現(xiàn)命令行

    工作中的開發(fā)環(huán)境都是基于linux命令行交互,作為命令行的重度使用者,玩單片機(jī)也要使用命令行工具,百度了一些命令行工具,有幾個(gè)不錯(cuò)的開源 c
    發(fā)表于 12-09 11:32 ?3090次閱讀

    TinyMaix框架的內(nèi)存需求超過了APM32F411的可用內(nèi)存,導(dǎo)致運(yùn)行失敗,怎么能成功優(yōu)化?

    TinyMaix框架的內(nèi)存需求超過了APM32F411的可用內(nèi)存,導(dǎo)致運(yùn)行失敗。怎么能成功優(yōu)化?
    發(fā)表于 09-27 09:44

    cmd網(wǎng)絡(luò)經(jīng)典命令行

    cmd網(wǎng)絡(luò)經(jīng)典命令行:
    發(fā)表于 06-11 15:17 ?36次下載
    cmd網(wǎng)絡(luò)經(jīng)典<b class='flag-5'>命令行</b>

    caxa命令行中的應(yīng)用

    caxa命令行中的應(yīng)用 命令行對(duì)于大多用戶來說往往只是輸入數(shù)據(jù)的作用,但是其中的奧妙還有很多,下面就給大家
    發(fā)表于 10-18 18:18 ?2421次閱讀

    CMD的命令行高級(jí)教程

    CMD的命令行高級(jí)教程
    發(fā)表于 10-24 08:31 ?30次下載
    CMD的<b class='flag-5'>命令行</b>高級(jí)教程

    XenServer2016命令行方式自動(dòng)化安裝

    命令行+自動(dòng)化的顧問XE 2016
    的頭像 發(fā)表于 05-31 11:42 ?1959次閱讀

    Shell命令行解釋器簡(jiǎn)介

    Shell 是一個(gè)命令行解釋器,Shell 用戶提供了與設(shè)備進(jìn)行命令行交互的方式,用戶通過串口、以太網(wǎng)、無線等方式將命令傳輸給具有 Shell 功能的設(shè)備,設(shè)備會(huì)解析
    的頭像 發(fā)表于 08-19 17:20 ?3566次閱讀

    Fcoder從命令行批量轉(zhuǎn)換為TIFF

    何應(yīng)用程序中,讓您只需一個(gè)命令即可自動(dòng)執(zhí)行重復(fù)的轉(zhuǎn)換任務(wù)。 命令行語法和用法 2TIFF圖像轉(zhuǎn)換器軟件可以從Windows 命令提示符、PowerShell或任何其他
    的頭像 發(fā)表于 05-22 14:13 ?1107次閱讀
    Fcoder從<b class='flag-5'>命令行</b>批量轉(zhuǎn)換為TIFF

    linux命令行與shell編程實(shí)戰(zhàn)

    Linux命令行與Shell編程實(shí)戰(zhàn)主要涉及以下內(nèi)容: Linux命令行基礎(chǔ):學(xué)習(xí)Linux命令行的基本操作,如文件管理、進(jìn)程管理、網(wǎng)絡(luò)配置等。熟悉使用命令行能夠提高
    的頭像 發(fā)表于 11-08 10:57 ?1085次閱讀

    linux虛擬機(jī)怎么調(diào)出命令行

    快捷鍵組合Ctrl+Alt+F1 6來切換到命令行界面。如果系統(tǒng)在虛擬機(jī)中,則可以使用Ctrl+Alt+shift+F1 6組合鍵來切換到命令行界面。在
    的頭像 發(fā)表于 11-08 11:28 ?3699次閱讀

    linux切換到命令行模式

    在Linux中,可以通過以下步驟切換到命令行模式: 打開終端。可以在應(yīng)用菜單中找到終端或命令行終端。 在終端中輸入命令“exit”或“l(fā)ogout”,然后按回車鍵。 系統(tǒng)會(huì)提示您輸入管理員密碼。輸入
    的頭像 發(fā)表于 11-13 16:47 ?2230次閱讀

    APM32F411板的python+pyocd命令行操作

    前段時(shí)間學(xué)習(xí)了一下如何使用pyocd配合APM32F411VCTINY板在命令行下給它進(jìn)行各種騷操作,在使用一段時(shí)間后就想著:pyocd是基于python的,那是不是也可以使用python腳本+pyocd使用起來呢?
    的頭像 發(fā)表于 10-18 16:21 ?993次閱讀
    <b class='flag-5'>APM32F411</b>板的python+pyocd<b class='flag-5'>命令行</b>操作

    AI工作流自動(dòng)化是做什么的

    AI工作流自動(dòng)化是指利用人工智能技術(shù),對(duì)工作流程中的重復(fù)性、規(guī)則明確的任務(wù)進(jìn)行自動(dòng)化處理的過程。那么,AI工作流
    的頭像 發(fā)表于 01-06 17:57 ?715次閱讀