首頁(yè) > 評(píng)測(cè) > 【NUCLEO-U5A5ZJ-Q測(cè)評(píng)】用ThreadX點(diǎn)個(gè)燈
【NUCLEO-U5A5ZJ-Q測(cè)評(píng)】用ThreadX點(diǎn)個(gè)燈
- [導(dǎo)讀]
- 1、STM32U5A5系列芯片是STMicroelectronics推出的一款超低功耗微控制器系列,基于高性能Arm Cortex-M33 32位RISC內(nèi)核,最高工作頻率為160MHz。該系列芯片具有以下特點(diǎn): 高性能:Cortex-M33內(nèi)核具有單精度FPU(浮點(diǎn)
1、STM32U5A5系列芯片是STMicroelectronics推出的一款超低功耗微控制器系列,基于高性能Arm Cortex-M33 32位RISC內(nèi)核,最高工作頻率為160MHz。該系列芯片具有以下特點(diǎn):
高性能:Cortex-M33內(nèi)核具有單精度FPU(浮點(diǎn)單元),支持所有Arm單精度數(shù)據(jù)處理指令和所有數(shù)據(jù)類型,還實(shí)現(xiàn)了完整的DSP(數(shù)字信號(hào)處理)指令集和MPU(內(nèi)存保護(hù)單元),可增強(qiáng)應(yīng)用安全性。
大容量存儲(chǔ)器:該系列芯片嵌入高速存儲(chǔ)器(4Mbytes Flash 和2.5Mbytes SRAM),可滿足各種應(yīng)用需求。STM32U5A5是STM32 系列中首款提供 4 MB Flash 的 MCU,64 至 169 引腳封裝都支持。
豐富的通信接口:該系列芯片提供豐富的通信接口,包括6個(gè)I2C、3個(gè)SPI、4個(gè)USART、2個(gè)UART、1個(gè)低功耗UART、2個(gè)SAI、1個(gè)DCMI(數(shù)碼相機(jī)接口)、2個(gè)SDMMC、1個(gè)FDCAN、1個(gè)USB OTG高速、1個(gè)USB Type-C/USB Power Delivery控制器和1個(gè)通用同步8-/16位PSSI(并行數(shù)據(jù)輸入/輸出從屬接口)。特別是高速的USB接口省掉了外接高速USB PHY的麻煩。
廣泛的應(yīng)用領(lǐng)域:該系列芯片可廣泛應(yīng)用于工業(yè)控制、物聯(lián)網(wǎng)、消費(fèi)電子、醫(yī)療保健等領(lǐng)域。
芯片的內(nèi)核和外設(shè)簡(jiǎn)圖如下
2、開發(fā)板 Nucleo-U5A5ZI-Q 基于 144引腳通用Nucleo標(biāo)準(zhǔn)設(shè)計(jì),采用 STM32U5 微控制器,提供了一種靈活且經(jīng)濟(jì)的方式來試驗(yàn)新概念和構(gòu)建原型。通過 STM32U5 微控制器提供的各種性能和功耗特性組合,用戶可以選擇滿足自己需求的解決方案。
通過 ST Zio 連接器(兼容 Arduino Uno V3)和 ST morpho 接頭,可以方便地?cái)U(kuò)展開發(fā)板的功能,連接各種定制的擴(kuò)展板。集成了 STLINK-V3E 調(diào)試/編程器,不需要額外的調(diào)試器。
功能詳細(xì)框圖如下:
3、點(diǎn)個(gè)燈
下面用ThreadX點(diǎn)個(gè)燈。再最新的系列芯片,ST將RTOS和USB協(xié)議棧都轉(zhuǎn)向了ThreadX和USBX.
Azure RTOS ThreadX 是 Microsoft 提供的高級(jí)工業(yè)級(jí)實(shí)時(shí)操作系統(tǒng) (RTOS)。 它是專門為深度嵌入式實(shí)時(shí) IoT 應(yīng)用程序設(shè)計(jì)的。 Azure RTOS ThreadX 提供高級(jí)計(jì)劃、通信、同步、計(jì)時(shí)器、內(nèi)存管理和中斷管理功能。 此外,Azure RTOS ThreadX 具有許多高級(jí)功能,包括 picokernel 體系結(jié)構(gòu)、preemption-threshold 計(jì)劃、event-chaining、執(zhí)行分析、性能指標(biāo)和系統(tǒng)事件跟蹤。 Azure RTOS ThreadX 非常易于使用,適用于要求極其苛刻的嵌入式應(yīng)用程序。 Azure RTOS ThreadX 在各種產(chǎn)品(包括消費(fèi)者設(shè)備、醫(yī)療電子設(shè)備和工業(yè)控制設(shè)備)上的部署次數(shù)已達(dá)數(shù)十億次。Azure RTOS ThreadX 的占用空間非常小,最少只需要一個(gè) 2KB 的指令區(qū)域和 1 KB 的 RAM.
測(cè)試使用的是ST提供的ThreadX\Tx_Thread_Creation里面的例子。主要是閃爍LD1用于測(cè)試。
創(chuàng)建了3個(gè)任務(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比較簡(jiǎn)單就是閃爍LED
復(fù)制代碼當(dāng)"Thread One"、"Thread Two"完成之后,"Main Thread"將會(huì)刪除這2個(gè)任務(wù)。然后將用戶的綠燈1秒閃爍一次。
復(fù)制代碼STM32可以免費(fèi)使用ThreadX全家桶之后,ST的芯片已經(jīng)基本放棄了freertos。因?yàn)榘宋募到y(tǒng),網(wǎng)絡(luò)協(xié)議,USB協(xié)議棧等,所以ThreadX全家桶更加方便適合學(xué)習(xí)和使用。如果有其它的RTOS的基礎(chǔ),轉(zhuǎn)到ThreadX上應(yīng)該非常簡(jiǎn)單。
高性能:Cortex-M33內(nèi)核具有單精度FPU(浮點(diǎn)單元),支持所有Arm單精度數(shù)據(jù)處理指令和所有數(shù)據(jù)類型,還實(shí)現(xiàn)了完整的DSP(數(shù)字信號(hào)處理)指令集和MPU(內(nèi)存保護(hù)單元),可增強(qiáng)應(yīng)用安全性。
大容量存儲(chǔ)器:該系列芯片嵌入高速存儲(chǔ)器(4Mbytes Flash 和2.5Mbytes SRAM),可滿足各種應(yīng)用需求。STM32U5A5是STM32 系列中首款提供 4 MB Flash 的 MCU,64 至 169 引腳封裝都支持。
豐富的通信接口:該系列芯片提供豐富的通信接口,包括6個(gè)I2C、3個(gè)SPI、4個(gè)USART、2個(gè)UART、1個(gè)低功耗UART、2個(gè)SAI、1個(gè)DCMI(數(shù)碼相機(jī)接口)、2個(gè)SDMMC、1個(gè)FDCAN、1個(gè)USB OTG高速、1個(gè)USB Type-C/USB Power Delivery控制器和1個(gè)通用同步8-/16位PSSI(并行數(shù)據(jù)輸入/輸出從屬接口)。特別是高速的USB接口省掉了外接高速USB PHY的麻煩。
廣泛的應(yīng)用領(lǐng)域:該系列芯片可廣泛應(yīng)用于工業(yè)控制、物聯(lián)網(wǎng)、消費(fèi)電子、醫(yī)療保健等領(lǐng)域。
芯片的內(nèi)核和外設(shè)簡(jiǎn)圖如下
2、開發(fā)板 Nucleo-U5A5ZI-Q 基于 144引腳通用Nucleo標(biāo)準(zhǔn)設(shè)計(jì),采用 STM32U5 微控制器,提供了一種靈活且經(jīng)濟(jì)的方式來試驗(yàn)新概念和構(gòu)建原型。通過 STM32U5 微控制器提供的各種性能和功耗特性組合,用戶可以選擇滿足自己需求的解決方案。
通過 ST Zio 連接器(兼容 Arduino Uno V3)和 ST morpho 接頭,可以方便地?cái)U(kuò)展開發(fā)板的功能,連接各種定制的擴(kuò)展板。集成了 STLINK-V3E 調(diào)試/編程器,不需要額外的調(diào)試器。
功能詳細(xì)框圖如下:
3、點(diǎn)個(gè)燈
下面用ThreadX點(diǎn)個(gè)燈。再最新的系列芯片,ST將RTOS和USB協(xié)議棧都轉(zhuǎn)向了ThreadX和USBX.
Azure RTOS ThreadX 是 Microsoft 提供的高級(jí)工業(yè)級(jí)實(shí)時(shí)操作系統(tǒng) (RTOS)。 它是專門為深度嵌入式實(shí)時(shí) IoT 應(yīng)用程序設(shè)計(jì)的。 Azure RTOS ThreadX 提供高級(jí)計(jì)劃、通信、同步、計(jì)時(shí)器、內(nèi)存管理和中斷管理功能。 此外,Azure RTOS ThreadX 具有許多高級(jí)功能,包括 picokernel 體系結(jié)構(gòu)、preemption-threshold 計(jì)劃、event-chaining、執(zhí)行分析、性能指標(biāo)和系統(tǒng)事件跟蹤。 Azure RTOS ThreadX 非常易于使用,適用于要求極其苛刻的嵌入式應(yīng)用程序。 Azure RTOS ThreadX 在各種產(chǎn)品(包括消費(fèi)者設(shè)備、醫(yī)療電子設(shè)備和工業(yè)控制設(shè)備)上的部署次數(shù)已達(dá)數(shù)十億次。Azure RTOS ThreadX 的占用空間非常小,最少只需要一個(gè) 2KB 的指令區(qū)域和 1 KB 的 RAM.
測(cè)試使用的是ST提供的ThreadX\Tx_Thread_Creation里面的例子。主要是閃爍LD1用于測(cè)試。
創(chuàng)建了3個(gè)任務(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比較簡(jiǎn)單就是閃爍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)友評(píng)論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開放投稿
行業(yè)新聞
論壇活動(dòng)
more+
公開課
more+
項(xiàng)目外包
more+
- NRF52810藍(lán)牙數(shù)字耳機(jī)找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開發(fā)
預(yù)算:¥1100000015小時(shí)前
- 12V汽車啟動(dòng)電源項(xiàng)目BMS設(shè)計(jì)
預(yù)算:¥50000023小時(shí)前
- 數(shù)據(jù)可視化軟件 開發(fā)
預(yù)算:¥5000023小時(shí)前
- PLC項(xiàng)目調(diào)試修改
預(yù)算:¥100001天前
- 起動(dòng)電機(jī)控制器開發(fā)
預(yù)算:¥1100001天前