Thursday, May 13, 2010

Google Japan Blog: Google 日本語入力がオープンソースになりました

Sunday, February 18, 2007

組み込みシステム開発評価キット(CQ出版)購入

去年(2006年)の年末になるけど、「組み込みシステム開発評価キット」を買ってしまった。

まだ、余りいじっていないが、色々楽しめそう。
EDKでGCCがうまく動作しない問題とかが、解決できたので、
時間を見つけて動かしてみたいと思います。

最近、特許申請を出していたので、時間が無かった。
(言い訳だけど、)

今月末で、会社を辞める予定、
その後のことは、もう少し先にならないと決まらない。
もしかすると、会社を今年作るかもしれない。

Wednesday, August 09, 2006

Kernel 2.6.17.4 on SH7780

2.6.17.4のカーネルが、SH7780で動きました。
ディスクは、/dev/hdaとmtdを併用しています。

2.6.10の時よりも安定している模様。
意味不明のハングアップはなくなった。

次の表は、SH-Linuxからの変更点のまとめ。



変更モジュール変更内容
arch/sh/drivers/pci/ops-se7780.c PCIバス初期化、INTA,INTB,INTC,INTDの定義(新設)
include/asm-sh/se7780/map.hボード上のレジスタのアドレス(新設)
include/asm-sh/se7780/io.hボードのI/O操作用の関数のプロトタイプ(新設)
include/asm-sh/se7780/irq.hボードの割り込み定義(新設)
include/asm-sh/se7780/irq.hボードの変数の定義(新設)
arch/sh/boards/hanada/se7780/setup.cmachine_vectorとFPGAの初期化(新設)
arch/sh/boards/hanada/se7780/io.c新設
arch/sh/boards/hanada/se7780/led.cHeartBeat用のコード(新設)



以下、起動時の出力。


masta@SH7780:~$ dmesg
Linux version 2.6.17-sh (masta@localhost.localdomain) (gcc 3.4.5)
on Aug 7 15:52:14 JST 2006
SolutionEngine MS7780SE03.
Init FPGA.
On node 0 totalpages: 32768
DMA zone: 32768 pages, LIFO batch:7
Built 1 zonelists
Kernel command line: console=ttySC0,115200 root=301
init_IRQ_intc2
PID hash table entries: 1024 (order: 10, 4096 bytes)
Interval = 83333
Using tmu for system timer
Console: colour dummy device 80x25
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 126720k/131072k available (2741k kernel code, 4276k reserved, 106k data,
132k init)
PVR=10200a00 CVR=73440010 PRR=00000920
I-cache : n_ways=4 n_sets=256 way_incr=8192
I-cache : entry_mask=0x00001fe0 alias_mask=0x00001000 n_aliases=2
D-cache : n_ways=4 n_sets=256 way_incr=8192
D-cache : entry_mask=0x00001fe0 alias_mask=0x00001000 n_aliases=2
Calibrating delay loop... 177.35 BogoMIPS (lpj=886784)
Mount-cache hash table entries: 512
CPU: SH7780
PCI: Using configuration type 1
NET: Registered protocol family 16
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
Autoconfig PCI channel 0x882c35b0
Scanning bus 00, I/O 0x00002000:0x00402000, Mem 0xfd000000:0xfe000000
00:00.0 Class 0200: 8086:1229 (rev 0c)
Mem at 0xfd000000 [size=0x1000]
I/O at 0x00002000 [size=0x40]
Mem at 0xfd020000 [size=0x20000]
00:01.0 Class 0104: 1095:3114 (rev 02)
I/O at 0x00002040 [size=0x8]
I/O at 0x00002048 [size=0x4]
I/O at 0x00002050 [size=0x8]
I/O at 0x00002058 [size=0x4]
I/O at 0x00002060 [size=0x10]
Mem at 0xfd040000 [size=0x400]
00:02.0 Class 0180: 1095:3512 (rev 01)
I/O at 0x00002070 [size=0x8]
I/O at 0x00002078 [size=0x4]
I/O at 0x00002080 [size=0x8]
I/O at 0x00002088 [size=0x4]
I/O at 0x00002090 [size=0x10]
Mem at 0xfd040400 [size=0x200]
00:03.0 Class 0c03: 1033:0035 (rev 43)
Mem at 0xfd041000 [size=0x1000]
00:03.1 Class 0c03: 1033:0035 (rev 43)
Mem at 0xfd042000 [size=0x1000]
PCI: IRQ mapping request for slot 0, func 0, irq 65
PCI: IRQ mapping request for slot 1, func 0, irq 68
PCI: IRQ mapping request for slot 2, func 0, irq 67
PCI: IRQ mapping request for slot 3, func 0, irq 68
PCI: IRQ mapping request for slot 3, func 1, irq 65
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 4096 bind 2048)
TCP reno registered
io scheduler noop registered
io scheduler deadline registered (default)
SuperH SCI(F) driver initialized
ttySC0 at MMIO 0xffe00000 (irq = 43) is a scif
ttySC1 at MMIO 0xffe10000 (irq = 79) is a scif
loop: loaded (max 8 devices)
Intel(R) PRO/1000 Network Driver - version 7.0.33-k2
Copyright (c) 1999-2005 Intel Corporation.
e100: Intel(R) PRO/100 Network Driver, 3.5.10-k2-NAPI
e100: Copyright(c) 1999-2005 Intel Corporation
e100: eth0: e100_probe: addr 0xfd000000, irq 65, MAC addr 00:02:B3:40:8F:86
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
Sil3114 Serial ATA: IDE controller at PCI slot 0000:00:01.0
Sil3114 Serial ATA: chipset revision 2
Sil3114 Serial ATA: 100% native mode on irq 68
ide0: MMIO-DMA , BIOS settings: hda:pio, hdb:pio
ide1: MMIO-DMA , BIOS settings: hdc:pio, hdd:pio
Probing IDE interface ide0...
hda: Maxtor 6L250S0, ATA DISK drive
ide0 at 0xfd040080-0xfd040087,0xfd04008a on irq 68
Probing IDE interface ide1...
SiI3512 Serial ATA: IDE controller at PCI slot 0000:00:02.0
SiI3512 Serial ATA: chipset revision 1
SiI3512 Serial ATA: 100% native mode on irq 67
ide2: MMIO-DMA , BIOS settings: hde:pio, hdf:pio
ide3: MMIO-DMA , BIOS settings: hdg:pio, hdh:pio
Probing IDE interface ide2...
Probing IDE interface ide3...
hda: max request size: 64KiB
hda: 490234752 sectors (251000 MB) w/16384KiB Cache, CHS=30515/255/63
hda: cache flushes supported
hda: hda1 hda2 hda3
Map virt addr 0xa0000000
Probing for flash chips at 0x00000000
SH Solution Engine FLASH: Found 2 x16 devices at 0x0 in 32-bit bank
Amd/Fujitsu Extended Query Table at 0x0040
SH Solution Engine FLASH: CFI does not contain boot bank location. Assuming top.
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
SH Solution Engine: Flash at 0x00000000
Creating 3 MTD partitions on "SH Solution Engine FLASH":
0x00000000-0x00020000 : "bootloader"
0x00020000-0x00220000 : "kernel"
0x00220000-0x01000000 : "userland"
usbmon: debugfs is not available
ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
ohci_hcd 0000:00:03.0: OHCI Host Controller
ohci_hcd 0000:00:03.0: new USB bus registered, assigned bus number 1
ohci_hcd 0000:00:03.0: irq 68, io mem 0xfd041000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ohci_hcd 0000:00:03.1: OHCI Host Controller
ohci_hcd 0000:00:03.1: new USB bus registered, assigned bus number 2
ohci_hcd 0000:00:03.1: irq 65, io mem 0xfd042000
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.6:USB HID core driver
md: raid0 personality registered for level 0
md: raid1 personality registered for level 1
md: raid5 personality registered for level 5
md: raid4 personality registered for level 4
raid5: measuring checksumming speed
8regs : 376.000 MB/sec
8regs_prefetch: 318.400 MB/sec
32regs : 476.000 MB/sec
32regs_prefetch: 398.800 MB/sec
raid5: using function: 32regs (476.000 MB/sec)
md: md driver 0.90.3 MAX_MD_DEVS=256, MD_SB_DISKS=27
md: bitmap version 4.39
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
e100: eth0: e100_watchdog: link up, 100Mbps, full-duplex
IP-Config: Incomplete network configuration information.
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
EXT2-fs warning: checktime reached, running e2fsck is recommended
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 132k freed
ReiserFS: hda3: found reiserfs format "3.6" with standard journal
ReiserFS: hda3: using ordered data mode
ReiserFS: hda3: journal params: device hda3, size 8192, journal first block 18,
max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda3: checking transaction log (hda3)
ReiserFS: hda3: Using r5 hash to sort names
e100: eth0: e100_watchdog: link up, 100Mbps, full-duplex


hdparmの数値は、以前の2.6.10よりも早くなった。


SH7780:~# hdparm -tT /dev/hda

/dev/hda:
Timing cached reads: 300 MB in 2.02 seconds = 148.53 MB/sec
Timing buffered disk reads: 120 MB in 3.04 seconds = 39.53 MB/sec

Monday, July 24, 2006

Kernel 2.6.10 on SH7780

2.6.10のカーネル起動メッセージ

「173.26 BogoMIPS」と出ているが、
この値は、SH-4のSH7751R@266MHzよりも遅い!!!

まぁ、実質どうでも良い数字であるが、なぜだろう。

RAID5の計算は、SH7751R@266MHzよりも2倍以上速い模様。


masta@SH7780:~$ dmesg
Linux version 2.6.10 (root@SH7780) (gcc version 3.4.4 20050314 (prerelease) (Deb
ian 3.4.3-13)) #2 Tue Jul 25 00:10:34 JST 2006
On node 0 totalpages: 32768
DMA zone: 32768 pages, LIFO batch:8
Normal zone: 0 pages, LIFO batch:1
HighMem zone: 0 pages, LIFO batch:1
Built 1 zonelists
Kernel command line: console=ttySC0,115200 root=301
PID hash table entries: 1024 (order: 10, 16384 bytes)
Calculated peripheral clock value 32498688 differs from sh_pclk value 33333333,
fixing..
CPU clock: 389.98MHz
Bus clock: 64.99MHz
Module clock: 32.49MHz
Interval = 81247
Console: colour dummy device 80x25
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 126208k/131072k available (2897k kernel code, 4824k reserved, 190k data,
320k init)
Calibrating delay loop... 173.26 BogoMIPS (lpj=866304)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: SH7780
NET: Registered protocol family 16
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
SH7780 PCI: Finished initialization of the PCI controller
PCIBIOS: USB Host port num set 4
PCI: Using configuration type 1
SH Virtual Bus initialized
NTFS driver 2.1.22 [Flags: R/W].
Initializing Cryptographic API
Console: switching to colour frame buffer device 80x30
fb0: sm501lcd frame buffer device
SuperH SCI(F) driver initialized
ttySC0 at MMIO 0xffe00000 (irq = 43) is a scif
ttySC1 at MMIO 0xffe10000 (irq = 78) is a scif
io scheduler noop registered
io scheduler deadline registered
loop: loaded (max 8 devices)
Intel(R) PRO/1000 Network Driver - version 5.5.4-k2
Copyright (c) 1999-2004 Intel Corporation.
e100: Intel(R) PRO/100 Network Driver, 3.2.3-k2-NAPI
e100: Copyright(c) 1999-2004 Intel Corporation
e100: eth0: e100_probe: addr 0xfd000000, irq 65, MAC addr 00:02:B3:40:8F:86
PPP generic driver version 2.4.2
Universal TUN/TAP device driver 1.5 (C)1999-2002 Maxim Krasnyansky
smc91x.c: v1.1, sep 22 2004 by Nicolas Pitre
eth1: SMC91C11xFD (rev 1) at 0x300 IRQ 8 [nowait]
eth1: Ethernet addr: 00:00:87:d6:0e:43
eth1: PHY LAN83C183 (LAN91C111 Internal)
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
SiI3114 Serial ATA (xxxxxx): IDE controller at PCI slot 0000:00:01.0
SiI3114 Serial ATA (xxxxxx): chipset revision 2
SiI3114 Serial ATA (xxxxxx): 100% native mode on irq 68
ide0: MMIO-DMA , BIOS settings: hda:pio, hdb:pio
ide1: MMIO-DMA , BIOS settings: hdc:pio, hdd:pio
Probing IDE interface ide0...
hda: Maxtor 6L250S0, ATA DISK drive
elevator: using deadline as default io scheduler
ide0 at 0xfd040080-0xfd040087,0xfd04008a on irq 68
Probing IDE interface ide1...
SiI3512 Serial ATA: IDE controller at PCI slot 0000:00:02.0
SiI3512 Serial ATA: chipset revision 1
SiI3512 Serial ATA: 100% native mode on irq 67
ide2: MMIO-DMA , BIOS settings: hde:pio, hdf:pio
ide3: MMIO-DMA , BIOS settings: hdg:pio, hdh:pio
Probing IDE interface ide2...
Probing IDE interface ide3...
hda: max request size: 64KiB
hda: 490234752 sectors (251000 MB) w/16384KiB Cache, CHS=30515/255/63
hda: cache flushes supported
hda: hda1 hda2 hda3
ide-floppy driver 0.99.newide
Map virt addr 0xa0000000
Probing for flash chips at 0x00000000
SH Solution Engine FLASH: Found 2 x16 devices at 0x0 in 32-bit bank
Amd/Fujitsu Extended Query Table at 0x0040
SH Solution Engine FLASH: CFI does not contain boot bank location. Assuming top.
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
SH Solution Engine: Flash at 0x00000000
Creating 3 MTD partitions on "SH Solution Engine FLASH":
0x00000000-0x00020000 : "bootloader"
0x00020000-0x00220000 : "kernel"
0x00220000-0x01000000 : "userland"
ehci_hcd 0000:00:03.2: NEC Corporation USB 2.0
ehci_hcd 0000:00:03.2: irq 66, pci mem 0xfd043000
ehci_hcd 0000:00:03.2: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:03.2: USB 2.0 initialized, EHCI 1.00, driver 26 Oct 2004
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 5 ports detected
ohci_hcd: 2004 Nov 08 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
ohci_hcd 0000:00:03.0: NEC Corporation USB
ohci_hcd 0000:00:03.0: irq 68, pci mem 0xfd041000
ohci_hcd 0000:00:03.0: new USB bus registered, assigned bus number 2
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 3 ports detected
ohci_hcd 0000:00:03.1: NEC Corporation USB (#2)
ohci_hcd 0000:00:03.1: irq 65, pci mem 0xfd042000
ohci_hcd 0000:00:03.1: new USB bus registered, assigned bus number 3
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.0:USB HID core driver
mice: PS/2 mouse device common for all mice
md: raid0 personality registered as nr 2
md: raid1 personality registered as nr 3
md: raid5 personality registered as nr 4
raid5: measuring checksumming speed
8regs : 367.200 MB/sec
8regs_prefetch: 360.800 MB/sec
32regs : 465.200 MB/sec
32regs_prefetch: 448.000 MB/sec
raid5: using function: 32regs (465.200 MB/sec)
md: md driver 0.90.1 MAX_MD_DEVS=256, MD_SB_DISKS=27
MS7780SE03 HAC & AK4544A Audio Driver
NET: Registered protocol family 2
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP: Hash tables configured (established 8192 bind 16384)
NET: Registered protocol family 1
NET: Registered protocol family 17
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 320k freed
Adding 2409740k swap on /dev/hda2. Priority:-1 extents:1
ReiserFS: hda3: found reiserfs format "3.6" with standard journal
ReiserFS: hda3: using ordered data mode
ReiserFS: hda3: journal params: device hda3, size 8192, journal first block 18,
max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda3: checking transaction log (hda3)
ReiserFS: hda3: Using r5 hash to sort names
e100: eth0: e100_watchdog: link up, 100Mbps, full-duplex

Linuxをポーティング!?

SuperH (SH-4A SH7780)に Linuxをポーティング!?



SH7780のSolutionEngine(型番:MS7780SE03)をいじって半年が経とうとしている。
自前のBIOSは、1ヶ月程度で動いたが、Linux BSPキットのベータ版は、たまに
原因不明のハングアップが発生していて、暫く放置されていた。


先日(7月上旬)、 正式版のLinux BSPキットが送られてきたので、色々弄っていたが、
1週間程度で、SII3114のSATAカードをrootにして起動できるようになった。
これに伴い、BIOSのコマンドも 拡張して、ROM以外にhdaからも起動できるように
変更した。

でもやっぱり、Linux BSP(Kernel 2.6.10)だと、翌日ハングアップしている場合が
ある。一応、カーネル以外は、debianパッケージをハードディスクに
入れてコンパイル環境も整えてみたが、放っておくと次のようなメッセージを
コンソールに出す場合もあった。
(SIIのSATAドライバもpci_ids.hとsii.cを修正して無理やり動かしたのが
いけないのかもしれないけど、 Solution Engine上の SII3512でもどうやら
同じなので、それだけの問題ではないようだ。)


masta@SH7780:~$ hda: dma_timer_expiry: dma status == 0x22
hda: DMA timeout error
hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest }

