AdaCore / AdaCore/Ada_Drivers_Library

Microbit.Time resets the board

Open
#421 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Ada
Stars
286
Forks
165
PR merge metrics
No merged PRs in 30d

Description

Hey there!
I'm trying to use ADL on a Micro:Bit v1 board, with no luck so far.
My issue is: If I flash anything that includes Microbit.Time, the board will get stuck in a reset loop.

I managed to narrow down the issue to 1kHz timer in the Init function.
Whenever the timer reaches the Compare value, and the interrupt happens, the board resets itself.
If I increase the Compare time, the board will reset later.

(additional info: I can flash and run the example code in GNAT studio, but if I include Microbit.Time, the same reset happens)

Any ideas what the core issue might be, and how I could solve it?
Thanks in advance!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with Microbit.Time and its Init function, then reproduce the reset using a Micro:Bit v1 board and the GNAT Studio example. Inspect the 1kHz timer, its Compare value, and the interrupt point described in the report. Done means code including Microbit.Time runs without the board entering a reset loop.

Written by the indexing model from the issue text.

Assessment

Domain
embedded-iot
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.