diff --git a/boards/pi2/blinker01/Makefile b/boards/pi2/HYP/blinker01/Makefile similarity index 100% rename from boards/pi2/blinker01/Makefile rename to boards/pi2/HYP/blinker01/Makefile diff --git a/boards/pi2/blinker01/README b/boards/pi2/HYP/blinker01/README similarity index 100% rename from boards/pi2/blinker01/README rename to boards/pi2/HYP/blinker01/README diff --git a/boards/pi2/blinker01/blinker01.bin b/boards/pi2/HYP/blinker01/blinker01.bin similarity index 100% rename from boards/pi2/blinker01/blinker01.bin rename to boards/pi2/HYP/blinker01/blinker01.bin diff --git a/boards/pi2/blinker01/blinker01.c b/boards/pi2/HYP/blinker01/blinker01.c similarity index 100% rename from boards/pi2/blinker01/blinker01.c rename to boards/pi2/HYP/blinker01/blinker01.c diff --git a/boards/pi2/blinker01/blinker01.elf b/boards/pi2/HYP/blinker01/blinker01.elf similarity index 100% rename from boards/pi2/blinker01/blinker01.elf rename to boards/pi2/HYP/blinker01/blinker01.elf diff --git a/boards/pi2/blinker01/blinker01.hex b/boards/pi2/HYP/blinker01/blinker01.hex similarity index 100% rename from boards/pi2/blinker01/blinker01.hex rename to boards/pi2/HYP/blinker01/blinker01.hex diff --git a/boards/pi2/blinker01/blinker01.list b/boards/pi2/HYP/blinker01/blinker01.list similarity index 100% rename from boards/pi2/blinker01/blinker01.list rename to boards/pi2/HYP/blinker01/blinker01.list diff --git a/boards/pi2/blinker01/blinker01.o b/boards/pi2/HYP/blinker01/blinker01.o similarity index 100% rename from boards/pi2/blinker01/blinker01.o rename to boards/pi2/HYP/blinker01/blinker01.o diff --git a/boards/pi2/blinker01/memmap b/boards/pi2/HYP/blinker01/memmap similarity index 100% rename from boards/pi2/blinker01/memmap rename to boards/pi2/HYP/blinker01/memmap diff --git a/boards/pi2/blinker01/vectors.o b/boards/pi2/HYP/blinker01/vectors.o similarity index 100% rename from boards/pi2/blinker01/vectors.o rename to boards/pi2/HYP/blinker01/vectors.o diff --git a/boards/pi2/blinker01/vectors.s b/boards/pi2/HYP/blinker01/vectors.s similarity index 100% rename from boards/pi2/blinker01/vectors.s rename to boards/pi2/HYP/blinker01/vectors.s diff --git a/boards/pi2/blinker02/Makefile b/boards/pi2/HYP/blinker02/Makefile similarity index 100% rename from boards/pi2/blinker02/Makefile rename to boards/pi2/HYP/blinker02/Makefile diff --git a/boards/pi2/blinker02/README b/boards/pi2/HYP/blinker02/README similarity index 100% rename from boards/pi2/blinker02/README rename to boards/pi2/HYP/blinker02/README diff --git a/boards/pi2/blinker02/blinker02.c b/boards/pi2/HYP/blinker02/blinker02.c similarity index 100% rename from boards/pi2/blinker02/blinker02.c rename to boards/pi2/HYP/blinker02/blinker02.c diff --git a/boards/pi2/blinker02/memmap b/boards/pi2/HYP/blinker02/memmap similarity index 100% rename from boards/pi2/blinker02/memmap rename to boards/pi2/HYP/blinker02/memmap diff --git a/boards/pi2/blinker02/vectors.s b/boards/pi2/HYP/blinker02/vectors.s similarity index 100% rename from boards/pi2/blinker02/vectors.s rename to boards/pi2/HYP/blinker02/vectors.s diff --git a/boards/pi2/blinker03/Makefile b/boards/pi2/HYP/blinker03/Makefile similarity index 100% rename from boards/pi2/blinker03/Makefile rename to boards/pi2/HYP/blinker03/Makefile diff --git a/boards/pi2/blinker03/README b/boards/pi2/HYP/blinker03/README similarity index 100% rename from boards/pi2/blinker03/README rename to boards/pi2/HYP/blinker03/README diff --git a/boards/pi2/blinker03/blinker03.c b/boards/pi2/HYP/blinker03/blinker03.c similarity index 100% rename from boards/pi2/blinker03/blinker03.c rename to boards/pi2/HYP/blinker03/blinker03.c diff --git a/boards/pi2/blinker03/memmap b/boards/pi2/HYP/blinker03/memmap similarity index 100% rename from boards/pi2/blinker03/memmap rename to boards/pi2/HYP/blinker03/memmap diff --git a/boards/pi2/blinker03/vectors.s b/boards/pi2/HYP/blinker03/vectors.s similarity index 100% rename from boards/pi2/blinker03/vectors.s rename to boards/pi2/HYP/blinker03/vectors.s diff --git a/boards/pi2/blinker04/Makefile b/boards/pi2/HYP/blinker04/Makefile similarity index 100% rename from boards/pi2/blinker04/Makefile rename to boards/pi2/HYP/blinker04/Makefile diff --git a/boards/pi2/blinker04/README b/boards/pi2/HYP/blinker04/README similarity index 100% rename from boards/pi2/blinker04/README rename to boards/pi2/HYP/blinker04/README diff --git a/boards/pi2/blinker04/blinker04.c b/boards/pi2/HYP/blinker04/blinker04.c similarity index 100% rename from boards/pi2/blinker04/blinker04.c rename to boards/pi2/HYP/blinker04/blinker04.c diff --git a/boards/pi2/blinker04/memmap b/boards/pi2/HYP/blinker04/memmap similarity index 100% rename from boards/pi2/blinker04/memmap rename to boards/pi2/HYP/blinker04/memmap diff --git a/boards/pi2/blinker04/vectors.s b/boards/pi2/HYP/blinker04/vectors.s similarity index 100% rename from boards/pi2/blinker04/vectors.s rename to boards/pi2/HYP/blinker04/vectors.s diff --git a/boards/pi2/blinker05/Makefile b/boards/pi2/HYP/blinker05/Makefile similarity index 100% rename from boards/pi2/blinker05/Makefile rename to boards/pi2/HYP/blinker05/Makefile diff --git a/boards/pi2/blinker05/README b/boards/pi2/HYP/blinker05/README similarity index 100% rename from boards/pi2/blinker05/README rename to boards/pi2/HYP/blinker05/README diff --git a/boards/pi2/blinker05/blinker05.c b/boards/pi2/HYP/blinker05/blinker05.c similarity index 100% rename from boards/pi2/blinker05/blinker05.c rename to boards/pi2/HYP/blinker05/blinker05.c diff --git a/boards/pi2/blinker05/memmap b/boards/pi2/HYP/blinker05/memmap similarity index 100% rename from boards/pi2/blinker05/memmap rename to boards/pi2/HYP/blinker05/memmap diff --git a/boards/pi2/blinker05/vectors.s b/boards/pi2/HYP/blinker05/vectors.s similarity index 100% rename from boards/pi2/blinker05/vectors.s rename to boards/pi2/HYP/blinker05/vectors.s diff --git a/boards/pi2/blinker06/Makefile b/boards/pi2/HYP/blinker06/Makefile similarity index 100% rename from boards/pi2/blinker06/Makefile rename to boards/pi2/HYP/blinker06/Makefile diff --git a/boards/pi2/blinker06/README b/boards/pi2/HYP/blinker06/README similarity index 100% rename from boards/pi2/blinker06/README rename to boards/pi2/HYP/blinker06/README diff --git a/boards/pi2/blinker06/blinker06.c b/boards/pi2/HYP/blinker06/blinker06.c similarity index 100% rename from boards/pi2/blinker06/blinker06.c rename to boards/pi2/HYP/blinker06/blinker06.c diff --git a/boards/pi2/blinker06/memmap b/boards/pi2/HYP/blinker06/memmap similarity index 100% rename from boards/pi2/blinker06/memmap rename to boards/pi2/HYP/blinker06/memmap diff --git a/boards/pi2/blinker06/periph.c b/boards/pi2/HYP/blinker06/periph.c similarity index 100% rename from boards/pi2/blinker06/periph.c rename to boards/pi2/HYP/blinker06/periph.c diff --git a/boards/pi2/blinker06/periph.h b/boards/pi2/HYP/blinker06/periph.h similarity index 100% rename from boards/pi2/blinker06/periph.h rename to boards/pi2/HYP/blinker06/periph.h diff --git a/boards/pi2/blinker06/vectors.s b/boards/pi2/HYP/blinker06/vectors.s similarity index 100% rename from boards/pi2/blinker06/vectors.s rename to boards/pi2/HYP/blinker06/vectors.s diff --git a/boards/pi2/blinker06/wdog.c b/boards/pi2/HYP/blinker06/wdog.c similarity index 100% rename from boards/pi2/blinker06/wdog.c rename to boards/pi2/HYP/blinker06/wdog.c diff --git a/boards/pi2/blinker06/wdog.h b/boards/pi2/HYP/blinker06/wdog.h similarity index 100% rename from boards/pi2/blinker06/wdog.h rename to boards/pi2/HYP/blinker06/wdog.h diff --git a/boards/pi2/bootloader07/Makefile b/boards/pi2/HYP/bootloader07/Makefile similarity index 100% rename from boards/pi2/bootloader07/Makefile rename to boards/pi2/HYP/bootloader07/Makefile diff --git a/boards/pi2/bootloader07/README b/boards/pi2/HYP/bootloader07/README similarity index 100% rename from boards/pi2/bootloader07/README rename to boards/pi2/HYP/bootloader07/README diff --git a/boards/pi2/bootloader07/bootloader07.c b/boards/pi2/HYP/bootloader07/bootloader07.c similarity index 99% rename from boards/pi2/bootloader07/bootloader07.c rename to boards/pi2/HYP/bootloader07/bootloader07.c index 067e370..7d14667 100644 --- a/boards/pi2/bootloader07/bootloader07.c +++ b/boards/pi2/HYP/bootloader07/bootloader07.c @@ -30,6 +30,8 @@ extern unsigned int timer_tick ( void ); extern void timer_init ( void ); extern unsigned int timer_tick ( void ); +extern void leds_off ( void ); + //------------------------------------------------------------------------ int notmain ( void ) { @@ -42,6 +44,7 @@ int notmain ( void ) unsigned int sum; unsigned int ra; + leds_off(); uart_init(); hexstring(0x12345678); hexstring(GETPC()); diff --git a/boards/pi2/HYP/bootloader07/bootloader07.o b/boards/pi2/HYP/bootloader07/bootloader07.o new file mode 100644 index 0000000..352176d Binary files /dev/null and b/boards/pi2/HYP/bootloader07/bootloader07.o differ diff --git a/boards/pi2/bootloader07/bootloader07_rpi1.elf b/boards/pi2/HYP/bootloader07/bootloader07_rpi1.elf similarity index 99% rename from boards/pi2/bootloader07/bootloader07_rpi1.elf rename to boards/pi2/HYP/bootloader07/bootloader07_rpi1.elf index 44e2318..173a543 100755 Binary files a/boards/pi2/bootloader07/bootloader07_rpi1.elf and b/boards/pi2/HYP/bootloader07/bootloader07_rpi1.elf differ diff --git a/boards/pi2/bootloader07/bootloader07_rpi1.hex b/boards/pi2/HYP/bootloader07/bootloader07_rpi1.hex similarity index 97% rename from boards/pi2/bootloader07/bootloader07_rpi1.hex rename to boards/pi2/HYP/bootloader07/bootloader07_rpi1.hex index 16807b8..5a18055 100644 --- a/boards/pi2/bootloader07/bootloader07_rpi1.hex +++ b/boards/pi2/HYP/bootloader07/bootloader07_rpi1.hex @@ -129055,7 +129055,7 @@ :10FFE0000000000000000000000000000000000011 :10FFF0000000000000000000000000000000000001 :020000040020DA -:1000000002D3A0E3A60000EBFEFFFFEA001080E5AC +:1000000002D3A0E3C00000EBFEFFFFEA001080E592 :100010001EFF2FE1B010C0E11EFF2FE10010C0E570 :100020001EFF2FE1000090E51EFF2FE10E00A0E172 :100030001EFF2FE110FF2FE11EFF2FE110402DE9E1 @@ -129097,43 +129097,50 @@ :100270000400A0E10C109FE563FFFFEB1040BDE818 :100280001EFF2FE108B4003F0002F90010402DE9E5 :1002900008009FE562FFFFEB1040BDE81EFF2FE165 -:1002A00020B4003FF0472DE90080A0E3A6FFFFEB5C -:1002B00040029FE59DFFFFEB5BFFFFEB9BFFFFEB2A -:1002C0004900A0E375FFFFEB4800A0E373FFFFEBDD -:1002D0004500A0E371FFFFEB5800A0E36FFFFFEBC9 -:1002E0000D00A0E36DFFFFEB0A00A0E30890A0E182 -:1002F0000860A0E10850A0E10870A0E10840A0E17A -:1003000066FFFFEB52FFFFEB3A0050E32B00000AC1 -:100310000D0050E30A00501301A0A00300A0A01399 -:100320002900000A2030C0E3470053E35000000AD0 -:10033000013044E2140053E303F19F97F0FFFFEA1A -:10034000B0032000B003200050042000500420001F -:10035000500420005004200030042000F803200046 -:10036000D4032000D4032000D4032000D4032000B1 -:10037000C80320009403200094032000940320006D -:100380009403200094032000940320009403200091 -:1003900094032000390050E3070040820992A0E155 -:1003A0000F0000E2150054E3099080E14500000AC7 -:1003B00027FFFFEB3A0050E3014084E2D3FFFF1A2E -:1003C0000140A0E3CEFFFFEA0662A0E10040A0E307 -:1003D000CBFFFFEA390050E3070040820662A0E14C -:1003E0000F0000E2066080E10668A0E12668A0E157 -:1003F000014084E2C2FFFFEA390050E30700408277 -:100400000552A0E10F0000E2055080E1FF5005E237 -:10041000010055E32700000A0E40A033B8FFFF3A61 -:10042000020055E30940A0030040A013B4FFFFEA17 -:10043000390050E3070040820552A0E10F0000E2BE -:10044000055080E1FF5005E20840A0E3ACFFFFEA61 -:10045000390050E3070040820772A0E10F0000E27C -:10046000077080E10778A0E1277886E1014084E207 -:10047000A3FFFFEA0D00A0E308FFFFEB2D00A0E3C0 -:1004800006FFFFEB2D00A0E304FFFFEB0D00A0E350 -:1004900002FFFFEB0A00A0E300FFFFEB0A00A0E36E -:1004A000FEFEFFEB0209A0E3E1FEFFEB0A00A0E184 -:1004B000F047BDE81EFF2FE10800A0E11BFFFFEBA6 -:1004C0000040A0E38EFFFFEA693829E02334A0E171 -:1004D000FF3CC3E3699423E00700A0E1088087E0C4 -:1004E0000910A0E1C8FEFFEB088089E0047087E2F4 -:0C04F0000E40A0E382FFFFEA78563412B1 +:1002A00020B4003F70402DE954409FE50400A0E1D8 +:1002B0005BFFFFEB4C509FE50E16C0E3021681E397 +:1002C0000400A0E150FFFFEB0500A0E154FFFFEBAD +:1002D0000E19C0E31C4084E20500A0E1021981E38D +:1002E00049FFFFEB0400A0E10219A0E346FFFFEB8A +:1002F0000400A0E10810A0E343FFFFEB7040BDE85D +:100300001EFF2FE11000203F0C00203FF0472DE999 +:100310000080A0E3E2FFFFEB8BFFFFEB40029FE5D5 +:1003200082FFFFEB40FFFFEB80FFFFEB4900A0E304 +:100330005AFFFFEB4800A0E358FFFFEB4500A0E3A6 +:1003400056FFFFEB5800A0E354FFFFEB0D00A0E3C6 +:1003500052FFFFEB0A00A0E30890A0E10860A0E1D3 +:100360000850A0E10870A0E10840A0E14BFFFFEBBE +:1003700037FFFFEB3A0050E32B00000A0D0050E37B +:100380000A00501301A0A00300A0A0132900000A36 +:100390002030C0E3470053E35000000A013044E23C +:1003A000140053E303F19F97F0FFFFEA1C042000C1 +:1003B0001C042000BC042000BC042000BC0420005D +:1003C000BC0420009C0420006404200040042000A1 +:1003D0004004200040042000400420003404200099 +:1003E000000420000004200000042000000420007D +:1003F000000420000004200000042000000420006D +:10040000390050E3070040820992A0E10F0000E2AA +:10041000150054E3099080E14500000A0CFFFFEB52 +:100420003A0050E3014084E2D3FFFF1A0140A0E309 +:10043000CEFFFFEA0662A0E10040A0E3CBFFFFEAA7 +:10044000390050E3070040820662A0E10F0000E29D +:10045000066080E10668A0E12668A0E1014084E230 +:10046000C2FFFFEA390050E3070040820552A0E1D5 +:100470000F0000E2055080E1FF5005E2010055E366 +:100480002700000A0E40A033B8FFFF3A020055E3F0 +:100490000940A0030040A013B4FFFFEA390050E375 +:1004A000070040820552A0E10F0000E2055080E104 +:1004B000FF5005E20840A0E3ACFFFFEA390050E33B +:1004C000070040820772A0E10F0000E2077080E1A0 +:1004D0000778A0E1277886E1014084E2A3FFFFEAE4 +:1004E0000D00A0E3EDFEFFEB2D00A0E3EBFEFFEB24 +:1004F0002D00A0E3E9FEFFEB0D00A0E3E7FEFFEB1C +:100500000A00A0E3E5FEFFEB0A00A0E3E3FEFFEB39 +:100510000209A0E3C6FEFFEB0A00A0E1F047BDE838 +:100520001EFF2FE10800A0E100FFFFEB0040A0E369 +:100530008EFFFFEA693829E02334A0E1FF3CC3E3E2 +:10054000699423E00700A0E1088087E00910A0E19A +:10055000ADFEFFEB088089E0047087E20E40A0E367 +:0805600082FFFFEA7856341215 :040000030000800079 :00000001FF diff --git a/boards/pi2/bootloader07/bootloader07_rpi1.list b/boards/pi2/HYP/bootloader07/bootloader07_rpi1.list similarity index 53% rename from boards/pi2/bootloader07/bootloader07_rpi1.list rename to boards/pi2/HYP/bootloader07/bootloader07_rpi1.list index 8863849..6a0cabf 100644 --- a/boards/pi2/bootloader07/bootloader07_rpi1.list +++ b/boards/pi2/HYP/bootloader07/bootloader07_rpi1.list @@ -10,7 +10,7 @@ Disassembly of section .text: 00200000 : 200000: e3a0d302 mov sp, #134217728 ; 0x8000000 - 200004: eb0000a6 bl 2002a4 + 200004: eb0000c0 bl 20030c 00200008 : 200008: eafffffe b 200008 @@ -215,157 +215,186 @@ Disassembly of section .text: 20029c: e12fff1e bx lr 2002a0: 3f00b420 svccc 0x0000b420 -002002a4 : - 2002a4: e92d47f0 push {r4, r5, r6, r7, r8, r9, sl, lr} - 2002a8: e3a08000 mov r8, #0 - 2002ac: ebffffa6 bl 20014c - 2002b0: e59f0240 ldr r0, [pc, #576] ; 2004f8 - 2002b4: ebffff9d bl 200130 - 2002b8: ebffff5b bl 20002c - 2002bc: ebffff9b bl 200130 - 2002c0: e3a00049 mov r0, #73 ; 0x49 - 2002c4: ebffff75 bl 2000a0 - 2002c8: e3a00048 mov r0, #72 ; 0x48 - 2002cc: ebffff73 bl 2000a0 - 2002d0: e3a00045 mov r0, #69 ; 0x45 - 2002d4: ebffff71 bl 2000a0 - 2002d8: e3a00058 mov r0, #88 ; 0x58 - 2002dc: ebffff6f bl 2000a0 - 2002e0: e3a0000d mov r0, #13 - 2002e4: ebffff6d bl 2000a0 - 2002e8: e3a0000a mov r0, #10 - 2002ec: e1a09008 mov r9, r8 - 2002f0: e1a06008 mov r6, r8 - 2002f4: e1a05008 mov r5, r8 - 2002f8: e1a07008 mov r7, r8 - 2002fc: e1a04008 mov r4, r8 - 200300: ebffff66 bl 2000a0 - 200304: ebffff52 bl 200054 - 200308: e350003a cmp r0, #58 ; 0x3a - 20030c: 0a00002b beq 2003c0 - 200310: e350000d cmp r0, #13 - 200314: 1350000a cmpne r0, #10 - 200318: 03a0a001 moveq sl, #1 - 20031c: 13a0a000 movne sl, #0 - 200320: 0a000029 beq 2003cc - 200324: e3c03020 bic r3, r0, #32 - 200328: e3530047 cmp r3, #71 ; 0x47 - 20032c: 0a000050 beq 200474 - 200330: e2443001 sub r3, r4, #1 - 200334: e3530014 cmp r3, #20 - 200338: 979ff103 ldrls pc, [pc, r3, lsl #2] - 20033c: eafffff0 b 200304 - 200340: 002003b0 strhteq r0, [r0], -r0 - 200344: 002003b0 strhteq r0, [r0], -r0 - 200348: 00200450 eoreq r0, r0, r0, asr r4 - 20034c: 00200450 eoreq r0, r0, r0, asr r4 - 200350: 00200450 eoreq r0, r0, r0, asr r4 - 200354: 00200450 eoreq r0, r0, r0, asr r4 - 200358: 00200430 eoreq r0, r0, r0, lsr r4 - 20035c: 002003f8 strdeq r0, [r0], -r8 ; - 200360: 002003d4 ldrdeq r0, [r0], -r4 ; - 200364: 002003d4 ldrdeq r0, [r0], -r4 ; - 200368: 002003d4 ldrdeq r0, [r0], -r4 ; - 20036c: 002003d4 ldrdeq r0, [r0], -r4 ; - 200370: 002003c8 eoreq r0, r0, r8, asr #7 - 200374: 00200394 mlaeq r0, r4, r3, r0 - 200378: 00200394 mlaeq r0, r4, r3, r0 - 20037c: 00200394 mlaeq r0, r4, r3, r0 - 200380: 00200394 mlaeq r0, r4, r3, r0 - 200384: 00200394 mlaeq r0, r4, r3, r0 - 200388: 00200394 mlaeq r0, r4, r3, r0 - 20038c: 00200394 mlaeq r0, r4, r3, r0 - 200390: 00200394 mlaeq r0, r4, r3, r0 - 200394: e3500039 cmp r0, #57 ; 0x39 - 200398: 82400007 subhi r0, r0, #7 - 20039c: e1a09209 lsl r9, r9, #4 - 2003a0: e200000f and r0, r0, #15 - 2003a4: e3540015 cmp r4, #21 - 2003a8: e1809009 orr r9, r0, r9 - 2003ac: 0a000045 beq 2004c8 - 2003b0: ebffff27 bl 200054 - 2003b4: e350003a cmp r0, #58 ; 0x3a - 2003b8: e2844001 add r4, r4, #1 - 2003bc: 1affffd3 bne 200310 - 2003c0: e3a04001 mov r4, #1 - 2003c4: eaffffce b 200304 - 2003c8: e1a06206 lsl r6, r6, #4 - 2003cc: e3a04000 mov r4, #0 - 2003d0: eaffffcb b 200304 - 2003d4: e3500039 cmp r0, #57 ; 0x39 - 2003d8: 82400007 subhi r0, r0, #7 - 2003dc: e1a06206 lsl r6, r6, #4 - 2003e0: e200000f and r0, r0, #15 - 2003e4: e1806006 orr r6, r0, r6 - 2003e8: e1a06806 lsl r6, r6, #16 - 2003ec: e1a06826 lsr r6, r6, #16 - 2003f0: e2844001 add r4, r4, #1 - 2003f4: eaffffc2 b 200304 - 2003f8: e3500039 cmp r0, #57 ; 0x39 - 2003fc: 82400007 subhi r0, r0, #7 - 200400: e1a05205 lsl r5, r5, #4 - 200404: e200000f and r0, r0, #15 - 200408: e1805005 orr r5, r0, r5 - 20040c: e20550ff and r5, r5, #255 ; 0xff - 200410: e3550001 cmp r5, #1 - 200414: 0a000027 beq 2004b8 - 200418: 33a0400e movcc r4, #14 - 20041c: 3affffb8 bcc 200304 - 200420: e3550002 cmp r5, #2 - 200424: 03a04009 moveq r4, #9 - 200428: 13a04000 movne r4, #0 - 20042c: eaffffb4 b 200304 - 200430: e3500039 cmp r0, #57 ; 0x39 - 200434: 82400007 subhi r0, r0, #7 - 200438: e1a05205 lsl r5, r5, #4 - 20043c: e200000f and r0, r0, #15 - 200440: e1805005 orr r5, r0, r5 - 200444: e20550ff and r5, r5, #255 ; 0xff - 200448: e3a04008 mov r4, #8 - 20044c: eaffffac b 200304 - 200450: e3500039 cmp r0, #57 ; 0x39 - 200454: 82400007 subhi r0, r0, #7 - 200458: e1a07207 lsl r7, r7, #4 - 20045c: e200000f and r0, r0, #15 - 200460: e1807007 orr r7, r0, r7 - 200464: e1a07807 lsl r7, r7, #16 - 200468: e1867827 orr r7, r6, r7, lsr #16 - 20046c: e2844001 add r4, r4, #1 - 200470: eaffffa3 b 200304 - 200474: e3a0000d mov r0, #13 - 200478: ebffff08 bl 2000a0 - 20047c: e3a0002d mov r0, #45 ; 0x2d - 200480: ebffff06 bl 2000a0 - 200484: e3a0002d mov r0, #45 ; 0x2d - 200488: ebffff04 bl 2000a0 - 20048c: e3a0000d mov r0, #13 - 200490: ebffff02 bl 2000a0 - 200494: e3a0000a mov r0, #10 - 200498: ebffff00 bl 2000a0 - 20049c: e3a0000a mov r0, #10 - 2004a0: ebfffefe bl 2000a0 - 2004a4: e3a00902 mov r0, #32768 ; 0x8000 - 2004a8: ebfffee1 bl 200034 - 2004ac: e1a0000a mov r0, sl - 2004b0: e8bd47f0 pop {r4, r5, r6, r7, r8, r9, sl, lr} - 2004b4: e12fff1e bx lr - 2004b8: e1a00008 mov r0, r8 - 2004bc: ebffff1b bl 200130 - 2004c0: e3a04000 mov r4, #0 - 2004c4: eaffff8e b 200304 - 2004c8: e0293869 eor r3, r9, r9, ror #16 - 2004cc: e1a03423 lsr r3, r3, #8 - 2004d0: e3c33cff bic r3, r3, #65280 ; 0xff00 - 2004d4: e0239469 eor r9, r3, r9, ror #8 - 2004d8: e1a00007 mov r0, r7 - 2004dc: e0878008 add r8, r7, r8 - 2004e0: e1a01009 mov r1, r9 - 2004e4: ebfffec8 bl 20000c - 2004e8: e0898008 add r8, r9, r8 - 2004ec: e2877004 add r7, r7, #4 - 2004f0: e3a0400e mov r4, #14 - 2004f4: eaffff82 b 200304 - 2004f8: 12345678 eorsne r5, r4, #120, 12 ; 0x7800000 +002002a4 : + 2002a4: e92d4070 push {r4, r5, r6, lr} + 2002a8: e59f4054 ldr r4, [pc, #84] ; 200304 + 2002ac: e1a00004 mov r0, r4 + 2002b0: ebffff5b bl 200024 + 2002b4: e59f504c ldr r5, [pc, #76] ; 200308 + 2002b8: e3c0160e bic r1, r0, #14680064 ; 0xe00000 + 2002bc: e3811602 orr r1, r1, #2097152 ; 0x200000 + 2002c0: e1a00004 mov r0, r4 + 2002c4: ebffff50 bl 20000c + 2002c8: e1a00005 mov r0, r5 + 2002cc: ebffff54 bl 200024 + 2002d0: e3c0190e bic r1, r0, #229376 ; 0x38000 + 2002d4: e284401c add r4, r4, #28 + 2002d8: e1a00005 mov r0, r5 + 2002dc: e3811902 orr r1, r1, #32768 ; 0x8000 + 2002e0: ebffff49 bl 20000c + 2002e4: e1a00004 mov r0, r4 + 2002e8: e3a01902 mov r1, #32768 ; 0x8000 + 2002ec: ebffff46 bl 20000c + 2002f0: e1a00004 mov r0, r4 + 2002f4: e3a01008 mov r1, #8 + 2002f8: ebffff43 bl 20000c + 2002fc: e8bd4070 pop {r4, r5, r6, lr} + 200300: e12fff1e bx lr + 200304: 3f200010 svccc 0x00200010 + 200308: 3f20000c svccc 0x0020000c + +0020030c : + 20030c: e92d47f0 push {r4, r5, r6, r7, r8, r9, sl, lr} + 200310: e3a08000 mov r8, #0 + 200314: ebffffe2 bl 2002a4 + 200318: ebffff8b bl 20014c + 20031c: e59f0240 ldr r0, [pc, #576] ; 200564 + 200320: ebffff82 bl 200130 + 200324: ebffff40 bl 20002c + 200328: ebffff80 bl 200130 + 20032c: e3a00049 mov r0, #73 ; 0x49 + 200330: ebffff5a bl 2000a0 + 200334: e3a00048 mov r0, #72 ; 0x48 + 200338: ebffff58 bl 2000a0 + 20033c: e3a00045 mov r0, #69 ; 0x45 + 200340: ebffff56 bl 2000a0 + 200344: e3a00058 mov r0, #88 ; 0x58 + 200348: ebffff54 bl 2000a0 + 20034c: e3a0000d mov r0, #13 + 200350: ebffff52 bl 2000a0 + 200354: e3a0000a mov r0, #10 + 200358: e1a09008 mov r9, r8 + 20035c: e1a06008 mov r6, r8 + 200360: e1a05008 mov r5, r8 + 200364: e1a07008 mov r7, r8 + 200368: e1a04008 mov r4, r8 + 20036c: ebffff4b bl 2000a0 + 200370: ebffff37 bl 200054 + 200374: e350003a cmp r0, #58 ; 0x3a + 200378: 0a00002b beq 20042c + 20037c: e350000d cmp r0, #13 + 200380: 1350000a cmpne r0, #10 + 200384: 03a0a001 moveq sl, #1 + 200388: 13a0a000 movne sl, #0 + 20038c: 0a000029 beq 200438 + 200390: e3c03020 bic r3, r0, #32 + 200394: e3530047 cmp r3, #71 ; 0x47 + 200398: 0a000050 beq 2004e0 + 20039c: e2443001 sub r3, r4, #1 + 2003a0: e3530014 cmp r3, #20 + 2003a4: 979ff103 ldrls pc, [pc, r3, lsl #2] + 2003a8: eafffff0 b 200370 + 2003ac: 0020041c eoreq r0, r0, ip, lsl r4 + 2003b0: 0020041c eoreq r0, r0, ip, lsl r4 + 2003b4: 002004bc strhteq r0, [r0], -ip + 2003b8: 002004bc strhteq r0, [r0], -ip + 2003bc: 002004bc strhteq r0, [r0], -ip + 2003c0: 002004bc strhteq r0, [r0], -ip + 2003c4: 0020049c mlaeq r0, ip, r4, r0 + 2003c8: 00200464 eoreq r0, r0, r4, ror #8 + 2003cc: 00200440 eoreq r0, r0, r0, asr #8 + 2003d0: 00200440 eoreq r0, r0, r0, asr #8 + 2003d4: 00200440 eoreq r0, r0, r0, asr #8 + 2003d8: 00200440 eoreq r0, r0, r0, asr #8 + 2003dc: 00200434 eoreq r0, r0, r4, lsr r4 + 2003e0: 00200400 eoreq r0, r0, r0, lsl #8 + 2003e4: 00200400 eoreq r0, r0, r0, lsl #8 + 2003e8: 00200400 eoreq r0, r0, r0, lsl #8 + 2003ec: 00200400 eoreq r0, r0, r0, lsl #8 + 2003f0: 00200400 eoreq r0, r0, r0, lsl #8 + 2003f4: 00200400 eoreq r0, r0, r0, lsl #8 + 2003f8: 00200400 eoreq r0, r0, r0, lsl #8 + 2003fc: 00200400 eoreq r0, r0, r0, lsl #8 + 200400: e3500039 cmp r0, #57 ; 0x39 + 200404: 82400007 subhi r0, r0, #7 + 200408: e1a09209 lsl r9, r9, #4 + 20040c: e200000f and r0, r0, #15 + 200410: e3540015 cmp r4, #21 + 200414: e1809009 orr r9, r0, r9 + 200418: 0a000045 beq 200534 + 20041c: ebffff0c bl 200054 + 200420: e350003a cmp r0, #58 ; 0x3a + 200424: e2844001 add r4, r4, #1 + 200428: 1affffd3 bne 20037c + 20042c: e3a04001 mov r4, #1 + 200430: eaffffce b 200370 + 200434: e1a06206 lsl r6, r6, #4 + 200438: e3a04000 mov r4, #0 + 20043c: eaffffcb b 200370 + 200440: e3500039 cmp r0, #57 ; 0x39 + 200444: 82400007 subhi r0, r0, #7 + 200448: e1a06206 lsl r6, r6, #4 + 20044c: e200000f and r0, r0, #15 + 200450: e1806006 orr r6, r0, r6 + 200454: e1a06806 lsl r6, r6, #16 + 200458: e1a06826 lsr r6, r6, #16 + 20045c: e2844001 add r4, r4, #1 + 200460: eaffffc2 b 200370 + 200464: e3500039 cmp r0, #57 ; 0x39 + 200468: 82400007 subhi r0, r0, #7 + 20046c: e1a05205 lsl r5, r5, #4 + 200470: e200000f and r0, r0, #15 + 200474: e1805005 orr r5, r0, r5 + 200478: e20550ff and r5, r5, #255 ; 0xff + 20047c: e3550001 cmp r5, #1 + 200480: 0a000027 beq 200524 + 200484: 33a0400e movcc r4, #14 + 200488: 3affffb8 bcc 200370 + 20048c: e3550002 cmp r5, #2 + 200490: 03a04009 moveq r4, #9 + 200494: 13a04000 movne r4, #0 + 200498: eaffffb4 b 200370 + 20049c: e3500039 cmp r0, #57 ; 0x39 + 2004a0: 82400007 subhi r0, r0, #7 + 2004a4: e1a05205 lsl r5, r5, #4 + 2004a8: e200000f and r0, r0, #15 + 2004ac: e1805005 orr r5, r0, r5 + 2004b0: e20550ff and r5, r5, #255 ; 0xff + 2004b4: e3a04008 mov r4, #8 + 2004b8: eaffffac b 200370 + 2004bc: e3500039 cmp r0, #57 ; 0x39 + 2004c0: 82400007 subhi r0, r0, #7 + 2004c4: e1a07207 lsl r7, r7, #4 + 2004c8: e200000f and r0, r0, #15 + 2004cc: e1807007 orr r7, r0, r7 + 2004d0: e1a07807 lsl r7, r7, #16 + 2004d4: e1867827 orr r7, r6, r7, lsr #16 + 2004d8: e2844001 add r4, r4, #1 + 2004dc: eaffffa3 b 200370 + 2004e0: e3a0000d mov r0, #13 + 2004e4: ebfffeed bl 2000a0 + 2004e8: e3a0002d mov r0, #45 ; 0x2d + 2004ec: ebfffeeb bl 2000a0 + 2004f0: e3a0002d mov r0, #45 ; 0x2d + 2004f4: ebfffee9 bl 2000a0 + 2004f8: e3a0000d mov r0, #13 + 2004fc: ebfffee7 bl 2000a0 + 200500: e3a0000a mov r0, #10 + 200504: ebfffee5 bl 2000a0 + 200508: e3a0000a mov r0, #10 + 20050c: ebfffee3 bl 2000a0 + 200510: e3a00902 mov r0, #32768 ; 0x8000 + 200514: ebfffec6 bl 200034 + 200518: e1a0000a mov r0, sl + 20051c: e8bd47f0 pop {r4, r5, r6, r7, r8, r9, sl, lr} + 200520: e12fff1e bx lr + 200524: e1a00008 mov r0, r8 + 200528: ebffff00 bl 200130 + 20052c: e3a04000 mov r4, #0 + 200530: eaffff8e b 200370 + 200534: e0293869 eor r3, r9, r9, ror #16 + 200538: e1a03423 lsr r3, r3, #8 + 20053c: e3c33cff bic r3, r3, #65280 ; 0xff00 + 200540: e0239469 eor r9, r3, r9, ror #8 + 200544: e1a00007 mov r0, r7 + 200548: e0878008 add r8, r7, r8 + 20054c: e1a01009 mov r1, r9 + 200550: ebfffead bl 20000c + 200554: e0898008 add r8, r9, r8 + 200558: e2877004 add r7, r7, #4 + 20055c: e3a0400e mov r4, #14 + 200560: eaffff82 b 200370 + 200564: 12345678 eorsne r5, r4, #120, 12 ; 0x7800000 Disassembly of section .ARM.attributes: @@ -386,7 +415,7 @@ Disassembly of section .ARM.attributes: Disassembly of section .comment: 00000000 <.comment>: - 0: 3a434347 bcc 10d0d24 + 0: 3a434347 bcc 10d0d24 4: 4e472820 cdpmi 8, 4, cr2, cr7, cr0, {1} 8: 35202955 strcc r2, [r0, #-2389]! ; 0xfffff6ab c: 302e332e eorcc r3, lr, lr, lsr #6 diff --git a/boards/pi2/bootloader07/kernel7.img b/boards/pi2/HYP/bootloader07/kernel7.img similarity index 99% rename from boards/pi2/bootloader07/kernel7.img rename to boards/pi2/HYP/bootloader07/kernel7.img index c3edfb4..350b435 100755 Binary files a/boards/pi2/bootloader07/kernel7.img and b/boards/pi2/HYP/bootloader07/kernel7.img differ diff --git a/boards/pi2/bootloader07/loader b/boards/pi2/HYP/bootloader07/loader similarity index 100% rename from boards/pi2/bootloader07/loader rename to boards/pi2/HYP/bootloader07/loader diff --git a/boards/pi2/bootloader07/periph.c b/boards/pi2/HYP/bootloader07/periph.c similarity index 92% rename from boards/pi2/bootloader07/periph.c rename to boards/pi2/HYP/bootloader07/periph.c index 505881d..069d433 100644 --- a/boards/pi2/bootloader07/periph.c +++ b/boards/pi2/HYP/bootloader07/periph.c @@ -136,6 +136,28 @@ unsigned int timer_tick ( void ) return(GET32(ARM_TIMER_CNT)); } //------------------------------------------------------------------------- +void leds_off ( void ) +{ +#define GPFSEL3 0x3F20000C +#define GPFSEL4 0x3F200010 +#define GPSET1 0x3F200020 +#define GPCLR1 0x3F20002C + unsigned int ra; + + ra=GET32(GPFSEL4); + ra&=~(7<<21); + ra|=1<<21; + PUT32(GPFSEL4,ra); + + ra=GET32(GPFSEL3); + ra&=~(7<<15); + ra|=1<<15; + PUT32(GPFSEL3,ra); + + PUT32(GPCLR1,1<<(47-32)); + PUT32(GPCLR1,1<<(35-32)); +} +//------------------------------------------------------------------------- //------------------------------------------------------------------------- diff --git a/boards/pi2/HYP/bootloader07/periph.o b/boards/pi2/HYP/bootloader07/periph.o new file mode 100644 index 0000000..2aa7864 Binary files /dev/null and b/boards/pi2/HYP/bootloader07/periph.o differ diff --git a/boards/pi2/bootloader07/vectors.o b/boards/pi2/HYP/bootloader07/vectors.o similarity index 100% rename from boards/pi2/bootloader07/vectors.o rename to boards/pi2/HYP/bootloader07/vectors.o diff --git a/boards/pi2/bootloader07/vectors.s b/boards/pi2/HYP/bootloader07/vectors.s similarity index 100% rename from boards/pi2/bootloader07/vectors.s rename to boards/pi2/HYP/bootloader07/vectors.s diff --git a/boards/pi2/bootloader07/bootloader07.o b/boards/pi2/bootloader07/bootloader07.o deleted file mode 100644 index 56df2d6..0000000 Binary files a/boards/pi2/bootloader07/bootloader07.o and /dev/null differ diff --git a/boards/pi2/bootloader07/periph.o b/boards/pi2/bootloader07/periph.o deleted file mode 100644 index 842ffa4..0000000 Binary files a/boards/pi2/bootloader07/periph.o and /dev/null differ diff --git a/pitopi/README b/pitopi/README deleted file mode 100644 index ee687ee..0000000 --- a/pitopi/README +++ /dev/null @@ -1,294 +0,0 @@ - -What is a pit opi? It is actually pi to pi as in a Raspberry Pi running -Linux used as a host and a second Raspberry Pi used as a bare metal -platform. I will call one the Linux pi and the other the bare metal pi. - -If you look at the top level README there is talk of buying a $15 or -so usb to serial (usb to uart) and some wires for connecting your host -pc to your bare metal pi for bare metal development, using the -bootloader, etc. Well that puts you into a problem of where do I get -the tools, I need a toolchain and I need a terminal program with xmodem -(to use one of my bootloaders) as well as the usb to uart thing. Well -for a little more you can get another Raspberry Pi if you dont already -have a second one. You can get Linux up and running on that Linux pi -and it has a working arm gnu toolchain compiler as part of the distro. -With a little more work (mostly just downloading a few things) and -three wires (still need the wires)(maybe two, depends on your comfort -level) you gain a development environment where the tools are trivial -to come by, and a dumb terminal program with xmodem. - -I am doing this from memory, so hopefully I cover all the steps - -I downloaded Raspian wheezy - -http://www.raspberrypi.org/downloads - -And put it on an sd card - -http://elinux.org/RPi_Easy_SD_Card_Setup - -Plugged in a monitor, keyboard, mouse, and network and the powered -that Linux pi from a computer. You want to power both Raspberry Pis -from the same power source for example a powered usb hub or the same -computer. In theory this way you dont put a large delta between -the ground planes on the two boards which could fry something. The -odds of this are quite low, but if you happened to get lucky and -cross phases, that is about like taking bare wires from wall power and -touching those wires on metal parts around the board, some smoke will -be released from something. So the Linux pi boots, I get this text -menu thing that asks things like do you want ssh enabled do you want -to push the filesystem to fill the sd card, stuff like that. After this -first bring up I actually dont use the keyboard, mouse, and monitor on -the Linux pi I used ssh and/or vnc, personal preference, not going to -explain the steps, I assume you are using the Linux pi as a computer -with keyboard, mouse and monitor. - -The Linux pi reboots with these settings and I am in I have a Linux -based computer. - -Next I made sure I had a few tools: - -apt-get install build-essential -apt-get install minicom lrzsz - -You have to be a programmer to be doing or learning bare metal -programming so I dont need to tell you about text editors you have -one or ones you like and know how to use it or them. - -Now the uart on the Linux pi is by default enabled to be used as the -console, it spits out messages on boot, and provides a login prompt. -Well I want to use it as a generic uart/serial port and not have it -used for that purpose so looking at this page - -http://elinux.org/RPi_Serial_Connection - -I backed up inittab - -cd /etc -sudo cp inittab inittab.orig -Now edit inittab (using sudo if you are not logged in as root) -comment out the T0:23... line they mention which has the ttyAMA0 thing -in it, and save - -backup cmdline.txt - -cd /boot -sudo cp cmdline.txt cmdline.orig -Now edit cmdline.orig I think there were two places where ttyAMA0 were -called out. DONT KILL THE WHOLE LINE, just remove the two chunks -of non-whitespace that include AMA0. -save. - -Now reboot - -sudo reboot - -As mentioned - -cat /proc/cmdline - -and make sure there is no reference to AMA0 - -and then - -ps aux | grep ttyAMA0 - -You should only see the ps command in the output and no other commands - -Once you have reached this point. Glance at the top level README for -this repo. The corner of the board with two rows of pins, about 26 or -so pins total. The outer corner pin is pin 2 starting at that pin and -counting toward the rca and audio plugs it goes by 2s, 2,4,6,8,10. - -pin 6 is ground -pin 8 is TX -pin 10 is RX - -For now take one of your wires and connect pin 8 to pin 10 on the Linux -pi (we are doing a test, we will connect between the boards later this -is connecting two pins on the same board). - -Open a command line/terminal on the Linux pi - -We need to setup minicom one time before we use it (must use sudo or -run as root) - -sudo minicom -s - -Now the user interface to minicom is a bit dated and likely very strange -in this point and click or touch screen world. - -Using the arrow keys down arrow to Serial port setup and hit enter. - -Along the left side is A B C D E F G, press the A key (does not have -to be capital just press a one time) the cursor moves to the end -of the A line, the Serial Device. Edit that line using backspace or -delete and you want it to have - -/dev/ttyAMA0 - -Then press enter one time - -Now press F one time, Hardware Flow Control should change from Yes to NO - -Now press enter one time, this takes you back to the top menu - -Down arrow to Modem and Dialing and press enter one time - -Press A one time - -Press space and I think that will erase the line and put a space then -backspace to have nothing on that line (faster than a bunch of backspaces -or deletes to erase the line) - -Press enter one time - -Press K one time - -same deal we want to delete that line, then press enter one time - -Press enter one more time to go to the top level menu - -(you can re-enter these submenus as needed to make these changes and can -make these changes in any order) - -Down arrow twice to Save setup as dfl (default). - -And then down arrow and select Exit from Minicom. For whatever reason -to disable hardware flow control you have to exit minicom then come -back for it to actually work. At least on x86 based pcs that is the case. - -So minicom is now ready to use, if all of the above went well you wont -need to do that again. With a jumper wire connecting pin 8 to pin 10 -run minicom (without any options) - -sudo minicom - -Whatever you type you should be able to see on the terminal. If this -doesnt work you cannot continue. What is going in is the character -is going out the uart (TX) and through the wire then that is looped -back into the input (RX) and we can see it. A return here is simply -a carriage return without a line feed so when you hit enter it only -goes to the beginning of the same line, it does not advance a line -like you are used to. Unplug one end of the wire and the echoing of -characters should no longer work. Replace the wire and it should work -again. I repeat if this doesnt work for you you cannot continue... - -Now very carefully not to short other parts of the boards together, you -might want to power off the Linux pi safely and have both of them turned -off. Depends on your comfort level. Connect pin 6 on one board to -pin 6 on the other board. Connect pin 8 on one board to pin 10 on the -other and vice versa so both boards have their pin 8 connected to pin 10 -on the other board. - -Get my bootloader (bootloader05 for example) and follow the instructions -there or in the top level README for putting the files you need including -that kernel.img file on A SECOND SD CARD, NOT ON THE LINUX PI SD CARD, -THIS GOES ON THE BARE METAL PI SD CARD. You need two sd cards to go -with two Raspberry Pis. - -Power on the Linux pi, let it come up completely, open a terminal -then run minicom. A trick to save yourself time is to run minicom -wherever you have the .bin files you want to load to the bare metal pi -this way you dont have to navigate through the directory structure using -a confusing and painful text based thing in minicom. The other -alternative is to run minicom in some simple place like your home -directory then when you build a .bin file to try, copy it to your home -directory (putting the .bin file in the same place as minicom was launched) - -sudo minicom - -Now power on the bare metal pi. Sometimes I have to try more than once -to get it to come up. DexOS has a config.txt solution for this I simply -just try again. - -Once you see some characters then see it every so many seconds send -something that looks kind of like garbage, you are ready to download -a program. - -Grab blinker01 or something simple like that. Edit the makefile -and replace $(ARMGNU)- with nothing - -Such that lines like these: - -blinker01.elf : memmap vectors.o blinker01.o - $(ARMGNU)-ld vectors.o blinker01.o -T memmap -o blinker01.elf - $(ARMGNU)-objdump -D blinker01.elf > blinker01.list - -Change to this: - -blinker01.elf : memmap vectors.o blinker01.o - ld vectors.o blinker01.o -T memmap -o blinker01.elf - objdump -D blinker01.elf > blinker01.list - -Save the makefile and run make from a Linux pi command line. - -If you are actually on an arm based Linux (which the linux pi is) it should -build just fine. If you try this on your x86 it should fail the asm code -in particular will fail to assemble, game over. - -So now you have a .bin file to try, as mentioned above you want it -wherever you launched minicom to save yourself some trouble. I am -going to assume the filename in question is hello.bin - -Back to the minicom window, it should be getting those weird characters -once every so many seconds. - -Press Ctrl-A then press S -this should pop up one of those minicom menus with a few upload choices, - -down arrow twice to xmodem and hit enter one time - -Now you have the file selection window of pain. If you took my advice -the just hit enter one time It should pop up another thing that says -No file selected - enter filename: -Now type in -hello.bin -and press enter one time - -it should then do the download to the bare metal pi, and the -program should load and run on the bare metal pi. - -When you want to run another program, pull the usb cable for the -bare metal pi (LEAVE THE LINUX PI POWERED). and plug it back in, I find -the fat plug on the computer side is easier to pull and replug than -the micro-b connector on the rasberry pi itself, YMMV. - -Note that once you have typed in the filename one time in minicom, -so long as you dont exit minicom it will be there the next time you -run, if you use the same filename for a while the download key sequence -becomes - -ctrl-a -s -down arrow -down arrow -enter -enter -enter - -Modify your program -compile -copy to whever -mouse over to minicom -power cycle the bare metal pi -do the key sequence -repeat - -To exit minicom: - -Ctrl-A then Q and press enter to select the default of exiting without -reset. - -If your bare metal pi program spits out stuff (the uart## examples) -and the text goes off the right side of the minicom window then -use Ctrl-a then w to swich to wrap mode, and the text will wrap so you -can see all of it. - -Minicom may be clunky but like vi it is available for so many Linux/unix -platforms that you can rely on it as a tool in your toolbox, you may -not like it but it is always there. Like hyperterm used to be for -Windows, but geez, they screwed that up didnt they? Like minicom -hyperterm was not the best tool, but for a good many years/versions it -was always there. -