娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

ThreadX移植——STM32H7+MDK-AC6平臺

發(fā)布者:自由思想最新更新時間:2025-02-28 來源: cnblogs關(guān)鍵字:STM32H7 手機(jī)看文章 掃描二維碼
隨時隨地手機(jī)看文章

一、前言

在uCOS全家桶宣布開源之后被微軟收購的ThreadX也開源了,真是喜大普奔,對于我們這些嵌入式行業(yè)從業(yè)者來說,能夠?qū)W習(xí)這些高含金量的代碼對于眼界的開拓和能力的提升都是很有幫助的。ThreadX還包含了NETX、GUIX、FILEX、USBX等豐富的組件,幾乎包含了嵌入式開發(fā)中的所有場景,這些組件和ThreadX-RTOS能夠完美的配合完成一條龍的開發(fā)。ThreadX的github地址:[Azure RTOS (github.com)]:

二、準(zhǔn)備

ThreadX在更新了幾個版本之后已經(jīng)提供了多個平臺的移植端口,包括AC5、AC6、GCC、IAR,現(xiàn)在可以更方便地移植到各編譯器平臺了。本次移植是在STM32H743 + MDK-AC6 + ThreadX6.1.2下完成。首先使用STM32CubeMX新建一個工程,配置了LED、KEY、UART,然后將下載的ThreadX放在同一工程下(移植用到common和ports/cortex_m7/ac6下的文件)。

三、配置

1、添加文件及參數(shù)

  • 工程新增ThreadX/Port、ThreadX/Src分組,ThreadX/Portf組中添加ports/cortex_m7/ac6/src目錄下所有文件以及portscortex_m7ac6example_buildsample_threadx目錄下的tx_initialize_low_level.S文件; ThreadX/Src組中添加threadxcommonsrc下所有文件。添加完成如下圖所示:

  • 配置工程宏定義參數(shù)和文件包含路徑如下所示。

其中USE_HAL_DRIVER和STM32H743xx是使用HAL庫創(chuàng)建工程需要包含的定義,TX_ENABLE_FPU_SUPPORT是使能ThreadX的浮點運算支持需要定義的,在readme_threadx.txt文檔中有如下描述:


If saving the context of the FPU registers

is needed, the ThreadX library should be re-built with TX_ENABLE_FPU_SUPPORT defined.


當(dāng)然要正確的使用硬件浮點運算功能還應(yīng)該開啟MDK中的如下配置:

2、修改適配文件

主要是對tx_initialize_low_level.S文件進(jìn)行修改,該文件作用是初始化棧地址和向量表、配置系統(tǒng)心跳節(jié)拍、配置部分中斷優(yōu)先級、定義部分中斷處理函數(shù)。但是其中有些工作在STM32H743的啟動文件startup_stm32h743xx.s中已經(jīng)做了,而STM32啟動文件所實現(xiàn)的一些功能這個文件又沒有實現(xiàn)。因為該文件是針對cortex_m7內(nèi)核芯片做的,沒有針對具體某一款芯片,所以沒有STM32的啟動文件實現(xiàn)的功能完善,因此不能替代啟動文件。這里的修改方法是不動STM32啟動文件,修改tx_initialize_low_level.S文件,在此提供兩種修改方案:1、根據(jù)沖突修改tx_initialize_low_level.S文件內(nèi)容;2、將tx_initialize_low_level.S文件改為C語言實現(xiàn)(STM32啟動文件已經(jīng)實現(xiàn)的不管,只需將ThreadX需要配置的功能用C實現(xiàn))。

  • 方案1修改后內(nèi)容如下(修改處已標(biāo)注):

@/**************************************************************************/

@/*                                                                        */

@/*       Copyright (c) Microsoft Corporation. All rights reserved.        */

@/*                                                                        */

@/*       This software is licensed under the Microsoft Software License   */

@/*       Terms for Microsoft Azure RTOS. Full text of the license can be  */

@/*       found in the LICENSE file at https://aka.ms/AzureRTOS_EULA       */

@/*       and in the root directory of this software.                      */

@/*                                                                        */

@/**************************************************************************/

@

@

@/**************************************************************************/

@/**************************************************************************/

@/**                                                                       */

@/** ThreadX Component                                                     */

@/**                                                                       */

@/**   Initialize                                                          */

@/**                                                                       */

@/**************************************************************************/

@/**************************************************************************/

@

@

    .global     _tx_thread_system_stack_ptr

    .global     _tx_initialize_unused_memory

    .global     _tx_timer_interrupt

    .global     __main

    .global     __tx_SVCallHandler

    .global     __tx_PendSVHandler

    .global     __tx_NMIHandler                     @ NMI

    .global     __tx_BadHandler                     @ HardFault

    .global     __tx_SVCallHandler                  @ SVCall

    .global     __tx_DBGHandler                     @ Monitor

    .global     __tx_PendSVHandler                  @ PendSV

    .global     __tx_SysTickHandler                 @ SysTick

    .global     __tx_IntHandler                     @ Int 0

@

@

SYSTEM_CLOCK      =   480000000 @---modify by user(系統(tǒng)頻率)

SYSTICK_CYCLES    =   ((SYSTEM_CLOCK / 1000) -1) @---modify by user(時鐘節(jié)拍)


    .text 32

    .align 4

    .syntax unified

@/**************************************************************************/

@/*                                                                        */

@/*  FUNCTION                                               RELEASE        */

@/*                                                                        */

@/*    _tx_initialize_low_level                          Cortex-M7/AC6     */

@/*                                                           6.1          */

@/*  AUTHOR                                                                */

@/*                                                                        */

@/*    William E. Lamie, Microsoft Corporation                             */

@/*                                                                        */

@/*  DESCRIPTION                                                           */

@/*                                                                        */

@/*    This function is responsible for any low-level processor            */

@/*    initialization, including setting up interrupt vectors, setting     */

@/*    up a periodic timer interrupt source, saving the system stack       */

@/*    pointer for use in ISR processing later, and finding the first      */

@/*    available RAM memory address for tx_application_define.             */

@/*                                                                        */

@/*  INPUT                                                                 */

@/*                                                                        */

@/*    None                                                                */

[1] [2] [3]
關(guān)鍵字:STM32H7 引用地址:ThreadX移植——STM32H7+MDK-AC6平臺

上一篇:ThreadX——IPC應(yīng)用之事件標(biāo)志
下一篇:ESP32學(xué)習(xí)筆記(24)——OTA(空中升級)接口使用(原生API)

小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 城固县| 内乡县| 都江堰市| 景东| 湘潭市| 永登县| 和田县| 曲靖市| 津市市| 隆子县| 遂昌县| 明溪县| 饶阳县| 西充县| 凌源市| 新化县| 康平县| 中山市| 苍梧县| 武宁县| 河西区| 克拉玛依市| 芜湖市| 凭祥市| 车险| 乌拉特后旗| 青神县| 延吉市| 营口市| 阿图什市| 平度市| 揭东县| 河西区| 潍坊市| 庄浪县| 栖霞市| 丹棱县| 前郭尔| 东阿县| 葫芦岛市| 两当县|