Skip to content
This repository was archived by the owner on Jun 5, 2019. It is now read-only.
This repository was archived by the owner on Jun 5, 2019. It is now read-only.

Question about Multithreading #506

@Michaelb-NGC

Description

@Michaelb-NGC

This was a post that I did at GHI,, but was referred to this forum as it tends to dig in deeper than the hobbiest does,, but not as deep as a professional programmer. I am slowly getting a better understanding of how all of this works, and appreciate any help.
Thanks.

It was my understanding, that the Thread Scheduler was ran at the CRL level...
But yet,, when digging into the 1-Wire protocols at the PAL Layer,, I run into this
C++

//timing critical, so I'll disable interrupts here
GLOBAL_LOCK(irq); //EA = 0;

Then in reading more,, I find:

As of v4.4 the updated port of the lwIP network stack requires a minimal pre-emptive thread scheduler
  1. So,,, my questions are: Does the CRL thread scheduler use irq's to decide when to switch threads?
  2. If there is a long enough Delay added in the PAL layer, will it allow a separate thread to run while its paused?
  3. If a PAL Routine is started,, but its execution takes longer than the thread time that it is called from,, will it swap threads or wait till the execution is finished?
  4. Same question as fixed typos in readme.md #3,, but the HAL Layer,,, ie
    C++

BOOL __section("SectionForFlashOperations")STM32_Flash_Driver::EraseBlock( void* context, ByteAddress Sector )

as it seems that erasing / programming flash would be very critical?

Thanks

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions