快乐虾
http://blog.csdn.net/lights_joy/
lights@hb165.com
本文适用于
ADI bf561 DSP
uclinux-2008r1.5-rc3(smp patch)
Visual DSP++ 5.0(update 5)
欢迎转载,但请保留作者信息
终于成功编译了第一个版本,庆祝一下:
Linux version 2.6.22.19-ADI-2008R1.5-svn (wmz@localhost.localdomain) (gcc version 4.1.2 (ADI svn)) #4 SMP Sat Jan 10
22:24:10 CST 2009
Hardware Trace Active and Enabled
Warning: limiting memory to 60MB due to hardware anomaly 05000263
Reset caused by Software reset
Blackfin support (C) 2004-2007 Analog Devices, Inc.
Compiled for ADSP-BF561 Rev 0.3
Blackfin Linux support by http://blackfin.uclinux.org/
Processor Speed: 594 MHz core clock and 99 MHz System Clock
Board Memory: 64MB
Kernel Managed Memory: 64MB
Memory map:
text = 0x00010000-0x000dac86
rodata = 0x00140000-0x00160050
data = 0x00170000-0x0017ae90
stack = 0x00170000-0x00172000
init = 0x00180000-0x006f0000
bss = 0x006f0000-0x006fc0cc
available = 0x006fc0cc-0x03bff000
DMA Zone = 0x03f00000-0x04000000
NOMPU: setting up cplb tables for global access
NOMPU: setting up cplb tables for global access
Instruction Cache Enabled for CPU0
Data Cache Enabled for CPU0
Built 1 zonelists. Total pages: 15240
Kernel command line: console=ttyBF0,57600 root=/dev/mtdblock0 rw
Configuring Blackfin Priority Driven Interrupts
PID hash table entries: 256 (order: 8, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory available: 53716k/65536k RAM, (5568k init code, 811k kernel code, 709k data, 1024k dma, 3708k reserved)
Blackfin Scratchpad data SRAM: 4 KB
PDA for CPU0 reserved at ffb00000
Blackfin DATA_A SRAM: 16 KB
Blackfin DATA_B SRAM: 16 KB
Blackfin Instruction SRAM: 16 KB
Mount-cache hash table entries: 512
CoreB bootstrap code to SRAM ff600000 via DMA.
Booting Core B.
Instruction Cache Enabled for CPU1
Data Cache Enabled for CPU1
PDA for CPU1 reserved at ff700000
Brought up 2 CPUs
SMP: Total of 2 processors activated (1175.55 BogoMIPS).
could not vmalloc 20971520 bytes for cache!
migration_cost=1000
Blackfin DMA Controller
ezkit_init(): registering device resources
Serial: Blackfin serial driver
bfin-uart.1: ttyBF0 at MMIO 0xffc00400 (irq = 35) is a BFIN-UART
Freeing unused kernel memory: 5568k freed
dma_alloc_init: dma_page @ 0x006eb000 - 256 pages at 0x03f00000
/dev/null: cannot create
/dev/null: cannot create
No usable address families found.
socket: Function not implemented
Unable to create socket
Unable to create socket
Unable to create socket
_____________________________________
a8888b. / Welcome to the uClinux distribution /
d888888b. / _ _ /
8P"YP"Y88 / | | |_| __ __ (TM) |
8|o||o|88 _____/ | | _ ____ _ _ / // / |
8' .88 / | | | | _ /| | | | / / |
8`._.' Y8. / | |__ | | | | | |_| | / / |
d/ `8b. / /____||_|_| |_|/____|/_//_/ |
dP . Y8b. / For embedded processors including |
d8:' " `::88b / the Analog Devices Blackfin /
d8" 'Y88b /___________________________________/
:8P ' :888
8a. : _a88P For further information, check out:
._/"Yaa_: .| 88P| - http://blackfin.uclinux.org/
/ YP" `| 8P `. - http://docs.blackfin.uclinux.org/
/ /.___.d| .' - http://www.uclinux.org/
`--..__)8888P`._.' jgs/a:f - http://www.analog.com/blackfin
Have a lot of fun...
BusyBox v1.4.1 (2009-01-10 22:19:59 CST) Built-in shell (msh)
Enter 'help' for a list of built-in commands.
root:/> cat /proc/cpuinfo
Board Name: ADDS-BF561-EZKIT
Board Memory: 64 MB
Kernel Memory: 64 MB
MMU: none
FPU: none
System Clock: 99000000 Hz
CPU0: ADSP-BF561 Rev. 0.0
Core Clock: 0 Hz
BogoMips: 0.00
Calibration: 0 loops
I-CACHE: OFF
D-CACHE: OFF
DBANK-A: CACHE
DBANK-B: CACHE
I-CACHE Size: 16KB
D-CACHE Size: 32KB
I-CACHE Setup: 4 Sub-banks/4 Ways, 32 Lines/Way
D-CACHE Setup: 2 Super-banks/4 Sub-banks/2 Ways, 64 Lines/Way
CPU1: ADSP-BF561 Rev. 0.3
Core Clock: 594000000 Hz
BogoMips: 1175.55
Calibration: 587776000 loops
I-CACHE: ON
D-CACHE: ON
DBANK-A: CACHE
DBANK-B: CACHE
I-CACHE Size: 16KB
D-CACHE Size: 32KB
I-CACHE Setup: 4 Sub-banks/4 Ways, 32 Lines/Way
D-CACHE Setup: 2 Super-banks/4 Sub-banks/2 Ways, 64 Lines/Way
root:/>
还没加驱动,不过这个应该简单了,呵呵!
整体感觉VDSP和bf561还是挺酷的,27M的L2_and_L3_common_memory.sm,uclinux.map.xml也有差不多27M,跑起来几乎没什么问题,就是下载速度变得慢了点,下载一次需要3-5分钟,不过无论如何都比用gcc toolchain编译下载要快,不是吗?
另外跑这样的大系统感觉最好有足够的内存和USB仿真器,使用了两个系统进行编译,一个是笔记本(1.6G CPU + 2G内存 + USB仿真器),另一个是台式机(sp3200 + 512M内存 + PCI仿真器),感觉用笔记本的速度要比台式机的快多了。
两个都是用的ADI的仿真器,哪天有机会搞个国产的仿真器试试,看看到底咋样,能不能经受住考验。哈哈!
1 参考资料
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(70):保留VDSP的heap(2009-02-20)
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(71):l1_data_sram_init的疑惑(2009-02-20)
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(72):中断时SP的保存(2009-2-22)
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(73):.init.setup(2009-02-27)
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(74):initramfs(2009-02-27)