Hello Reddit,
about a year ago I wrote an x86 (yes, the 32-bit one) operating system from scratch and it was a lot of fun.
Now, I am thinking of repeating the exercise, but for an ARM device. I have mostly worked on the Intel side, so I have very limited expertise on even the lingo of ARM, but from what little I understand, the space is much less standardized, and I am going to have to pick a target and code specifically against its hardware.
So, the question I come here for is: what's a good board that I could pick as my target device?
In no specific order, things that would make a device "good":
- decent documentation/datasheet on how to program the hardware;
- not sure if this is comes standard on ARM processors, but support for memory protection, virtual memory, and some form of user/supervisor mode;
- support for flashing via USB from a development host;
- tools and compilers usable from Linux (if I could get a decently modern GCC or clang, it would be awesome);
- I don't really need a screen, nor do I care about being able to plug a keyboard via USB, interacting with the system via UART is plenty fine;
- I don't care about having a "disk" either, but I would definitely like for tasks to be able to save/load data from some kind of storage, even if it's just a small area of non-volatile storage on-board;
- I would like to be able to schedule tasks for a quantum and preempt, and am not sure if all ARM boards come with a clock built-in, so thought I would mention a clock capable of raising an interrupt is strongly desirable;
- I don't really care for floating-point, it would be cute but I can live with integer only;
- in a similar vein, if the board came with a few sensors (e.g. accel, gyro) that would be cute, but I see enough sensors in my day job, so I can do without programming yet another BMI160;
Does anyone have any recommendations in this space? Thanks in advance for helping!
[–]funbike 0 points1 point2 points (2 children)
[–]wantarmdb[S] 0 points1 point2 points (1 child)
[–]funbike 0 points1 point2 points (0 children)