ide: failed opcode was: unknown
hda: status timeout: status=0xd8 { Busy }

ide: failed opcode was: unknown
ide0: reset phy, status=0x00000113, siimage_reset
hda: drive not ready for command
ide0: reset: success
hda: dma_intr: status=0x00 { }

ide: failed opcode was: unknown
hda: status timeout: status=0xfd { Busy }

ide: failed opcode was: unknown
hda: DMA disabled
ide0: reset phy, status=0xfd040104, siimage_reset
hda: drive not ready for command
ide0: reset phy dead, status=0xfd040104
ide0: host reset_poll failure for hda.
hda: status error: status=0xfd { Busy }

ide: failed opcode was: unknown
ide0: reset phy, status=0xfd040104, siimage_reset
hda: drive not ready for command
ide0: reset phy dead, status=0xfd040104
ide0: host reset_poll failure for hda.
hda: status error: status=0xfd { Busy }

ide: failed opcode was: unknown
end_request: I/O error, dev hda, sector 46434239
hda: drive not ready for command


そこで、他のLinuxのカーネルをSH7780用にコンパイルしてみることにした。
lantankのdebian化でお世話になったサイトからカーネルを
ダウンロードして、board定義などを適当に加えてコンパイルしてみた。
(ソースコードの構成を見ると昔のKernel 0.98とかと比べると、まったく別物だね。)

