Replies: 6 comments 6 replies
-
@biot , thanks for the interest and taking the time to look through the code. I mostly agree with your analysis - here are my comments on each of your points:
Looking forward to collaborating! FYI, I enabled the "discussions" feature on this repo (should show up on the top tabs now), I've never used it but maybe it makes things easier. Cheers! |
Beta Was this translation helpful? Give feedback.
-
Found the "convert to discussion" button |
Beta Was this translation helpful? Give feedback.
-
Didn't know about the discussion feature, looks good. Re splitting the build, I've done this. Take a look at my depico branch (https://github.com/biot/breadboard-os/tree/depico). Ignore the "local env" patch, and the microshell styles patch is also unrelated. Feel free to squash the other commits, just wanted to document the process. It's probably not as elegant as it could be (first time using cmake), but it works well. Minimal build option sounds good, the question is how should a user add stuff to it? A project.cmap that is minimal but has drivers/services commented out? This won't scale when drivers etc get added. WRT FreeRTOS/pico-sdk, how about having it both ways? If there's a "FreeRTOS-Kernel"/"pico-sdk" directory present in the top-level BBOS directory, set FREERTOS_KERNEL_PATH/PICO_SDK_PATH env vars to them automagically from CMakeLists.txt. That way you don't have to do anything once you have them set up for your environment, and you keep the current flexibility. One thing I forgot to mention: the pico stuff has crept into the cli code as well, of course. This stuff is hard, unless you start with two platforms! In any case the cli needs to be super modular IMHO, as I expect platforms will need platform-specific commands added to the cli -- setting some hardware-specific flags and such. |
Beta Was this translation helpful? Give feedback.
-
I've had a look at your changes and tested your branch, overall looks really good. I like the direction you are taking it. Couple notes:
Regarding your idea for platform-specific CLI menus contained within the hardware folder, I like it. Makes sense to have a base set of menus in root cli/ and then optional custom menus. Could easily be done within 'shell_init()' function in shell.c, maybe using #ifdef to see if any platform-specific menus exist (somehow). As you mentioned before the dev/ and lib/ folders should also be populated modularly based on the platform-specific interfaces and drivers that were optionally compiled in. Nice work so far. |
Beta Was this translation helpful? Give feedback.
-
I've just created PR #6 for the build split. The sooner you get another platform in, the better -- it's what's really needed to shake out pico-specific things. I think it should be a non-ARM platform, to shake out ARM-specific things as well (looking at you, cmsis-core). So something like a RISC-V or ESP32 MCU would be ideal. |
Beta Was this translation helpful? Give feedback.
-
#6 merged - also created hw-decouple branch to implement the rest of the cleanup. |
Beta Was this translation helpful? Give feedback.
-
Hi Cavin,
I like Breadboard OS and its stated goals, and thought I might help out. However I noticed some issues with the codebase, and I'd like to see whether you agree with my analysis.
I have some patches, but I'd really like your opinion on the above before I put in any more effort.
Beta Was this translation helpful? Give feedback.
All reactions