首頁 > 評測 > 【NUCLEO-U5A5ZJ-Q測評】用ThreadX點個燈
【NUCLEO-U5A5ZJ-Q測評】用ThreadX點個燈
- [導(dǎo)讀]
- 1、STM32U5A5系列芯片是STMicroelectronics推出的一款超低功耗微控制器系列,基于高性能Arm Cortex-M33 32位RISC內(nèi)核,最高工作頻率為160MHz。該系列芯片具有以下特點: 高性能:Cortex-M33內(nèi)核具有單精度FPU(浮點
高性能:Cortex-M33內(nèi)核具有單精度FPU(浮點單元),支持所有Arm單精度數(shù)據(jù)處理指令和所有數(shù)據(jù)類型,還實現(xiàn)了完整的DSP(數(shù)字信號處理)指令集和MPU(內(nèi)存保護(hù)單元),可增強應(yīng)用安全性。
大容量存儲器:該系列芯片嵌入高速存儲器(4Mbytes Flash 和2.5Mbytes SRAM),可滿足各種應(yīng)用需求。STM32U5A5是STM32 系列中首款提供 4 MB Flash 的 MCU,64 至 169 引腳封裝都支持。
豐富的通信接口:該系列芯片提供豐富的通信接口,包括6個I2C、3個SPI、4個USART、2個UART、1個低功耗UART、2個SAI、1個DCMI(數(shù)碼相機接口)、2個SDMMC、1個FDCAN、1個USB OTG高速、1個USB Type-C/USB Power Delivery控制器和1個通用同步8-/16位PSSI(并行數(shù)據(jù)輸入/輸出從屬接口)。特別是高速的USB接口省掉了外接高速USB PHY的麻煩。
廣泛的應(yīng)用領(lǐng)域:該系列芯片可廣泛應(yīng)用于工業(yè)控制、物聯(lián)網(wǎng)、消費電子、醫(yī)療保健等領(lǐng)域。
芯片的內(nèi)核和外設(shè)簡圖如下

2、開發(fā)板 Nucleo-U5A5ZI-Q 基于 144引腳通用Nucleo標(biāo)準(zhǔn)設(shè)計,采用 STM32U5 微控制器,提供了一種靈活且經(jīng)濟的方式來試驗新概念和構(gòu)建原型。通過 STM32U5 微控制器提供的各種性能和功耗特性組合,用戶可以選擇滿足自己需求的解決方案。
通過 ST Zio 連接器(兼容 Arduino Uno V3)和 ST morpho 接頭,可以方便地擴展開發(fā)板的功能,連接各種定制的擴展板。集成了 STLINK-V3E 調(diào)試/編程器,不需要額外的調(diào)試器。

功能詳細(xì)框圖如下:

3、點個燈
下面用ThreadX點個燈。再最新的系列芯片,ST將RTOS和USB協(xié)議棧都轉(zhuǎn)向了ThreadX和USBX.
Azure RTOS ThreadX 是 Microsoft 提供的高級工業(yè)級實時操作系統(tǒng) (RTOS)。 它是專門為深度嵌入式實時 IoT 應(yīng)用程序設(shè)計的。 Azure RTOS ThreadX 提供高級計劃、通信、同步、計時器、內(nèi)存管理和中斷管理功能。 此外,Azure RTOS ThreadX 具有許多高級功能,包括 picokernel 體系結(jié)構(gòu)、preemption-threshold 計劃、event-chaining、執(zhí)行分析、性能指標(biāo)和系統(tǒng)事件跟蹤。 Azure RTOS ThreadX 非常易于使用,適用于要求極其苛刻的嵌入式應(yīng)用程序。 Azure RTOS ThreadX 在各種產(chǎn)品(包括消費者設(shè)備、醫(yī)療電子設(shè)備和工業(yè)控制設(shè)備)上的部署次數(shù)已達(dá)數(shù)十億次。Azure RTOS ThreadX 的占用空間非常小,最少只需要一個 2KB 的指令區(qū)域和 1 KB 的 RAM.
測試使用的是ST提供的ThreadX\Tx_Thread_Creation里面的例子。主要是閃爍LD1用于測試。

創(chuàng)建了3個任務(wù):"Main Thread"、"Thread One"、"Thread Two" 。任務(wù)
"Thread One" - LED_GREEN toggles every 500ms for 5 seconds
"Thread Two" - LED_GREEN toggles every 200ms for 5 seconds
"Main Thread" - Success status (After 3 times) : 'LED_GREEN' toggles every 1 second for ever.
任務(wù)1、2比較簡單就是閃爍LED
- void ThreadOne_Entry(ULONG thread_input)
- {
- (void) thread_input;
- uint8_t count = 0;
- /* Infinite loop */
- while(1)
- {
- HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);
- /* Delay for 500ms (App_Delay is used to avoid context change). */
- App_Delay(50);
- count ++;
- if (count == 10)
- {
- count = 0;
- if (tx_event_flags_set(&EventFlag, THREAD_ONE_EVT, TX_OR) != TX_SUCCESS)
- {
- Error_Handler();
- }
- }
- }
- }
- void MainThread_Entry(ULONG thread_input)
- {
- /* USER CODE BEGIN MainThread_Entry */
- UINT old_prio = 0;
- UINT old_pre_threshold = 0;
- ULONG actual_flags = 0;
- uint8_t count = 0;
- (void) thread_input;
- while (count < 3)
- {
- count++;
- if (tx_event_flags_get(&EventFlag, THREAD_ONE_EVT, TX_OR_CLEAR,
- &actual_flags, TX_WAIT_FOREVER) != TX_SUCCESS)
- {
- Error_Handler();
- }
- else
- {
- /* Update the priority and preemption threshold of ThreadTwo
- to allow the preemption of ThreadOne */
- tx_thread_priority_change(&ThreadTwo, NEW_THREAD_TWO_PRIO, &old_prio);
- x_thread_preemption_change(&ThreadTwo, NEW_THREAD_TWO_PREEMPTION_THRESHOLD, &old_pre_threshold);
- if (tx_event_flags_get(&EventFlag, THREAD_TWO_EVT, TX_OR_CLEAR,
- &actual_flags, TX_WAIT_FOREVER) != TX_SUCCESS)
- {
- Error_Handler();
- }
- else
- {
- /* Reset the priority and preemption threshold of ThreadTwo */
- tx_thread_priority_change(&ThreadTwo, THREAD_TWO_PRIO, &old_prio);
- tx_thread_preemption_change(&ThreadTwo, THREAD_TWO_PREEMPTION_THRESHOLD, &old_pre_threshold);
- }
- }
- }
- /* Destroy ThreadOne and ThreadTwo */
- tx_thread_terminate(&ThreadOne);
- tx_thread_terminate(&ThreadTwo);
- /* Infinite loop */
- while(1)
- {
- HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);
- /* Thread sleep for 1s */
- tx_thread_sleep(100);
- }
- /* USER CODE END MainThread_Entry */
- }
-
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開放投稿
-
人均百萬?英偉達(dá)中國員工收入曝光! 2024-08-29
-
《黑神話:悟空》玩家硬盤升級攻略:提升游戲體驗,暢享3A大作 2024-08-29
-
數(shù)睿數(shù)據(jù)參加《系統(tǒng)與軟件工程 低代碼開發(fā)平臺通用技術(shù)要求》國家標(biāo)準(zhǔn)編制 2024-08-29
- NRF52810藍(lán)牙數(shù)字耳機找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開發(fā)
預(yù)算:¥1100000015小時前
- 12V汽車啟動電源項目BMS設(shè)計
預(yù)算:¥50000023小時前
- 數(shù)據(jù)可視化軟件 開發(fā)
預(yù)算:¥5000023小時前
- PLC項目調(diào)試修改
預(yù)算:¥100001天前
- 起動電機控制器開發(fā)
預(yù)算:¥1100001天前