Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix time conversion issues in PAL events #1566

Merged
merged 2 commits into from
Mar 2, 2020

Conversation

martin-kuhn
Copy link
Contributor

Description

Debug checks showed, that the chVTSet method is always called with a delay of zero, which should not be done.
The delay of zero was caused by dividing the ticks value by TIME_CONVERSION__TO_MILLISECONDS (=10000) which is not necessary. The compareValueTicks is already in CMSIS Ticks there, which is equal to milliseconds.
We also have to use the HAL_Time_CurrentSysTicks() method wherever the value is in CMSIS ticks instead of the HAL_Time_CurrentTime() method which returns a value in .NET ticks.

How Has This Been Tested?

This has been tested on a custom STM32F427 based MCU board.

Types of changes

  • Improvement (non-breaking change that improves a feature, code or algorithm)
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

Signed-off-by: Martin Kuhn martin.kuhn@csa.ch

@nfbot
Copy link
Member

nfbot commented Feb 26, 2020

Hi @martin-kuhn,

I'm nanoFramework bot.
Thank you for your contribution!

A human will be reviewing it shortly. 😉

@josesimoes josesimoes added Platform: STM32 Everything related specifically with ChibiOS platform Status: under review Type: bug labels Feb 26, 2020
Copy link
Member

@josesimoes josesimoes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. I'm yet to test this further to make sure the timings are correct.

@josesimoes
Copy link
Member

Looks good on infinite loop testing.

Here's s screeshot from the scope output for a toggle on an infinite loop with 125ms.
image

@josesimoes
Copy link
Member

Running the timer sample shows some curious results:

  1. Running with debugger attached it blinks the complete sequence as expected.

  2. Running without debugger attached it blinks only 3 timer and then the board reboots.

🤔 this smells like a watchdog issue....

@josesimoes
Copy link
Member

Care to merge the latest changes from develop branch please so this can be merged?

@martin-kuhn
Copy link
Contributor Author

Yes, it's done.
Could you solve the timer problem?

Copy link
Member

@josesimoes josesimoes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@josesimoes josesimoes changed the title fix time conversion issues Fix time conversion issues in PAL events Mar 2, 2020
@josesimoes josesimoes merged commit facc643 into nanoframework:develop Mar 2, 2020
@martin-kuhn martin-kuhn deleted the timeconversion branch March 3, 2020 11:07
josesimoes added a commit to Eclo/nf-interpreter that referenced this pull request Mar 10, 2020
- Port changes from nanoframework#1566 to ESP32, NXP and TI platforms.
- Improve check of "no delay" condition and dequeue and execute immediately instead of calling the timer API just because.

Signed-off-by: josesimoes <jose.simoes@eclo.solutions>
@josesimoes josesimoes mentioned this pull request Mar 10, 2020
10 tasks
josesimoes added a commit to Eclo/nf-interpreter that referenced this pull request Mar 10, 2020
- After the fix with nanoframework#1566 STM32 targets where rebooting on idle. The reason was the watchdog kicking in as the wait now happens inside the Events_WaitForEvents loop.

Signed-off-by: josesimoes <jose.simoes@eclo.solutions>
@josesimoes josesimoes mentioned this pull request Mar 10, 2020
10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Platform: STM32 Everything related specifically with ChibiOS platform Type: bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants