Design of SD Card Driver and Tiny FS for Multi-Process Micro-Kernel Embedded OS on ARM

2013 ◽  
Vol 756-759 ◽  
pp. 4207-4211
Author(s):  
Bo Qu

This paper describes the design and implementation of SD card driver and tiny file system for multi-process micro-kernel embedded operating system on ARM in technical details, including structure of device driver, key techniques of designing SD card driver, architecture of the tiny file system, a brief description of its designing and a demo example. The SD card driver and tiny FS are implemented with GNU tool chain by the author of this paper. Practice proves that the system can be used for not only embedded application developments but also related curriculum teaching.

2013 ◽  
Vol 756-759 ◽  
pp. 4245-4249
Author(s):  
Bo Qu

This paper describes the design and implementation of primitive shell for an embedded OS in technical details, including creation of root file system on SD card, overview of the primitive shell, key techniques of implementing essential shell commands. The primitive shell is designed based on the multi-process micro-kernel embedded operating system on ARM developed by the author of this paper. The shell command files are designed simple and compact particularly suited for embedded related curriculum teaching as well as embedded operating system research.


2013 ◽  
Vol 756-759 ◽  
pp. 4240-4244
Author(s):  
Bo Qu ◽  
Chang Wei Chen

This paper describes the design and implementation of MINIX file system for an embedded OS in technical details, including an overview of MINIX FS, an introduction of the data structures for it, key techniques of implementing it, such as cache, foundational routines and interface functions. The file system is implemented on the multi-process micro-kernel embedded operating system on ARM, which is also designed by the author of this paper with GNU tool chain. The essential functions for a MINIX FS are accomplished, e.g. mount (), open (), close (), read (), write (), lseek (), unlink (), stat (), chdir (), mkdir (), rmdir (), execve (), etc. To show the effects of the file system, some related shell commands are also designed, e.g. cat, cp, echo, ls, pwd, etc. The file system is designed as simple as possible so that the code amount of it is only about 1,600 lines. With such a small scale, the system is suitable not only for embedded application system developments but also for embedded related curriculum teaching in colleges and universities.


2013 ◽  
Vol 347-350 ◽  
pp. 1260-1263
Author(s):  
Bo Qu ◽  
Zhong Xue Yang

This paper describes the design and implementation of NIC driver and simple IP for an embedded OS in technical details, including the key techniques of designing NIC driver, ether net interface, ARP, IP and ICMP routines. The network routines are implemented for the ARM based multi-process micro-kernel embedded operating system developed by the author of this paper on Linux platform with GNU tool chain. A shell command, ping, is designed to show the effect of network performance. Based on the NIC driver, UDP, TCP and socket routines can be designed further. This multi-process micro-kernel embedded operating system with network capabilities is suitable and helpful for both embedded operating system research and related curriculum teaching.


2013 ◽  
Vol 347-350 ◽  
pp. 1264-1267
Author(s):  
Bo Qu

This paper describes the design and implementation of IPC (Inter-Process Communication) and system calls for an embedded OS in technical details, including the overview of micro-kernel OS, mechanism of inter-process communication, and implementation of message passing as well as system calls upon it. The IPC and system calls are designed for the ARM based multi-process micro-kernel embedded operating system developed by the author of this paper on Linux platform with GNU tool chain. The design of the system call service function to create a child process identical to the parent, do_fork (), is provided as an example. Practices prove that multi-process micro-kernel mechanism is technically feasible on embedded machines.


2013 ◽  
Vol 373-375 ◽  
pp. 1630-1633
Author(s):  
Bo Qu

This paper describes the design and implementation of executing ELF files on an ARM based multi-process mono-kernel embedded operating system, including overview of ELF files, and key techniques of loading and executing ELF files. At the final, the paper provides some demo examples to show the effects of a simple shell interpreter and typical shell commands, echo, date, and pwd. The entire embedded operating system including the routines of executing ELF files are developed by the author of this paper on Linux with GNU tool chain, based on which more powerful shell interpreter and shell commands analogous to that of embedded Linux can be designed.


2013 ◽  
Vol 760-762 ◽  
pp. 1677-1683
Author(s):  
Bo Qu

This paper describes the design and implementation of tiny TTY driver for ARM based multi-process micro-kernel embedded operating system in technical details, including overview of TTY (Control flow of terminal driver, process modes for TTY, data structures for tiny TTY), interrupt-mode UART driver, and tiny TTY driver for micro-kernel OS. The ARM based operating system is designed and implemented by the author of this paper on Linux with GNU tool chain. Based on the TTY, some shell commands are designed, in which the key strokes on the super terminal are read as the input of the commands analogous to the case for ordinary embedded Linux. On the premise of implementing essential functions, the routines for the tiny TTY is designed as simple as possible therefore it is suited to not only embedded operating system research but also embedded related curriculum teaching in colleges and universities.


2013 ◽  
Vol 373-375 ◽  
pp. 1626-1629
Author(s):  
Bo Qu

This paper describes the design and implementation of MINIX file system for an ARM based multi-process mono-kernel embedded operating system, including overview of MINIX file system, design of SD card driver, design of file system routines such as caching, essential functions, system call functions, and system call interface functions. At the final, the paper provides a demo example to show the effect of the file system routines, including commonly used file operations such as opening, closing, reading and writing by positioning, getting status, and removing, as well as a brief function for listing directories.


2013 ◽  
Vol 347-350 ◽  
pp. 1799-1803
Author(s):  
Bo Qu ◽  
Zhao Zhi Wu

This paper describes the design and implementation of an ARM based embedded operating system micro kernel developed on Linux platform with GNU tool chain in technical details, including the three-layer architecture of the kernel (boot layer, core layer and task layer), multi-task schedule (priority for real-time and round-robin for time-sharing), IRQ handler, SWI handler, system calls, and inter-task communication based on which the micro-kernel architecture is constructed. On the foundation of this micro kernel, more components essential to a practical operating system, such as file system and TCP/IP processing, can be added in order to form a real and practical multi-task micro-kernel embedded operating system.


2013 ◽  
Vol 373-375 ◽  
pp. 1634-1637
Author(s):  
Bo Qu

This paper describes the design and implementation of piping functionality for ARM based multi-process mono-kernel embedded operating system, including overview of inter-process communication, key techniques of designing piping routines such as getting i-node for piping, creating pipe, reading and writing pipe, and terminating pipe, etc. At the final, the paper provides a demo example to show the effect. Based on the piping routines described in this paper, more powerful shell interpreter with redirecting and piping functionalities as well as other shell commands analogous to that of embedded Linux can be implemented.


2013 ◽  
Vol 373-375 ◽  
pp. 1587-1590
Author(s):  
Bo Qu

This paper describes the design and implementation of tiny TTY for an ARM based multi-process mono-kernel, including overview of TTY, and implementation of the TTY routines such as data structure of TTY, TTY input, TTY read, TTY write, TTY waiting and TTY signal setting. A demo example is also provided at the final of the paper to show the effect. The mono-kernel is developed by the author of this paper on Linux with GNU tool chain from scratch, for which the tiny TTY is designed. Based on this mono-kernel, other components can be added such as file system, network management, etc. to form a more powerful embedded operating system.


Sign in / Sign up

Export Citation Format

Share Document