マインドマップギャラリー GD32 プロセッサーのナレッジマップ
GigaDevice の革新的なプロセッサである GD32 プロセッサは、幅広いアプリケーションの見通しと強力な開発サポートを備えた高性能、低消費電力の 32 ビット マイクロコントローラ シリーズです。
2024-11-30 07:30:42 に編集されました魯米:靈性覺醒的10個維度。當你停止尋找自己,便會找到整個宇宙,因為你正在尋找的東西,也在尋找你。任何你每天持之以恆在做的事情,都可以為你打開一扇通向精神深處的門。靜默中,我滑入祕境,萬般皆妙樂觀察身邊的神奇,不要聲張。你生而有翼,為何喜歡爬行?靈魂擁有了它自己的耳朵,能夠聽到頭腦無法理解的事情。向內尋求一切的答案吧,宇宙中的一切都在你體內。情人們並不最終相遇某處,這個世界沒有離別。傷口是光進入你內心的地方。
慢性心力衰竭,不僅僅是心率的快慢問題!它源於心肌收縮與舒張功能的下降,導致心輸出量不足,進而引發肺循環充血和體循環淤血。從病因、誘因到代償機制,心衰的病理生理過程複雜多樣。通過控制水腫、減輕心臟前後負荷、改善心臟舒縮功能,以及防治基本病因,我們可以有效應對這一挑戰。了解心衰的機制與臨床表現,掌握防治策略,才能更好地守護心臟健康。
缺血再灌注損傷是器官或組織恢復血液供應後,細胞功能代謝障礙和結構破壞反而加重的現象。其主要機制包括自由基生成增多、鈣超載以及微血管和白細胞的作用。心臟和腦是常見的受損器官,表現為心肌代謝和超微結構變化、心功能下降等。防治措施包括清除自由基、減輕鈣超載、改善代謝和控制再灌注條件,如低鈉、低溫、低壓等。理解這些機制有助於製定有效治療方案,減輕缺血性損傷。
魯米:靈性覺醒的10個維度。當你停止尋找自己,便會找到整個宇宙,因為你正在尋找的東西,也在尋找你。任何你每天持之以恆在做的事情,都可以為你打開一扇通向精神深處的門。靜默中,我滑入祕境,萬般皆妙樂觀察身邊的神奇,不要聲張。你生而有翼,為何喜歡爬行?靈魂擁有了它自己的耳朵,能夠聽到頭腦無法理解的事情。向內尋求一切的答案吧,宇宙中的一切都在你體內。情人們並不最終相遇某處,這個世界沒有離別。傷口是光進入你內心的地方。
慢性心力衰竭,不僅僅是心率的快慢問題!它源於心肌收縮與舒張功能的下降,導致心輸出量不足,進而引發肺循環充血和體循環淤血。從病因、誘因到代償機制,心衰的病理生理過程複雜多樣。通過控制水腫、減輕心臟前後負荷、改善心臟舒縮功能,以及防治基本病因,我們可以有效應對這一挑戰。了解心衰的機制與臨床表現,掌握防治策略,才能更好地守護心臟健康。
缺血再灌注損傷是器官或組織恢復血液供應後,細胞功能代謝障礙和結構破壞反而加重的現象。其主要機制包括自由基生成增多、鈣超載以及微血管和白細胞的作用。心臟和腦是常見的受損器官,表現為心肌代謝和超微結構變化、心功能下降等。防治措施包括清除自由基、減輕鈣超載、改善代謝和控制再灌注條件,如低鈉、低溫、低壓等。理解這些機制有助於製定有效治療方案,減輕缺血性損傷。
GD32
GD32F307C
SRAMからブートする
Reset_Handler のアドレスは 0x200001e1 である必要があります
マップファイルを確認する
.s ファイル内のベクトル テーブルを調整する
__Vectors_End の前に追加
正確な数は状況によって異なります
ターゲットの IROM1 IRAM1 を調整する
Flashダウンロードを調整する
まずは main 関数を変更します
nvic_vector_table_set(NVIC_VECTTAB_RAM、0x00)
NVIC 割り込みベクタ テーブルのベース アドレスを設定する
STM32
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x00);
注: STM32 にはマクロ VECT_TAB_SRM 制御があります
SystemInit();
NVIC割り込み
割り込み要求 (IRQ) の管理を担当します。
割り込み優先度管理
: NVIC は最大 256 の割り込み優先順位レベルをサポートしますが、GD32F307C は通常、そのうち 16 レベルのみを使用します。各割り込みには優先順位レベルを割り当てることができ、優先順位の値が低いほど優先順位が高いことを示します。
割り込みベクタテーブル
: NVIC は、割り込みベクタ テーブルを使用して、割り込みサービス ルーチン (ISR) のアドレスを保存します。割り込みが発生すると、NVIC は割り込み番号に基づいてベクタ テーブルから対応する ISR アドレスを取得し、このアドレスにジャンプして ISR を実行します。
ネストを解除する
: NVIC は割り込みのネスティングをサポートしています。つまり、高優先度の割り込みが低優先度の割り込み処理に割り込むことができます。
割り込みの有効化と無効化
: NVIC では、レジスタを通じて各割り込みの有効および無効ステータスを制御できます。
NVICレジスタ
ISER (Interrupt Set-Enable Register): 割り込みを有効にするために使用されます。
ICER (割り込みイネーブルクリアレジスタ): 割り込みを無効にするために使用されます。
ISPR (割り込み保留設定レジスタ): 割り込みを保留ステータスに設定するために使用されます。
ICPR (割り込み保留クリア レジスタ): 割り込みの保留ステータスをクリアするために使用されます。
IPR (割り込み優先順位レジスタ): 割り込みの優先順位を設定するために使用されます。
システムティック
24ビットダウンカウンター
通常、オペレーティング システムのクロック ティックまたは単純な遅延関数を実装するために使用されます。
特徴
自動リロード: SysTick は、カウンターがゼロに減分したときにプリセット値を自動的にリロードするように構成でき、これにより定期的な割り込みが有効になります。
割り込みの生成: SysTick カウンタがゼロになると、SysTick 割り込みがトリガーされます。この割り込みは、通常、オペレーティング システムのタスク スケジューリングまたはタイム スライスのローテーションに使用されます。
シンプルで使いやすい: SysTick は設定と使用が非常に簡単で、通常はいくつかのレジスタを設定するだけで済みます。
登録する
CTRL (コントロールおよびステータス レジスタ): SysTick の動作モードとステータスを制御するために使用されます。
LOAD (リロード値レジスタ): SysTick カウンタのリロード値を設定するために使用されます。
VAL (Current Value Register): 現在の SysTick カウンタの値を読み取るために使用されます。
CALIB (校正値レジスタ): 校正情報を提供するために使用され、通常はオペレーティング システムのクロック ビートに使用されます。
例
ポーリングして文字を読み取る
シリアルポート
USART
アプリケーションシナリオ
外部機器とのクロック同期によるデータ送信など、同期・非同期通信が必要な場合に適しています。
同期モード
非同期モード
UARTに似ている
UART
アプリケーションシナリオ
センサーやデバッグツールなどとの通信など、単純なポイントツーポイントの非同期通信。
非同期モード
非同期通信モードのみをサポートします
M3に対応
FPなしのM4はM3と互換性がありました
FreeRTOS
ポートは CM3 ファイルを使用できます
移植プロセス
1. 準備する
FreeRTOS LTS ソース コードをダウンロード
FreeRTOSv202406.01-LTS
ケイルエンジニアリング
2. FreeRTOS カーネル コード ファイルをプロジェクトの対応するディレクトリにコピーします。
1. プロジェクト直下のディレクトリはFreeRTOSです
2. 切り取ってファイルを保持
croutine.c
イベントグループ.c
list.c
キュー.c
ストリームバッファ.c
タスク.c
タイマー.c
インクルードディレクトリ
ポータブルディレクトリ
メムマンカタログ
RVDS ディレクトリ
ARM_CM3 ディレクトリ
3. FreeRTOSConfig.h
手動で設定可能
他の参照ルーチンを直接コピーすることもできます
3. コードを変更する
gd32f30x_it.c
アノテーション関数 void PendSV_Handler(void)
アノテーション関数 void SVC_Handler(void)
アノテーション関数 void SysTick_Handler(void)
FreeRTOS ファイル port.c の実装を使用する
4. Keil プロジェクトの構成
(1) ターゲットのオプション
包含パス
..\FreeRTOS\include
..\FreeRTOS\ポータブル\RVDS\ARM_CM3
(2) プロジェクトアイテムの管理
プロジェクトアイテム
グループ
グループを追加
FreeRTOS_コア
FreeRTOS_ポート
5. プログラム リファレンス FreeRTOS API
例
xTimer作成
xタスク作成
実戦
参照ヘッダファイル
#include "FreeRTOS.h"
他の
プロジェクト
keil5 は keil4 プロジェクトを開きます
ファイル名を直接変更 uproj -> uprojx
GD32 プロセッサーのナレッジマップ
NVIC割り込み
割り込み要求 (IRQ) の管理を担当します。
割り込み優先度管理
NVIC は最大 256 の割り込み優先順位レベルをサポートしますが、GD32F307C は通常、そのうち 16 レベルのみを使用します。各割り込みには優先順位レベルを割り当てることができ、優先順位の値が低いほど優先順位が高いことを示します。
割り込みベクタテーブル
NVIC は、割り込みベクタ テーブルを使用して、割り込みサービス ルーチン (ISR) のアドレスを保存します。割り込みが発生すると、NVIC は割り込み番号に基づいてベクタ テーブルから対応する ISR アドレスを取得し、このアドレスにジャンプして ISR を実行します。
ネストを解除する
NVIC は割り込みのネスティングをサポートしています。つまり、高優先度の割り込みが低優先度の割り込み処理に割り込むことができます。
割り込みの有効化と無効化
NVIC を使用すると、各割り込みの有効および無効ステータスをレジスタを通じて制御できます。
NVICレジスタ
ISER (Interrupt Set-Enable Register): 割り込みを有効にするために使用されます。
ICER (割り込みイネーブルクリアレジスタ): 割り込みを無効にするために使用されます。
ISPR (割り込み保留設定レジスタ): 割り込みを保留ステータスに設定するために使用されます。
ICPR (割り込み保留クリア レジスタ): 割り込みの保留ステータスをクリアするために使用されます。
IPR (割り込み優先順位レジスタ): 割り込みの優先順位を設定するために使用されます。
システムティック
24ビットダウンカウンター
通常、オペレーティング システムのクロック ティックまたは単純な遅延関数を実装するために使用されます。
特徴
自動リロード: SysTick は、カウンターがゼロに減分したときにプリセット値を自動的にリロードするように構成でき、これにより定期的な割り込みが有効になります。
割り込みの生成: SysTick カウンタがゼロになると、SysTick 割り込みがトリガーされます。この割り込みは、通常、オペレーティング システムのタスク スケジューリングまたはタイム スライスのローテーションに使用されます。
シンプルで使いやすい: SysTick は設定と使用が非常に簡単で、通常はいくつかのレジスタを設定するだけで済みます。
登録する
CTRL (コントロールおよびステータス レジスタ): SysTick の動作モードとステータスを制御するために使用されます。
LOAD (リロード値レジスタ): SysTick カウンタのリロード値を設定するために使用されます。
VAL (Current Value Register): 現在の SysTick カウンタの値を読み取るために使用されます。
CALIB (校正値レジスタ): 校正情報を提供するために使用され、通常はオペレーティング システムのクロック ビートに使用されます。
例
シリアルポート
USART
アプリケーションシナリオ
外部機器とのクロック同期によるデータ送信など、同期・非同期通信が必要な場合に適しています。
同期モード
非同期モード
UARTに似ている
UART
アプリケーションシナリオ
センサーやデバッグツールなどとの通信など、単純なポイントツーポイントの非同期通信。
非同期モード
非同期通信モードのみをサポートします