Comments (5)
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
from baking-pi.
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.
from baking-pi.
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! :-)
from baking-pi.
Hi, sorry for the delay. Feel free to open a pull request if you can
from baking-pi.
Unfortunatelly this project no longer works with the newer firmware updates. Please refer to the README in order to use a commit that works.
from baking-pi.
Related Issues (2)
- Wrong usage of mailboxes HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from baking-pi.