ポーティングというと新しいCPUに対応するところから行うというのが
普通だと思うが、今回は、SH7780のCPU部分は既にカーネルに含まれていたので
CPU周りはそのまま利用して、ボードの定義を追加してみた。

Tuesday, June 20, 2006

CPLDのノイズ対策

「結論」
UART受けは2段でのD-FFで入力信号をラッチしてから、ステートマシンで処理すること。
(念のため100pf程度のコンデンサでノイズを取っておくこと)

「現象」
250kbpsのUARTを受けて処理してFIFO経由で別レートのUARTで転送するCPLDを作った。
シミュレーション上は、動作するが実機だとまれに0xFFが出力されるという問題が発生した。

「説明」
メタステーブル状態が発生するのは、もう少しクロックが高い信号のときだと思っていたら
どうやら、入力の信号にノイズが乗っていたため、たまに発生していたらしい。

メタステーブル状態になると、他のフリップフロップの信号も不安定になり'0'で初期化している信号も初期化が無視される。今回のケースでは 0x00で初期化している8bitラッチが0xFFになって、FIFOに渡っていたと想像される。0xFFを代入するVHDLは書いていないので、近辺の信号が誤動作を受けるらしい。

Sunday, June 04, 2006

Hobby PC: EDK の1回目

EDKは日本語が使えない模様。
UCFファイルに日本語を入れたかったんだけどな。

SPARTAN-3 Starter Kitに2つシリアルを追加する。

1.UCFファイルにRS232_1を追加
2.MHSファイルにRS232_1を追加
3.MSSファイルにRS232_1を追加

具体的には次の通り

■system.ucfファイルの変更箇所


Net fpga_0_RS232_0_RX_pin LOC=t13;
Net fpga_0_RS232_0_TX_pin LOC=r13;

Net fpga_0_RS232_1_RX_pin LOC=n10; # ug130.pdf ←今回追加
Net fpga_0_RS232_1_TX_pin LOC=t14; # ug130.pdf ←今回追加



■system.mhsファイルの変更箇所



#PORT fpga_0_RS232_RX_pin = fpga_0_RS232_RX, DIR = I
#PORT fpga_0_RS232_TX_pin = fpga_0_RS232_TX, DIR = O
PORT fpga_0_RS232_0_RX_pin = fpga_0_RS232_RX, DIR = I
PORT fpga_0_RS232_0_TX_pin = fpga_0_RS232_TX, DIR = O
PORT fpga_0_RS232_1_RX_pin = fpga_0_RS232_RX, DIR = I
PORT fpga_0_RS232_1_TX_pin = fpga_0_RS232_TX, DIR = O

...

