Liftoff
-
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
-
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
-
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
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
-
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
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
-
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
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
-
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
-
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)
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
-
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
But think of the bragging rights if you succeed! :laugh:
Our Forgotten Astronomy | Object Oriented Programming with C++ | Wordle solver
-
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