Announcement

Collapse
No announcement yet.

Single Core Limitation

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Single Core Limitation

    Is there any way to get around the single core limitation on the P1AM -100, I would like to use the P1AM-ETH module to run a web server, but also be doing I/O operations at the same time (like checking if a button is pressed).

    I did some research on the SAMD21G18 specs and it seems it has only one core. I need something that can do multi-threading.

    Is there some addon or something that could be added to the P1AM -100 to enable multi-threading?

  • #2
    There's a scheduler library from Arduino and freeRtos ports for SAMD21.
    The P1AM-ETH and the Base Controller both share a SPI bus, so you should add some logic(e.g. semaphores or some sort of locking) to make sure the nothing messes up the SPI comms.

    I haven't done significant testing with either of these options, but my quick tests didn't show any glaring errors.

    Comment


    • #3
      I was testing some code with Scheduler, it appears that its not true multi-threading as it only allows one task to be run at a time, but I think it might do the job.

      so you should add some logic(e.g. semaphores or some sort of locking) to make sure the nothing messes up the SPI comms.
      Could you explain this a little further, I can't say I totally understand it.

      Comment


      • #4
        Check out my latest push to my PLC program structure:
        https://github.com/JohnnyG89/SeaDragon

        You're thinking about a pre-emptive RTOS, you'll have to get creative to do this with the Arduino! I used the TaskScheduler library by arkhipenko. Blocking calls will still hold up task execution.

        Comment

        Working...
        X