raspberry pi multiboot 実験1

信号レベルで作ってみたのだけど、うまくいかないそうなので調べてみました。
とりあえずmbedの成功例。

//  mbed(LPC1768)   gba serial port(color)
//  p1-0V           6-GND (blue)
//  p5-mosi         3-SI  (orange)
//  p6-miso         2-SO  (red)
//  p7-sck          5-SC  (green)

#include "mbed.h"

LocalFileSystem local("local");
Serial pc(USBTX, USBRX);
SPI spi(p5, p6, p7);

int main(void) 
{
    spi.format(16, 3);
    spi.frequency(100000);

    uint16_t w1, w2;
    uint32_t w, r;

    pc.printf("Looking for GBA\n");

    do
    {
        w  = 0x00006202;
        w1 = w >> 16;
        w2 = w & 0xffff;

        r  = spi.write(w1) << 16;
        r  = spi.write(w2) | r;

        pc.printf("r:0x%08x\n", r);
        wait(0.01);

    } while(r != 0x72026202);

    pc.printf("Found GBA!\n");
}

■実行ログ
GBAはブートが完了してタイトルロゴが表示されている状態。mbedのリセットボタンを押した後のログ。

Looking for GBA
r:0x00000000
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0xffffffff
r:0x00000000
r:0x72026202
Found GBA!

■ロジアナ
r:0x00000000
f:id:akkera102:20160519195004p:plain
r:0x72026202
f:id:akkera102:20160519195013p:plain
普通ですよねー。