2007年7月19日 星期四

Robot need a RTOS,but Linux maybe Realtime?

Reference:
Jserv前輩在OSDC.tw所發表的RT nanokernel for Embedded Linux議題中

Is Linux Realtime?
過去的答案:
No,其原因:
Monolithic Kernel、Non Preemptible、Resource Lock、Priority Scheduling

現在(Kernel 2.6)的答案:Maybe Yes
Old: No Kernel Preemption
Execution in kernel mode interrupted only by explicit、yields, sleeps, and IRQ’s

New: Kernel May Be Preempted
New process may be swapped in after servicing an interrupt

但「May Be」,問題點:
相較於典型RTOS來說,還是太沈重
不具備Hard-Realtime能力


但Robot need a RTOS
所以...
我的目標將先往RTOS的方向走,可能要建立一個Realtime Linux System...
Linux如何Realtime?
這也是我最近要達成的方向...

2007年7月16日 星期一

Kontron DIMM-PC

Kontron DIMM-PC/520I
586 Embedded Controller, Upto 32MB DRAM, 32MB Flash With Optional Ethernet or USB

series: 08012-3232-13-0
DIMM-PC/520-I CPU module with 32MB DRAM and 32MB flash

Kontron DIMM-PC/COMBO2 & /VGA2
LCD/VGA, Ethernet and Serial on one DIMM I/O Module, Full PC functionality at the size of a business card

series: 08014-0000-01-0
DIMM-PC/COMBO2 VGA, Ethernet and two serial interfaces

Kontron DIMM-PC/KIT-3
Starter Kit for use with the DIMM-PC range, Fast assembly and quick operation

series: 08005-0000-00-4
DIMM-PC/ADA3 Evaluation-board for DIMM-PC

這就是我們實驗室嵌入式板子的資料~~

Reference:
http://www.dpie.com/dimmpc/dimmpc520.html
http://www.dpie.com/dimmpc/dimmcombo.html
http://www.dpie.com/dimmpc/dimmstarterkit.html

2007年7月14日 星期六

Porting Kernel 2.6 for DIMM-PC

純粹好玩來Porting Kernel 2.6 for DIMM-PC
大約的步驟...(準備開始)
...
Step1: Collecting about Hardware Information

CPU: AMD™ Elan SC520 133MHz

Memory: 32768k(32 MByte) DRAM, 32 MByte IDE compatible Flash Disk

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
hda: SanDisk SDC1-32, CFA DISK drive

VGA Board: Topro TP6508IQ video controller
(VGA Graphics for CRT and flat displays)

Ethernet: Crystal LAN™ CS8900 Ethernet Controller(cs8900 rev J found at 0x300 [Cirrus EEPROM])

ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
...
Step2: Allocation

Bootloader: lilo or u-Boot
(Reference jserv's blog [探索 Linux bootloader 的佳作])
Linux Kernel: 2.6.20 (or newest)
(Realtime Embedded Linux, RTOS)

Root File System: BusyBox + uClibc(or eglibc) + initscripts...
LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
TERM=vt100
SHELL=/bin/ash
...
Step3: Create Image file
...
Step4: Emulate, Tesing
...
Testing. If not ok, back to Step 2
...
Step5: burn to DIMM-PC Flash ROM

2007年7月10日 星期二

Where Can I get Memory Image context?

明明ml30j53.img的檔案系統就是minix~~~
...
mitelinux:/# cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root / minix ro 0 0
none /proc proc rw 0 0
none /dev/pts devpts rw 0 0
/dev/ram /mnt/ram minix rw 0 0

mitelinux:/# cat /etc/fstab
/dev/hda1 / minix defaults 1 1
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0

mitelinux:/# df -h
Filesystem Size Used Available Use% Mounted on
/dev/hda1 30.2M 10.8M 19.3M 36% //dev/ram 502.0k 40.0k 462.0k 8% /mnt/ram


但我怎麼mount就是沒辦法~~~
Where Can I get Memory Image context?
#mount -t minix ml30j53.img rootfs/ -o loop
功力還不夠啊~~~誰能幫幫我~~思考中~~

[更新]
錯錯不是minix,我還在研究到底是什麼??
csl@csl-desktop:~$ file ml30j53.img
ml30j53.img: x86 boot sector, LInux i386 boot LOader; partition 1: ID=0x83, starthead 1, startsector 63, 62433 sectors, extended partition table (last)\011
看起來像是在Memory Image中的大合體??好像是把所有東西放在一起??
但要放在一起,難道Memory Image沒有filesystem嗎?
...
原來
csl@csl-desktop:~$ qemu-img info ml30j53.img
image: ml30j53.img
file format: raw
virtual size: 31M (32047104 bytes)
disk size: 31M

它是一個raw file format,
/*
raw
Raw disk image format (default). This format has the advantage of being simple and easily exportable to all other emulators. If your file system supports holes (for example in ext2 or ext3 on Linux or NTFS on Windows), then only the written sectors will reserve space. Use qemu-img info to know the real size used by the image or ls -ls on Unix/Linux.
*/
難怪怎麼mount都沒辦法...
還要再努力才行啊~~~
[/更新]

2007年7月6日 星期五

Oh~My God

oh~My God~~I get console in DIMM-PC/520-I
弄了半天~~原來那麼容易取得~~
要不是把VGA接上Screen,
看到DIMM-PC竟然有BIOS的管理介面(跟電腦差不多),
看到DIMM-PC竟然有跟電腦那麼像,
還不用風扇(超強的),
難怪BOSS說這個東東會比ARM強,終於可以體會出來了...
真是說不出來的高興~~

Making directories: [ OK ]
Setting system clock: [ OK ]
MAC address of eth0: 00:e0:4b:04:01:e7
tcpdump: listening on eth0
Configuring eth0: [ OK ]
Configuring lo: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
Starting xinetd: [ OK ]
Generating main crontab: [ OK ]
Starting crond: [ OK ]
Starting sshd: [ OK ]

Please press Enter to activate this console.

miteLINUX release 3.0 (Woody)
mitelinux login: root
Password:


BusyBox v1.00-pre7 (2004.02.04-18:02+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

mitelinux:/root#


接下來的工作,就是~~~
改MiteLinux裡面,會有時無法進系統的情況,
還有一些我想玩玩的東西,像kernel變2.6啦...><"
努力吧~~
目標是七月底把這塊板子中的Linux,修改成我要做的東東~

2007年7月4日 星期三

miteLINUX for DIMM-PC



我們的實驗室買了一塊開發板(Kontron DIMM-PC/520-I + JUMPtec),老實說我從來沒聽過這塊板子,不過聽老闆說這塊開發板比arm還強,以後可以拿來用在機器人的核心系統。


規格:
* AMD ELAN SC520 CPU with 133MHz
* 32 Mbyte DRAM and
* 32 MB IDE Flashdisk, IDE Interface
* Floppy, Real Time Clock,
* EEPROM for CMOS-Data backup 5V single voltage,

今天我要將Linux放入,所以要利用JRC+RS232跳線來將img檔寫入flash中,結果很順利就成功。但目前有個問題是拿不到console,今天真的累了~明天在想辦法好了^^"

補充:
http://www.mite.cz/dimmpc/dimmpctable-en.html
http://www.mite.cz/softlinux-en/softlinux-en.html
http://www.amd.com/epd/linux/index.html
目前還沒拿到console,加油中~~

2007年7月2日 星期一

開始寫了~~~

快要進研究所了~~
想加強一些基本觀念~~~
也打算利用時間,學一些Kenrel東西~~
好多東西要學喔~~~
明天開始吧~~加油啦