十一购入了自己第一块ARM开发板连同仿真器和lcd,花了不少钱呢,忍了,不就少换一部手机么,现在用的小3也不错。鸟枪换炮,以后再也不用光冥想了,终于可以想怎么干就怎么干了,顶多刷坏了重刷呗。
板子用的9315的处理器,结果买回来发现引导程序很头疼,从网上查了查,这么说的EP9315片内flash启动的时候是FLASH启动模式:
先检测Flash的0x0地址处是否有CRUS或SURC的ASCII码;
如果有,从Flash的0x4地址处读取代码执行;
如果没有,检测Flash的0x1000处是否有CRUS或SURC的ASCII码;
如果有,从Flash的0x0地址处读取代码执行;
可问题来了,怎么才能在0x0处或者0x1000处写进CRUS或SURC的ASCII码呢?
郁闷,如果引导程序都搞不定,那别的就别想了。不知道看到这个的朋友谁能指导一下,那就太感激了。
用户156389 2010-9-25 14:25
用户992653 2008-4-14 20:51
用户83086 2008-3-5 13:45
用户19250 2007-7-11 23:34
bootloader当然可以自己写,
在你机子写的bootloader的0x0地址处加入CRUS的ASCII码不就行了吗?
你可以参考redboot或者u-boot,看看别人是怎么写的
用户1256840 2006-11-7 17:03
但bootloader里面怎么跑可要自己来写啦,嘿嘿,慢慢就搞定了。
像bootloader这种东西,我想自己搞明白,虽然网上有各种的boot程序,如果没有辅助说明材料,想看明白他们的源码也是一件不容易的事。自己动手写写会更有效吧。
用户1256840 2006-11-6 19:16
用户1256840 2006-10-25 16:57
全是英文的哦,不过没关系,英文看得懂。redboot,zImage这些文件我这都有,也知道应该怎么下载,其实在我看来,无论是linux还是wince,都没什么分别,都是os,只是各有特色。我关心的不是怎么下下来,而是他们是怎么运行的,机制是什么,因为我想写自己的东西,虽然在linux或者wince上面开发应用软件是件很酷的事情,本质上讲和在台式机上写普通程序也没什么区别,换了换平台,多了一些注意,新方式。
如果过不了引导这一关,唉,我这么钱不就打水漂了,所以一定要解决阿。
要是有9315的启动源代码就好了,可是俺没有,卖板子的不给,气死我了,说是用ecos工具集生成,郁闷,我估计他们也不会,直接从公司网站上下的现成的执行文件。而且他们的技术支持也不好,带的驱动都少得可怜,给他们说多少遍了就是不给,我恨FFT。
谁要是给我发个9315的源码就好了
用户13739 2006-10-24 17:33
Download flow for Linux bin file on EDB93xx
software required: (tools) Tera Term Pro/HyperTerminal; TFTP Server; download.exe
(bin file) redboot.bin ramdisk.gz zImage
hardware required: PC; EDB93XX;
cross earthnet(RJ45);
serial line(DB9): 1-->4 2-->3 3-->2 4-->1 5-->5 6-->4 7-->8 8-->7 9--NC
1) connect cross earthnet and serial line between EDB board and PC,and power on the EDB93XX;
2) download redboot into EDB board:
under DOS command line, run >download redboot.bin;
DOS shell display: Waiting for the board to wakeup...
push down the button Serial boot and /por at same time, program will start erase and write
withing for DOS shell display: Successfully programmed 'radboot.bin'.
power off the EDB board;
3) download ramdisk.gz and zImage into EDB board:
a) config user PC as: IP address: 192.168.1.1 Local IP address mask: 255.255.255.0
b) run TFTP Server, and set >>file>configure>Security: Transmit and Receive file
>>file>configure>TFTP Root Directory: ramdisk.gz zImage directory
c) run Tera Term Pro, and set. Port:COM1(using serial port)
Baud rate: 57600
Data: 8 bit
Parity: none
Stop: 1 bit
Flow control: none
d) power on the EDB board;
Tera Term display:
+FLASH configuration checksum error or invalid key
EP93xx - no EEPROM, static ESA, or RedBoot config option.
No network interfaces found
RedBoot(tm) bootstrap and debug environment [ROMRAM]
Non-certified release, version v2_0 - built 11:51:05, Jan 19 2006
Platform: Cirrus Logic EDB9315A Board (ARM920T) Rev A
Copyright (C) 2000, 2001, 2002, Red Hat, Inc.
RAM: 0x00000000-0x04000000, 0x00041e68-0x03fdd000 available
FLASH: 0x60000000 - 0x61000000, 128 blocks of 0x00020000 bytes each.
RedBoot>
e) initial flash rom:
RedBoot> fis init -f
About to initialize [format] FLASH image system - continue (y/n)? y
*** Initialize FLASH Image System
... Erase from 0x60040000-0x60fc0000: ..........................................
................................................................................
..
... Erase from 0x60fe0000-0x60fe0000:
... Erase from 0x61000000-0x61000000:
... Erase from 0x60fe0000-0x61000000: .
... Program from 0x03fdf000-0x03fff000 at 0x60fe0000: .
RedBoot>
f) config redboot
RedBoot> fconfig -i
Initialize non-volatile configuration - continue (y/n)? y
Run script at boot: false
Use BOOTP for network configuration: false
Gateway IP address:
Local IP address: 192.168.1.2
Local IP address mask: 255.255.255.0
Default server IP address: 192.168.1.1
DNS server IP address:
Set eth0 network hardware address [MAC]: true
eth0 network hardware address [MAC]: 0x00:0x00:0x00:0x00:0x50:0x33
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false
Update RedBoot non-volatile configuration - continue (y/n)? y
... Erase from 0x60fc0000-0x60fc1000: .
... Program from 0x03fde000-0x03fdf000 at 0x60fc0000: .
RedBoot>
g) reset EDB per Tera Term
RedBoot> reset
... Resetting.
h) download ramdisk into SDRAM
RedBoot> load -r -v -b 0x800000 ramdisk.gz
/
Raw file loaded 0x00800000-0x01153e13, assumed entry at 0x00800000
RedBoot>
i) download zImage into SDRAM
RedBoot> load -r -v -b 0x80000 zImage
|
Raw file loaded 0x00080000-0x001a895f, assumed entry at 0x00080000
RedBoot>
j) write ramdisk into flash rom
RedBoot> fis create -b 0x800000 -l 0xa00000 ramdisk
... Erase from 0x60040000-0x60a40000: ..........................................
......................................
... Program from 0x00800000-0x01200000 at 0x60040000: ..........................
......................................................
... Erase from 0x60fe0000-0x61000000: .
... Program from 0x03fdf000-0x03fff000 at 0x60fe0000: .
RedBoot>
k) write zImage into flash rom
RedBoot> fis create -b 0x80000 -l 0x130000 zImage
... Erase from 0x60a40000-0x60b80000: ..........
... Program from 0x00080000-0x001b0000 at 0x60a40000: ..........
... Erase from 0x60fe0000-0x61000000: .
... Program from 0x03fdf000-0x03fff000 at 0x60fe0000: .
RedBoot>
l) run Linux
RedBoot> exec -r 0x800000 -s 0xa00000
Using base address 0x00080000 and length 0x00128960
Uncompressing Linux.............................................................
.................... done, booting the kernel.
Please press Enter to activate this console.
BusyBox v1.00 (2006.01.19-17:48+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
~ # ls
Applications bin lib proc usr
Documents dev linuxrc sbin var
Noise.wav etc mnt sys
Settings home opt tmp
~ #
m) re-config redboot as below:
RedBoot> fconfig -i
Initialize non-volatile configuration - continue (y/n)? y
Run script at boot: true
Boot script:
Enter script, terminate with empty line
>> fis load ramdisk
>> fis load zImage
>> exec -r 0x800000 -s 0xa00000
>>
Boot script timeout (1000ms resolution): 1
Use BOOTP for network configuration: false
Gateway IP address:
Local IP address: 192.168.1.2
Local IP address mask: 255.255.255.0
Default server IP address: 192.168.1.1
DNS server IP address:
Set eth0 network hardware address [MAC]: true
eth0 network hardware address [MAC]: 0x00:0x00:0x00:0x00:0x50:0x33
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false
Update RedBoot non-volatile configuration - continue (y/n)? y
... Erase from 0x60fc0000-0x60fc1000: .
... Program from 0x03fde000-0x03fdf000 at 0x60fc0000: .
RedBoot>
Now reset system, and all is OK!!!!
jasonw@lestina.com.cn
用户1256840 2006-10-23 16:14
用户1053025 2006-10-20 09:51