arduino / arduino/ArduinoModule-CMSIS-Atmel
BUG: samd51j19 incorrect NVIC Priority levels (is 2, should be 3)
まだ誰も着手していません。
- 主要言語
- C
- スター
- 25
- フォーク
- 38
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
In the process of debugging a samd51j19 based system (Adafruit Feather Express M4) I noticed that the __NVIC_PRIO_BITS defined in the file CMSIS/Device/ATMEL/samd51/include/samd51j19a.h is (incorrectly) set to 2.
The official Microchip data sheet "SAM D5x/E5x Family Data Sheet (2019)" section 10.1.3 (pg 62) shows the number of priority levels is 3. Hence I believe the include file is wrong, and the definition should be:
#define __NVIC_PRIO_BITS 3 /*!< Number of bits used for Priority Levels */
On my physical devices, there certainly are 3 priority levels. Trying to run FreeRTOS, where 3 bits are used, on the same platform uncovered this. Using the CMSIS __NVIC functions to set priorities of interrupt handlers causes some challenges as you need to use levels numerically at or above 5 (101) for handlers calling into FreeRTOS -- and only one level (6) can effectively be assigned through the CMSIS functions (11...... -> 110.....).
Before/in parallel with creating a pull request, I wanted to check for any obvious things I may have missed?
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
CMSIS/Device/ATMEL/samd51/include/samd51j19a.hから始め、__NVIC_PRIO_BITSをSAM D5x/E5x Family Data Sheet (2019)のセクション10.1.3と比較します。ヘッダーが文書化されている3つの優先度ビットを示し、変更が説明されているCMSISおよびFreeRTOSの優先度動作に照らして確認されれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- c
- 領域
- embedded-iot
- issue の種類
- バグ
- 難易度
- 1/5
- 見積もり時間
- 1時間未満
- 活発さ
- 停滞
- 明瞭さ
- 明確に書かれている
- 初心者へのやさしさ
- 48/100