Problems running screen04 example
petemoore opened this issue · comments
Hi Mauri,
First of all, so many thanks for making this repository public, it is so nice to have this information shared since the original baking pi repository is no longer maintained.
I tried running screen04
example, and experienced something quite unusual, so I made this video to demonstrate the problem (apologies the video quality isn't great - the clarity improves as the video progresses).
These are the files, and their MD5 checksums (note, I serve them over TFTP and have no SD card installed):
pi@raspberrypi:/tftpboot $ md5sum *
8caa083dfa5897d32eb9b8b06dc127a9 bootcode.bin
099f84eb105c14d3dd366a6bb6a35381 kernel8-32.img
7d9f51fc5e0779729fd21b849d3743a1 start.elf
There is no config.txt
file, as you see.
I've tried older and newer firmware, but get the same results. The firmware (bootcode.bin
and start.elf
) from the video is from this commit but I also tried with much older firmware too, with the same results.
I generated kernel8-32.img
simply running LESSON=screen04 make
.
Many thanks for any help you can offer, and again many thanks for publishing your repository. 👍
Best wishes, Pete
In case it is useful, here is the disassembly too:
pi@raspberrypi:~/git/baking-pi $ cat kernel.list
build/output.elf: file format elf32-littlearm
Disassembly of section .init:
00008000 <_start>:
8000: e3a0d902 mov sp, #32768 ; 0x8000
8004: ea000138 b 84ec <_main>
Disassembly of section .text:
00008008 <GetMailboxBase>:
8008: e59f0054 ldr r0, [pc, #84] ; 8064 <right_mail$+0x24>
800c: e1a0f00e mov pc, lr
00008010 <MailboxWrite>:
8010: e52de004 push {lr} ; (str lr, [sp, #-4]!)
8014: e1a02000 mov r2, r0
8018: ebfffffa bl 8008 <GetMailboxBase>
0000801c <wait_write$>:
801c: e5903038 ldr r3, [r0, #56] ; 0x38
8020: e3130102 tst r3, #-2147483648 ; 0x80000000
8024: 1afffffc bne 801c <wait_write$>
8028: e0822001 add r2, r2, r1
802c: e5802020 str r2, [r0, #32]
8030: e49df004 pop {pc} ; (ldr pc, [sp], #4)
00008034 <MailboxRead>:
8034: e52de004 push {lr} ; (str lr, [sp, #-4]!)
8038: e1a01000 mov r1, r0
803c: ebfffff1 bl 8008 <GetMailboxBase>
00008040 <right_mail$>:
8040: e5902018 ldr r2, [r0, #24]
8044: e3120101 tst r2, #1073741824 ; 0x40000000
8048: 1afffffc bne 8040 <right_mail$>
804c: e5902000 ldr r2, [r0]
8050: e202300f and r3, r2, #15
8054: e1330001 teq r3, r1
8058: 1afffff8 bne 8040 <right_mail$>
805c: e3c2000f bic r0, r2, #15
8060: e49df004 pop {pc} ; (ldr pc, [sp], #4)
8064: 3f00b880 .word 0x3f00b880
00008068 <InitializeFrameBuffer>:
8068: e3500a01 cmp r0, #4096 ; 0x1000
806c: 93510a01 cmpls r1, #4096 ; 0x1000
8070: 93520020 cmpls r2, #32
8074: 83a00000 movhi r0, #0
8078: 81a0f00e movhi pc, lr
807c: e92d4010 push {r4, lr}
8080: e59f4060 ldr r4, [pc, #96] ; 80e8 <FrameBufferWrite+0x1c>
8084: e5840000 str r0, [r4]
8088: e5841004 str r1, [r4, #4]
808c: e5840008 str r0, [r4, #8]
8090: e584100c str r1, [r4, #12]
8094: e5842014 str r2, [r4, #20]
8098: e3a01000 mov r1, #0
809c: e5841010 str r1, [r4, #16]
80a0: e5841018 str r1, [r4, #24]
80a4: e584101c str r1, [r4, #28]
80a8: e5841020 str r1, [r4, #32]
80ac: e5841024 str r1, [r4, #36] ; 0x24
80b0: e1a00004 mov r0, r4
80b4: eb000004 bl 80cc <FrameBufferWrite>
80b8: e3300000 teq r0, #0
80bc: 13a00000 movne r0, #0
80c0: 18bd8010 popne {r4, pc}
80c4: e1a00004 mov r0, r4
80c8: e8bd8010 pop {r4, pc}
000080cc <FrameBufferWrite>:
80cc: e52de004 push {lr} ; (str lr, [sp, #-4]!)
80d0: e3800103 orr r0, r0, #-1073741824 ; 0xc0000000
80d4: e3a01001 mov r1, #1
80d8: ebffffcc bl 8010 <MailboxWrite>
80dc: e3a00001 mov r0, #1
80e0: ebffffd3 bl 8034 <MailboxRead>
80e4: e49df004 pop {pc} ; (ldr pc, [sp], #4)
80e8: 00008670 .word 0x00008670
000080ec <ReverseString>:
80ec: e0811000 add r1, r1, r0
80f0: e2411001 sub r1, r1, #1
000080f4 <revLoop$>:
80f4: e1510000 cmp r1, r0
80f8: 91a0f00e movls pc, lr
80fc: e5d02000 ldrb r2, [r0]
8100: e5d13000 ldrb r3, [r1]
8104: e5c03000 strb r3, [r0]
8108: e5c12000 strb r2, [r1]
810c: e2800001 add r0, r0, #1
8110: e2411001 sub r1, r1, #1
8114: eafffff6 b 80f4 <revLoop$>
00008118 <UnsignedString>:
8118: e92d40f0 push {r4, r5, r6, r7, lr}
811c: e1a05001 mov r5, r1
8120: e1a06002 mov r6, r2
8124: e3a07000 mov r7, #0
00008128 <charLoop$>:
8128: e1a01006 mov r1, r6
812c: eb0000dc bl 84a4 <DivideU32>
8130: e3510009 cmp r1, #9
8134: 92811030 addls r1, r1, #48 ; 0x30
8138: 82811057 addhi r1, r1, #87 ; 0x57
813c: e3350000 teq r5, #0
8140: 17c51007 strbne r1, [r5, r7]
8144: e2877001 add r7, r7, #1
8148: e3300000 teq r0, #0
814c: 1afffff5 bne 8128 <charLoop$>
8150: e3350000 teq r5, #0
8154: 11a00005 movne r0, r5
8158: 11a01007 movne r1, r7
815c: 1bffffe2 blne 80ec <ReverseString>
8160: e1a00007 mov r0, r7
8164: e8bd80f0 pop {r4, r5, r6, r7, pc}
00008168 <SignedString>:
8168: e3500000 cmp r0, #0
816c: aaffffe9 bge 8118 <UnsignedString>
8170: e2600000 rsb r0, r0, #0
8174: e3310000 teq r1, #0
8178: 13a0302d movne r3, #45 ; 0x2d
817c: 15c13000 strbne r3, [r1]
8180: 12811001 addne r1, r1, #1
8184: e52de004 push {lr} ; (str lr, [sp, #-4]!)
8188: ebffffe2 bl 8118 <UnsignedString>
818c: e2800001 add r0, r0, #1
8190: e49df004 pop {pc} ; (ldr pc, [sp], #4)
00008194 <FormatString>:
8194: e92d43f0 push {r4, r5, r6, r7, r8, r9, lr}
8198: e1a04000 mov r4, r0
819c: e1a05001 mov r5, r1
81a0: e1a06002 mov r6, r2
81a4: e1a07003 mov r7, r3
81a8: e28d801c add r8, sp, #28
81ac: e3a09000 mov r9, #0
000081b0 <formatLoop$>:
81b0: e2555001 subs r5, r5, #1
81b4: b1a00009 movlt r0, r9
81b8: b8bd83f0 poplt {r4, r5, r6, r7, r8, r9, pc}
81bc: e5d40000 ldrb r0, [r4]
81c0: e2844001 add r4, r4, #1
81c4: e3300025 teq r0, #37 ; 0x25
81c8: 0a000004 beq 81e0 <formatArg$>
000081cc <formatChar$>:
81cc: e3360000 teq r6, #0
81d0: 15c60000 strbne r0, [r6]
81d4: 12866001 addne r6, r6, #1
81d8: e2899001 add r9, r9, #1
81dc: eafffff3 b 81b0 <formatLoop$>
000081e0 <formatArg$>:
81e0: e2555001 subs r5, r5, #1
81e4: b1a00009 movlt r0, r9
81e8: b8bd83f0 poplt {r4, r5, r6, r7, r8, r9, pc}
81ec: e5d40000 ldrb r0, [r4]
81f0: e2844001 add r4, r4, #1
81f4: e3300025 teq r0, #37 ; 0x25
81f8: 0afffff3 beq 81cc <formatChar$>
81fc: e3300063 teq r0, #99 ; 0x63
8200: 01a00007 moveq r0, r7
8204: 05987000 ldreq r7, [r8]
8208: 02888004 addeq r8, r8, #4
820c: 0affffee beq 81cc <formatChar$>
8210: e3300073 teq r0, #115 ; 0x73
8214: 0a000007 beq 8238 <formatString$>
8218: e3300064 teq r0, #100 ; 0x64
821c: 0a000010 beq 8264 <formatSigned$>
8220: e3300075 teq r0, #117 ; 0x75
8224: 13300078 teqne r0, #120 ; 0x78
8228: 13300062 teqne r0, #98 ; 0x62
822c: 1330006f teqne r0, #111 ; 0x6f
8230: 0a000015 beq 828c <formatUnsigned$>
8234: eaffffdd b 81b0 <formatLoop$>
00008238 <formatString$>:
8238: e5d70000 ldrb r0, [r7]
823c: e3300030 teq r0, #48 ; 0x30
8240: 05987000 ldreq r7, [r8]
8244: 02888004 addeq r8, r8, #4
8248: 0affffd8 beq 81b0 <formatLoop$>
824c: e2899001 add r9, r9, #1
8250: e3360000 teq r6, #0
8254: 15c60000 strbne r0, [r6]
8258: 12866001 addne r6, r6, #1
825c: e2877001 add r7, r7, #1
8260: eafffff4 b 8238 <formatString$>
00008264 <formatSigned$>:
8264: e1a00007 mov r0, r7
8268: e5987000 ldr r7, [r8]
826c: e2888004 add r8, r8, #4
8270: e1a01006 mov r1, r6
8274: e3a0200a mov r2, #10
8278: ebffffba bl 8168 <SignedString>
827c: e3360000 teq r6, #0
8280: 10866000 addne r6, r6, r0
8284: e0899000 add r9, r9, r0
8288: eaffffc8 b 81b0 <formatLoop$>
0000828c <formatUnsigned$>:
828c: e3300075 teq r0, #117 ; 0x75
8290: 03a0200a moveq r2, #10
8294: e3300078 teq r0, #120 ; 0x78
8298: 03a02010 moveq r2, #16
829c: e3300062 teq r0, #98 ; 0x62
82a0: 03a02002 moveq r2, #2
82a4: e330006f teq r0, #111 ; 0x6f
82a8: 03a02008 moveq r2, #8
82ac: e1a00007 mov r0, r7
82b0: e5987000 ldr r7, [r8]
82b4: e2888004 add r8, r8, #4
82b8: e1a01006 mov r1, r6
82bc: ebffff95 bl 8118 <UnsignedString>
82c0: e3360000 teq r6, #0
82c4: 10866000 addne r6, r6, r0
82c8: e0899000 add r9, r9, r0
82cc: eaffffb7 b 81b0 <formatLoop$>
000082d0 <DrawPixel>:
82d0: e59f21c0 ldr r2, [pc, #448] ; 8498 <SetGraphicsAddress+0xc>
82d4: e5922000 ldr r2, [r2]
82d8: e5923004 ldr r3, [r2, #4]
82dc: e2433001 sub r3, r3, #1
82e0: e1510003 cmp r1, r3
82e4: 81a0f00e movhi pc, lr
82e8: e5923000 ldr r3, [r2]
82ec: e2433001 sub r3, r3, #1
82f0: e1500003 cmp r0, r3
82f4: 81a0f00e movhi pc, lr
82f8: e5922020 ldr r2, [r2, #32]
82fc: e3c22103 bic r2, r2, #-1073741824 ; 0xc0000000
8300: e2833001 add r3, r3, #1
8304: e0200391 mla r0, r1, r3, r0
8308: e0822080 add r2, r2, r0, lsl #1
830c: e59f3188 ldr r3, [pc, #392] ; 849c <SetGraphicsAddress+0x10>
8310: e1d330b0 ldrh r3, [r3]
8314: e1c230b0 strh r3, [r2]
8318: e1a0f00e mov pc, lr
0000831c <DrawLine>:
831c: e92d5ff0 push {r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
8320: e1a09000 mov r9, r0
8324: e1a0a002 mov sl, r2
8328: e1a0b001 mov fp, r1
832c: e1a0c003 mov ip, r3
8330: e159000a cmp r9, sl
8334: c049400a subgt r4, r9, sl
8338: c3e06000 mvngt r6, #0
833c: d04a4009 suble r4, sl, r9
8340: d3a06001 movle r6, #1
8344: e15b000c cmp fp, ip
8348: c04c500b subgt r5, ip, fp
834c: c3e07000 mvngt r7, #0
8350: d04b500c suble r5, fp, ip
8354: d3a07001 movle r7, #1
8358: e0848005 add r8, r4, r5
835c: e08aa006 add sl, sl, r6
8360: e08cc007 add ip, ip, r7
00008364 <pixelLoop$>:
8364: e139000a teq r9, sl
8368: 113b000c teqne fp, ip
836c: 08bd9ff0 popeq {r4, r5, r6, r7, r8, r9, sl, fp, ip, pc}
8370: e1a00009 mov r0, r9
8374: e1a0100b mov r1, fp
8378: ebffffd4 bl 82d0 <DrawPixel>
837c: e1550088 cmp r5, r8, lsl #1
8380: d0888005 addle r8, r8, r5
8384: d0899006 addle r9, r9, r6
8388: e1540088 cmp r4, r8, lsl #1
838c: a0888004 addge r8, r8, r4
8390: a08bb007 addge fp, fp, r7
8394: eafffff2 b 8364 <pixelLoop$>
00008398 <DrawCharacter>:
8398: e350007f cmp r0, #127 ; 0x7f
839c: 83a00000 movhi r0, #0
83a0: 81a0f00e movhi pc, lr
83a4: e92d41f0 push {r4, r5, r6, r7, r8, lr}
83a8: e1a04001 mov r4, r1
83ac: e1a05002 mov r5, r2
83b0: e59f60e8 ldr r6, [pc, #232] ; 84a0 <SetGraphicsAddress+0x14>
83b4: e0866200 add r6, r6, r0, lsl #4
000083b8 <lineLoop$>:
83b8: e5d67000 ldrb r7, [r6]
83bc: e3a08008 mov r8, #8
000083c0 <charPixelLoop$>:
83c0: e2588001 subs r8, r8, #1
83c4: ba000007 blt 83e8 <charPixelLoopEnd$>
83c8: e1a07087 lsl r7, r7, #1
83cc: e3170c01 tst r7, #256 ; 0x100
83d0: 0afffffa beq 83c0 <charPixelLoop$>
83d4: e0840008 add r0, r4, r8
83d8: e1a01005 mov r1, r5
83dc: ebffffbb bl 82d0 <DrawPixel>
83e0: e3380000 teq r8, #0
83e4: 1afffff5 bne 83c0 <charPixelLoop$>
000083e8 <charPixelLoopEnd$>:
83e8: e2855001 add r5, r5, #1
83ec: e2866001 add r6, r6, #1
83f0: e316000f tst r6, #15
83f4: 1affffef bne 83b8 <lineLoop$>
83f8: e3a00008 mov r0, #8
83fc: e3a01010 mov r1, #16
8400: e8bd81f0 pop {r4, r5, r6, r7, r8, pc}
00008404 <DrawString>:
8404: e92d43f0 push {r4, r5, r6, r7, r8, r9, lr}
8408: e1a07000 mov r7, r0
840c: e1a04002 mov r4, r2
8410: e1a06004 mov r6, r4
8414: e1a05003 mov r5, r3
8418: e1a08001 mov r8, r1
0000841c <stringLoop$>:
841c: e2588001 subs r8, r8, #1
8420: ba000013 blt 8474 <stringLoopEnd$>
8424: e5d79000 ldrb r9, [r7]
8428: e2877001 add r7, r7, #1
842c: e1a00009 mov r0, r9
8430: e1a01004 mov r1, r4
8434: e1a02005 mov r2, r5
8438: ebffffd6 bl 8398 <DrawCharacter>
843c: e339000a teq r9, #10
8440: 01a04006 moveq r4, r6
8444: 00855001 addeq r5, r5, r1
8448: 0afffff3 beq 841c <stringLoop$>
844c: e3390009 teq r9, #9
8450: 10844000 addne r4, r4, r0
8454: 1afffff0 bne 841c <stringLoop$>
8458: e0800100 add r0, r0, r0, lsl #2
845c: e1a01006 mov r1, r6
00008460 <stringLoopTab$>:
8460: e0811000 add r1, r1, r0
8464: e1540001 cmp r4, r1
8468: aafffffc bge 8460 <stringLoopTab$>
846c: e1a04001 mov r4, r1
8470: eaffffe9 b 841c <stringLoop$>
00008474 <stringLoopEnd$>:
8474: e8bd83f0 pop {r4, r5, r6, r7, r8, r9, pc}
00008478 <SetForeColor>:
8478: e3500801 cmp r0, #65536 ; 0x10000
847c: 21a0f00e movcs pc, lr
8480: e59f1014 ldr r1, [pc, #20] ; 849c <SetGraphicsAddress+0x10>
8484: e1c100b0 strh r0, [r1]
8488: e1a0f00e mov pc, lr
0000848c <SetGraphicsAddress>:
848c: e59f1004 ldr r1, [pc, #4] ; 8498 <SetGraphicsAddress+0xc>
8490: e5810000 str r0, [r1]
8494: e1a0f00e mov pc, lr
8498: 000086a4 .word 0x000086a4
849c: 000086a0 .word 0x000086a0
84a0: 000086b0 .word 0x000086b0
000084a4 <DivideU32>:
84a4: e16f2f11 clz r2, r1
84a8: e16f3f10 clz r3, r0
84ac: e0522003 subs r2, r2, r3
84b0: e1a03211 lsl r3, r1, r2
84b4: e1a01000 mov r1, r0
84b8: e3a00000 mov r0, #0
84bc: ba000009 blt 84e8 <divideU32Return$>
000084c0 <divideU32Loop$>:
84c0: e1510003 cmp r1, r3
84c4: ba000003 blt 84d8 <divideU32LoopContinue$>
84c8: e2800001 add r0, r0, #1
84cc: e0511003 subs r1, r1, r3
84d0: 01a00210 lsleq r0, r0, r2
84d4: 0a000003 beq 84e8 <divideU32Return$>
000084d8 <divideU32LoopContinue$>:
84d8: e2522001 subs r2, r2, #1
84dc: a1a030a3 lsrge r3, r3, #1
84e0: a1a00080 lslge r0, r0, #1
84e4: aafffff5 bge 84c0 <divideU32Loop$>
000084e8 <divideU32Return$>:
84e8: e1a0f00e mov pc, lr
000084ec <_main>:
84ec: e3a00b01 mov r0, #1024 ; 0x400
84f0: e3a01c03 mov r1, #768 ; 0x300
84f4: e3a02010 mov r2, #16
84f8: ebfffeda bl 8068 <InitializeFrameBuffer>
84fc: e3300000 teq r0, #0
8500: 0a00001b beq 8574 <error>
8504: ebffffe0 bl 848c <SetGraphicsAddress>
8508: e3a04000 mov r4, #0
0000850c <loop$>:
850c: e59f006c ldr r0, [pc, #108] ; 8580 <loopErr$+0x4>
8510: e59f106c ldr r1, [pc, #108] ; 8584 <loopErr$+0x8>
8514: e59f2068 ldr r2, [pc, #104] ; 8584 <loopErr$+0x8>
8518: e1a03224 lsr r3, r4, #4
851c: e52d3004 push {r3} ; (str r3, [sp, #-4]!)
8520: e52d3004 push {r3} ; (str r3, [sp, #-4]!)
8524: e52d3004 push {r3} ; (str r3, [sp, #-4]!)
8528: e52d3004 push {r3} ; (str r3, [sp, #-4]!)
852c: ebffff18 bl 8194 <FormatString>
8530: e28dd010 add sp, sp, #16
8534: e1a01000 mov r1, r0
8538: e59f0044 ldr r0, [pc, #68] ; 8584 <loopErr$+0x8>
853c: e3a02000 mov r2, #0
8540: e1a03004 mov r3, r4
8544: e3530e2f cmp r3, #752 ; 0x2f0
8548: 82433c03 subhi r3, r3, #768 ; 0x300
854c: 82822c01 addhi r2, r2, #256 ; 0x100
8550: e3530e2f cmp r3, #752 ; 0x2f0
8554: 82433c03 subhi r3, r3, #768 ; 0x300
8558: 82822c01 addhi r2, r2, #256 ; 0x100
855c: e3530e2f cmp r3, #752 ; 0x2f0
8560: 82433c03 subhi r3, r3, #768 ; 0x300
8564: 82822c01 addhi r2, r2, #256 ; 0x100
8568: ebffffa5 bl 8404 <DrawString>
856c: e2844010 add r4, r4, #16
8570: eaffffe5 b 850c <loop$>
00008574 <error>:
8574: e3a00001 mov r0, #1
8578: eb00000a bl 85a8 <SetACTLedState>
0000857c <loopErr$>:
857c: eafffffe b 857c <loopErr$>
8580: 00008eb0 .word 0x00008eb0
8584: 00008ec5 .word 0x00008ec5
00008588 <delay>:
8588: e3a0143f mov r1, #1056964608 ; 0x3f000000
858c: e3811a03 orr r1, r1, #12288 ; 0x3000
8590: e5912004 ldr r2, [r1, #4]
00008594 <delay1$>:
8594: e5913004 ldr r3, [r1, #4]
8598: e0433002 sub r3, r3, r2
859c: e1530000 cmp r3, r0
85a0: bafffffb blt 8594 <delay1$>
85a4: e1a0f00e mov pc, lr
000085a8 <SetACTLedState>:
85a8: e52de004 push {lr} ; (str lr, [sp, #-4]!)
85ac: e1a01000 mov r1, r0
85b0: e59f0028 ldr r0, [pc, #40] ; 85e0 <SetACTLedState+0x38>
85b4: e3a02000 mov r2, #0
85b8: e5802004 str r2, [r0, #4]
85bc: e5802010 str r2, [r0, #16]
85c0: e3a02082 mov r2, #130 ; 0x82
85c4: e5802014 str r2, [r0, #20]
85c8: e5801018 str r1, [r0, #24]
85cc: e3a01008 mov r1, #8
85d0: ebfffe8e bl 8010 <MailboxWrite>
85d4: e3a00008 mov r0, #8
85d8: ebfffe95 bl 8034 <MailboxRead>
85dc: e49df004 pop {pc} ; (ldr pc, [sp], #4)
85e0: 00008ed0 .word 0x00008ed0
000085e4 <Random>:
85e4: e3a01cef mov r1, #61184 ; 0xef00
85e8: e0010190 mul r1, r0, r1
85ec: e0010190 mul r1, r0, r1
85f0: e0811000 add r1, r1, r0
85f4: e2810049 add r0, r1, #73 ; 0x49
85f8: e1a0f00e mov pc, lr
000085fc <FindTag>:
85fc: e2400001 sub r0, r0, #1
8600: e3500008 cmp r0, #8
8604: 83a00000 movhi r0, #0
8608: 81a0f00e movhi pc, lr
860c: e59f1054 ldr r1, [pc, #84] ; 8668 <tagLoop$+0x2c>
00008610 <tagRet$>:
8610: e0812100 add r2, r1, r0, lsl #2
8614: e5922000 ldr r2, [r2]
8618: e3320000 teq r2, #0
861c: 11a00002 movne r0, r2
8620: 11a0f00e movne pc, lr
8624: e5912000 ldr r2, [r1]
8628: e3320000 teq r2, #0
862c: 13a00000 movne r0, #0
8630: 11a0f00e movne pc, lr
8634: e3a02c01 mov r2, #256 ; 0x100
8638: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
0000863c <tagLoop$>:
863c: e1d230b4 ldrh r3, [r2, #4]
8640: e2533001 subs r3, r3, #1
8644: b49d4004 poplt {r4} ; (ldrlt r4, [sp], #4)
8648: bafffff0 blt 8610 <tagRet$>
864c: e0813103 add r3, r1, r3, lsl #2
8650: e5934000 ldr r4, [r3]
8654: e3340000 teq r4, #0
8658: 05832000 streq r2, [r3]
865c: e5923000 ldr r3, [r2]
8660: e0822103 add r2, r2, r3, lsl #2
8664: eafffff4 b 863c <tagLoop$>
8668: 00008ef4 .word 0x00008ef4
I think I see the issue - it looks like the code is using mailbox channel 1 to communicate with the framebuffer, which is deprecated.
I think this needs to use mailbox channel 8 instead. There is some information about this here and here.
Let me know if you are actively maintaining this repo, if so I'm happy to invest some time to fix it and make a Pull Request, but want to be sure you're actively accepting pull requests first! :-)
Hi, sorry for the delay. Feel free to open a pull request if you can
Unfortunatelly this project no longer works with the newer firmware updates. Please refer to the README in order to use a commit that works.