Hi all, I am starting a new project, to code a OS for "friendlyarm mini2440". This OS will be like a Dos for ARM, so coders can get at bare metal. It will be coded in full ASM and there will be a Mini6410 ver too. As well as being coded in full ASM, there will be support for apps to be coded in a macro language, based on basic programming language. So app will run on x86 too, if need be. The OS design will be based on KISS. If any ones interested in helping, let me know. DexArm. PS: NOTE: When i say Dos like, it will not run old dos app.
Coding New OS
this tutorial would help you to do that http://wiki.iface.ch/index.php/Basic_rootfs_for_Mini2440
@Andre, Thanks i will take a look. @brox, I do not use skype, but i am setting a forum up for the project. It will be coded using FasmArm, i have done some test codes and have been able to boot, set stuff up, send Uart messages and turn on lcd and display image etc. I have already done the x86 ver of the OS. My mini2440 was dropped and broke, so i have order a new one, just waiting for it to come. Any input is most welcome. DexArm
Because it gives you more control, eg: i have ported fasm/fasmarm to my x86 OS, i can mod it to suit our needs. And i can use my OS's terminal, to debug it. But i am open to change my mind, if you show me its simple to use without any red tape ;).
Can you share a bit more information about the OS you want to create. It's attributes: i) is it hard realtime or soft realtime? ii) How does it handle interrupts? iii) Is it a monolithic OS such as Linux? iv) What architecture is the OS in terms of Kernel space and the user space? v) How does it handle external hardware, device driver, etc? vi) Is it multi-user or single user? vii) is it networked or stand-alone? Viii) so on and so forth. I guess, an OS's application, characteristics and architectures and external interfaces need to be addressed writing one.
Hi vib, This is the x86 ver of the OS, you can read about and test its functions. http://www.dex-os.com/
Can any of you give a good alternative to FasmArm for this project. 1. It must be free. 2. It must be simple to set up Eg: FasmArm is a single exe and does not require a linker.
Well, GNU tools are free and good, but AT&T syntax is shit NASM is free but unfinished, so its not good. I use Keil ARM-MDK tools. I know they are very expensive, but quality of assembler, c/c++ compiler and linker is extremely high. As for single exe, it looks like bad thing for me... You have more freedom when you have separate tools
One thing I would suggest is to create an FTP based NOR bootloader. You connect the board to your router, boot in NOR, and it gets an IP from the router and dumps this address along with the username and password out the serial port and/or the FriendlyARM screen. Alternatively you can log in to your router and have it reserve an IP address for the FriendlyARM MAC address. You then set up your FTP client and, from then on, you can just FTP your programs to the board - just like maintaining a web site. File names would indicate purpose. For example - if you rename a file BOOTNAND.BIN the bootloader will make it the NAND boot file. If you name another START.BIN it will run that (could be a menu program to run other programs) after it boots.
Best use C and as little assembler as possible. The new Cortex _m3 and M4 processors are ideal for this
How about memory management? I would suggest a version 0.1 with MMU disabled and maybe cache locked. No user/kernel space difference - like a giant 65C02 (which inspired the ARM) with nice linear memory space and memory mapped I/O direct access by the programmer. It wold have awesome speed and interrupt response measured in nanoseconds.
I am now working on porting DexOS to the raspberry pi, i am making good progress even though theres little doc's. See bare metal picture frame demo. http://www.youtube.com/watch?v=Hc-5epQTul8