Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Liftoff

Liftoff

Scheduled Pinned Locked Moved The Lounge
designasp-netcomgraphicsiot
9 Posts 5 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    honey the codewitch
    wrote on last edited by
    #1

    Boot one core. Using that core, inject code for the second core into memory, and then cajole the 2nd core into executing it. Enable a message passing system between the cores. I have 128KB to implement the main logic of this app on the 2nd core, because the rest of the memory is devoted to visualizations on the primary core. and the 2nd core has to expose a composite USB device. 128KB *cracks knuckles* That's twice what I had when learning to code. I got this.

    Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

    pkfoxP G R 3 Replies Last reply
    0
    • H honey the codewitch

      Boot one core. Using that core, inject code for the second core into memory, and then cajole the 2nd core into executing it. Enable a message passing system between the cores. I have 128KB to implement the main logic of this app on the 2nd core, because the rest of the memory is devoted to visualizations on the primary core. and the 2nd core has to expose a composite USB device. 128KB *cracks knuckles* That's twice what I had when learning to code. I got this.

      Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

      pkfoxP Offline
      pkfoxP Offline
      pkfox
      wrote on last edited by
      #2

      Are you using C for all this stuff ? I'd like to see the code/workflow

      In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP

      H 1 Reply Last reply
      0
      • pkfoxP pkfox

        Are you using C for all this stuff ? I'd like to see the code/workflow

        In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP

        H Offline
        H Offline
        honey the codewitch
        wrote on last edited by
        #3

        Yeah, just straight C. I didn't want to deal with getting NXP's toolchain to host C++ libs and stuff. I know it can, but LVGL is C anyway. I'm under NDA so I can't really share much. This is all R&D for a work project, but the code flow is actually pretty simple. The workflow is basically using MCUxpresso IDE. It's all cooperatively threaded, with the exception of the core to core interaction, which is handled by an ersatz mutex and a simple message passing scheme based on shared memory. The M7 runs in a simple master loop, processing a bunch of visualization data and sending it out to the LCD panels. The M4 handles core logic of the app, and communication with the outside world via USB HID. The M7 basically is a visualization engine. The M4 tells it what to display and the M7 displays it. Despite the M7 being logically slaved to the master in terms of flow, it's actually technically the master, in that it's the one that boots initially and kicks everything off. The reason is that its part of the whole mess requires the most memory and flash resources, so to me it made sense to package the smaller payload (the M4 code) and inject *that* into memory, if that makes sense.

        Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

        pkfoxP 1 Reply Last reply
        0
        • H honey the codewitch

          Yeah, just straight C. I didn't want to deal with getting NXP's toolchain to host C++ libs and stuff. I know it can, but LVGL is C anyway. I'm under NDA so I can't really share much. This is all R&D for a work project, but the code flow is actually pretty simple. The workflow is basically using MCUxpresso IDE. It's all cooperatively threaded, with the exception of the core to core interaction, which is handled by an ersatz mutex and a simple message passing scheme based on shared memory. The M7 runs in a simple master loop, processing a bunch of visualization data and sending it out to the LCD panels. The M4 handles core logic of the app, and communication with the outside world via USB HID. The M7 basically is a visualization engine. The M4 tells it what to display and the M7 displays it. Despite the M7 being logically slaved to the master in terms of flow, it's actually technically the master, in that it's the one that boots initially and kicks everything off. The reason is that its part of the whole mess requires the most memory and flash resources, so to me it made sense to package the smaller payload (the M4 code) and inject *that* into memory, if that makes sense.

          Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

          pkfoxP Offline
          pkfoxP Offline
          pkfox
          wrote on last edited by
          #4

          Is it one of these ? [ARM Cortex-M7](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus/i-mx-rt1064-crossover-mcu-with-arm-cortex-m7:i.MX-RT1064)

          In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP

          H 1 Reply Last reply
          0
          • pkfoxP pkfox

            Is it one of these ? [ARM Cortex-M7](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus/i-mx-rt1064-crossover-mcu-with-arm-cortex-m7:i.MX-RT1064)

            In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP

            H Offline
            H Offline
            honey the codewitch
            wrote on last edited by
            #5

            Yes, indeed

            Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

            1 Reply Last reply
            0
            • H honey the codewitch

              Boot one core. Using that core, inject code for the second core into memory, and then cajole the 2nd core into executing it. Enable a message passing system between the cores. I have 128KB to implement the main logic of this app on the 2nd core, because the rest of the memory is devoted to visualizations on the primary core. and the 2nd core has to expose a composite USB device. 128KB *cracks knuckles* That's twice what I had when learning to code. I got this.

              Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

              G Offline
              G Offline
              Grotsoft
              wrote on last edited by
              #6

              Quote:

              128KB *cracks knuckles* That's twice what I had when learning to code.

              That's 128 times the RAM in my first computer! (ZX81)

              H 1 Reply Last reply
              0
              • G Grotsoft

                Quote:

                128KB *cracks knuckles* That's twice what I had when learning to code.

                That's 128 times the RAM in my first computer! (ZX81)

                H Offline
                H Offline
                honey the codewitch
                wrote on last edited by
                #7

                I'd hate to try to host a USB device endpoint in 1KB. :laugh:

                Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                D 1 Reply Last reply
                0
                • H honey the codewitch

                  I'd hate to try to host a USB device endpoint in 1KB. :laugh:

                  Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                  D Offline
                  D Offline
                  David ONeil
                  wrote on last edited by
                  #8

                  But think of the bragging rights if you succeed! :laugh:

                  Our Forgotten Astronomy | Object Oriented Programming with C++ | Wordle solver

                  1 Reply Last reply
                  0
                  • H honey the codewitch

                    Boot one core. Using that core, inject code for the second core into memory, and then cajole the 2nd core into executing it. Enable a message passing system between the cores. I have 128KB to implement the main logic of this app on the 2nd core, because the rest of the memory is devoted to visualizations on the primary core. and the 2nd core has to expose a composite USB device. 128KB *cracks knuckles* That's twice what I had when learning to code. I got this.

                    Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                    R Offline
                    R Offline
                    Rage
                    wrote on last edited by
                    #9

                    Na, this [^] can be done with only 64kb (... and a bit of hw acceleration ... ), so 128kB should be more than enough :laugh:

                    Do not escape reality : improve reality !

                    1 Reply Last reply
                    0
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Categories
                    • Recent
                    • Tags
                    • Popular
                    • World
                    • Users
                    • Groups