从Tiny210V2_V1.0_120713_sch.pdf和核心板可以知道,OM[0:5]引脚的连接关系:
OM0 R2 NC
OM1 R3 103 VDD_SYS_3.3
OM2 R4 103 VDD_SYS_3.3
OM3 R5 NC
OM4 R6 NC
OM5 R7 NC
OM0 R8 103 DGND
OM1 R9 NC
OM2 R10 NC
OM3 R11 103 DGND
OM4 R12 103 DGND
OM5 R13 103 DGND
OM1 BOOT_CS
OM1 74LVC1G04->A
OM2 74LVC1G04->Y
OM3 74LVC1G04->Y
通过察看74LVC1G04的数据手册可以知道:
输入引脚与输出引脚AY之间存在如下关系:
A Y
0 1
1 0
在Tiny210V2_SDK_V1.0_120804_sch.pdf中可以找到BOOT_CS连接到一个连接NAND和DGND的开关。
当开关拨到NAND,也就是默认情况时以NAND 3KB 5CYCLE 8BIT ECC模式启动(PS:友善16BIT ECC怎么来的?);
当开关拨到DGND,也就是地板印有SDBOOT一边时,以SDBOOT模式启动。
$ sudo fdisk /dev/sdb
Command (m for help): p
Disk /dev/sdb: 1967 MB, 1967128576 bytes
255 heads, 63 sectors/track, 239 cylinders, total 3842048 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf93b03be
Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 96389 47171 c W95 FAT32 (LBA)
/dev/sdb2 96390 27551474 13727542+ 83 Linux
建立裸机代码实现点亮LED,并且亮灭循环(代码来源于亚嵌李明老师,感谢李明老师的开源精神,在此鄙视“伪开源”)
start.s代码:$ ls
led.bin led.elf led.lst led.o led.s Makefile mktiny210spl.exe sd-led.bin
.global _start
_start:
ldr r0, =0x1
ldr r1, =0xe0200280
str r0, [r1]
loop:
ldr r0, =0x0
ldr r1, =0xe0200284
str r0, [r1]
bl delay
ldr r0, =0x1
ldr r1, =0xe0200284
str r0, [r1]
bl delay
b loop
delay:
ldr r0, =0x100000
go_on:
sub r0, r0, #1
cmp r0, #0
bne go_on
mov pc, lr
sudo dd iflag=dsync oflag=dsync if=sd-led.bin of=/dev/sdb seek=1
经上述分析和操作,将SD插入Tiny210v2底板SD SLOT,将开发拨到SDBOOT,再打开电源,LED1应该亮灭循环。
可是实际在上电后友善的Tiny210v2变成了噪音机,蜂鸣器先是一阵鸣响,停顿一下继续它未完的事业。。。。。。
请问友善官方能提供个v2从SD卡启动裸机程序的办法吗?各位V2用户有啥好办法没?