BEGIN opb_uartlite
PARAMETER INSTANCE = RS232_0
PARAMETER HW_VER = 1.00.b
PARAMETER C_BAUDRATE = 115200
PARAMETER C_DATA_BITS = 8
PARAMETER C_ODD_PARITY = 0
PARAMETER C_USE_PARITY = 0
PARAMETER C_CLK_FREQ = 50000000
PARAMETER C_BASEADDR = 0x40600000
PARAMETER C_HIGHADDR = 0x4060ffff
BUS_INTERFACE SOPB = mb_opb
PORT OPB_Clk = sys_clk_s
PORT RX = fpga_0_RS232_0_RX
PORT TX = fpga_0_RS232_0_TX
END

BEGIN opb_uartlite
PARAMETER INSTANCE = RS232_1
PARAMETER HW_VER = 1.00.b
PARAMETER C_BAUDRATE = 115200
PARAMETER C_DATA_BITS = 8
PARAMETER C_ODD_PARITY = 0
PARAMETER C_USE_PARITY = 0
PARAMETER C_CLK_FREQ = 50000000
PARAMETER C_BASEADDR = 0x40610000
PARAMETER C_HIGHADDR = 0x4061ffff
BUS_INTERFACE SOPB = mb_opb
PORT OPB_Clk = sys_clk_s
PORT RX = fpga_0_RS232_1_RX
PORT TX = fpga_0_RS232_1_TX
END




■system.mssファイルの変更箇所


BEGIN DRIVER
PARAMETER DRIVER_NAME = uartlite
PARAMETER DRIVER_VER = 1.00.b
PARAMETER HW_INSTANCE = RS232_0
END

BEGIN DRIVER
PARAMETER DRIVER_NAME = uartlite
PARAMETER DRIVER_VER = 1.00.b
PARAMETER HW_INSTANCE = RS232_1
END



ハードウェアを定義するMHSを変更したら、自動生成されるHDLも
一旦削除する必要があるので、make -f system.make hwcleanとするか
或いは、Hardware->Clean Hardware のメニューを実行する必要がある。
しないと、次のエラーがOutputに表示される。




ERROR:MDT - fpga_0_RS232_0_RX (RX) -
C:\labo\labo_fpga\labo_EDK\SPARTAN3\system.mhs line 141 - connection has no
driver!
ERROR:MDT - fpga_0_RS232_1_RX (RX) -
C:\labo\labo_fpga\labo_EDK\SPARTAN3\system.mhs line 157 - connection has no
driver!
WARNING:MDT - fpga_0_RS232_0_TX (TX) -
C:\labo\labo_fpga\labo_EDK\SPARTAN3\system.mhs line 142 - floating
connection!
WARNING:MDT - fpga_0_RS232_1_TX (TX) -
C:\labo\labo_fpga\labo_EDK\SPARTAN3\system.mhs line 158 - floating
connection!
WARNING:MDT - dcm_0_lock (LOCKED) -
C:\labo\labo_fpga\labo_EDK\SPARTAN3\system.mhs line 260 - floating
connection!





□ハードウェア(SPARTAN3 Starter Kit)のスペック


# Created by Base System Builder Wizard for Xilinx EDK 8.1 Build EDK_I.18.7
# Sat Jun 03 23:18:14 2006
# Target Board: Xilinx Spartan-3 Starter Board Rev E
# Family: spartan3
# Device: XC3S200
# Package: FT256
# Speed Grade: -4
# Processor: Microblaze
# System clock frequency: 50.000000 MHz
# Debug interface: On-Chip HW Debug Module
# On Chip Memory : 8 KB
# Total Off Chip Memory : 1 MB
# - SRAM_256Kx32 = 1 MB

EDK8.1 をさわってみる

EDK8.1を購入したので、触ってみる。

一緒に購入したSPARTAN3EのStarterKitに接続してみるも、開発に使用するThinkPad T42pが、ものすごく遅くなる。
実行時のコンソールの表示からCygwinを内部で使用していることが分かる。 このためか、2重起動とかはチェックできていない様子。Linuxで開発した方が 快適かもしれないと思った。

マクロCPUであるMicroBlaze用プログラムは、Xilinx Platform Studioに含まれている GCCを利用する。サンプルコードが自動で生成されるため、RS232C経由でprintは 何もしないでもサンプル内で出来ている。

やること:
 1.自分のVHDLの回路を組み合わせる。
 2.残りのFPGAの使用率の確認。
 3.Peripheralの新規作成方法。

Thursday, June 01, 2006

About this site

These are webpages to log my work toward "My original Hobby PC".