arduino / arduino/ArduinoModule-CMSIS-Atmel

BUG: samd51j19 incorrect NVIC Priority levels (is 2, should be 3)

オープン
#14 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
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?

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. 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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。