From 36f6411dd2d249f09d33e26e808f48504e3be1b6 Mon Sep 17 00:00:00 2001 From: Schrom01 Date: Fri, 28 Oct 2022 10:46:13 +0200 Subject: [PATCH] solved Task 3.2 --- bcd/app/main.s | 42 ++++++- bcd/bcd.uvguix.roman | 14 +-- bcd/bcd.uvoptx | 19 ++- bcd/build/bcd_Target 1.dep | 2 +- bcd/build/main.lst | 230 +++++++++++++++++++++++++----------- bcd/build/main.o | Bin 2296 -> 2412 bytes bcd/build/mul.axf | Bin 46232 -> 46340 bytes bcd/build/mul.build_log.htm | 2 +- bcd/build/mul.htm | 109 +++++++++-------- bcd/build/mul.map | 31 ++--- 10 files changed, 294 insertions(+), 155 deletions(-) diff --git a/bcd/app/main.s b/bcd/app/main.s index d157b04..f963715 100644 --- a/bcd/app/main.s +++ b/bcd/app/main.s @@ -117,15 +117,45 @@ EndCalcByMult ; Add Bin Value in higher Byte in R0 LSLS R2, R2, #8 ORRS R0, R0, R2 - - ; Show R0 on LEDs - LDR R2, =ADDR_LED_15_0 - STRH R0, [R2] + ; Show R0 on LEDs 15-0 + LDR R3, =ADDR_LED_15_0 + STRH R0, [R3] ; Show R0 on 7-Segment - LDR R2, =ADDR_7_SEG_BIN_DS3_0 - STRH R0, [R2] + LDR R3, =ADDR_7_SEG_BIN_DS3_0 + STRH R0, [R3] + + ; Count positive Bits in Higher Byte of R2 to R1 + LDR R1, =0 ; initialize R1 with 0 + LDR R3, =0x1 ; mask to set first bit and to substract counter + LDR R4, =9 ; counter for loop + LSLS R2, R2, #16 +CheckBitLoop + SUBS R4, R4, R3 + BEQ EndCheckBitLoop ; goto EndCheckBitLoop if R4 (counter) = 0 + LSLS R2, R2, #1 ; Shift Bits in R2 + BCC CheckBitLoop ; goto CheckBitLoop if carry = 0 + ORRS R1, R3 ; Add Carry to R1 + LSLS R1, R1, #1 ; Shift Bits in R1 + B CheckBitLoop ; goto checkBitLoop +EndCheckBitLoop + LSRS R1, R1, #1 ; Shift Bits in R1 + + ; Rotate LEDs 31-16 + LDR R2, =ADDR_LED_31_16 + LDR R4, =17 ; Counter for LedRotationLoop +LedRotationLoop + SUBS R4, R4, R3 + BEQ EndLedRotationLoop ; goto EndCheckBitLoop if R4 (counter) = 0 + BL pause + STRH R1, [R2] ; Show R1 on LEDs 31-16 + MOV R5, R1 ; Coppy R1 to R5 + LSLS R5, R5, #16 ; Shift Bits in R5 + ORRS R1, R1, R5 ; Coppy lower bytes of R1 in upper bytes in R1 + RORS R1, R1, R3 + B LedRotationLoop +EndLedRotationLoop ; END: To be programmed diff --git a/bcd/bcd.uvguix.roman b/bcd/bcd.uvguix.roman index 3c486c7..0c0ae3e 100644 --- a/bcd/bcd.uvguix.roman +++ b/bcd/bcd.uvguix.roman @@ -1822,7 +1822,7 @@ Build 976 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000002001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008546172676574203196000000000000000100085461726765742031000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000002001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008546172676574203196000000000000000100085461726765742031000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -1838,7 +1838,7 @@ Debug 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3563,7 +3563,7 @@ Build 955 - 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -3579,7 +3579,7 @@ Debug 2362 - 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3606,9 +3606,9 @@ 0 .\app\main.s - 0 - 92 - 103 + 26 + 131 + 156 1 0 diff --git a/bcd/bcd.uvoptx b/bcd/bcd.uvoptx index 99f3e3d..503043f 100644 --- a/bcd/bcd.uvoptx +++ b/bcd/bcd.uvoptx @@ -148,7 +148,24 @@ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_2048 -FS08000000 -FL0200000 -FP0($$Device:CT_Board_HS14_M0$Flash\STM32F4xx_2048.FLM)) - + + + 0 + 0 + 146 + 1 +
134221644
+ 0 + 0 + 0 + 0 + 0 + 1 + .\app\main.s + + \\mul\app/main.s\146 +
+
0 diff --git a/bcd/build/bcd_Target 1.dep b/bcd/build/bcd_Target 1.dep index 6930e16..2544485 100644 --- a/bcd/build/bcd_Target 1.dep +++ b/bcd/build/bcd_Target 1.dep @@ -1,6 +1,6 @@ Dependencies for Project 'bcd', Target 'Target 1': (DO NOT MODIFY !) CompilerVersion: 6180000::V6.18::ARMCLANG -F (.\app\main.s)(0x635B82E1)(--cpu Cortex-M0 --pd "__EVAL SETA 1" -g -I.\RTE\_Target_1 -IC:\Users\roman\AppData\Local\Arm\Packs\InES\CTBoard14_DFP\4.0.2\Device\Include -IC:\Users\roman\AppData\Local\Arm\Packs\InES\CTBoard14_DFP\4.0.2\Device\Include\m0 -IC:\Users\roman\AppData\Local\Arm\Packs\InES\CTBoard14_DFP\4.0.2\HAL\Include --pd "__UVISION_VERSION SETA 537" --pd "_RTE_ SETA 1" --pd "_RTE_ SETA 1" --list .\build\main.lst --xref -o .\build\main.o --depend .\build\main.d) +F (.\app\main.s)(0x635B9615)(--cpu Cortex-M0 --pd "__EVAL SETA 1" -g -I.\RTE\_Target_1 -IC:\Users\roman\AppData\Local\Arm\Packs\InES\CTBoard14_DFP\4.0.2\Device\Include -IC:\Users\roman\AppData\Local\Arm\Packs\InES\CTBoard14_DFP\4.0.2\Device\Include\m0 -IC:\Users\roman\AppData\Local\Arm\Packs\InES\CTBoard14_DFP\4.0.2\HAL\Include --pd "__UVISION_VERSION SETA 537" --pd "_RTE_ SETA 1" --pd "_RTE_ SETA 1" --list .\build\main.lst --xref -o .\build\main.o --depend .\build\main.d) F (RTE/Device/CT_Board_HS14_M0/datainit_ctboard.s)(0x5C517478)(--cpu Cortex-M0 --pd "__EVAL SETA 1" -g -I.\RTE\_Target_1 -IC:\Users\roman\AppData\Local\Arm\Packs\InES\CTBoard14_DFP\4.0.2\Device\Include -IC:\Users\roman\AppData\Local\Arm\Packs\InES\CTBoard14_DFP\4.0.2\Device\Include\m0 -IC:\Users\roman\AppData\Local\Arm\Packs\InES\CTBoard14_DFP\4.0.2\HAL\Include --pd "__UVISION_VERSION SETA 537" --pd "_RTE_ SETA 1" --pd "_RTE_ SETA 1" --list .\build\datainit_ctboard.lst --xref -o .\build\datainit_ctboard.o --depend .\build\datainit_ctboard.d) F (RTE/Device/CT_Board_HS14_M0/startup_ctboard.s)(0x5C517478)(--cpu Cortex-M0 --pd "__EVAL SETA 1" -g -I.\RTE\_Target_1 -IC:\Users\roman\AppData\Local\Arm\Packs\InES\CTBoard14_DFP\4.0.2\Device\Include -IC:\Users\roman\AppData\Local\Arm\Packs\InES\CTBoard14_DFP\4.0.2\Device\Include\m0 -IC:\Users\roman\AppData\Local\Arm\Packs\InES\CTBoard14_DFP\4.0.2\HAL\Include --pd "__UVISION_VERSION SETA 537" --pd "_RTE_ SETA 1" --pd "_RTE_ SETA 1" --list .\build\startup_ctboard.lst --xref -o .\build\startup_ctboard.o --depend .\build\startup_ctboard.d) F (RTE/Device/CT_Board_HS14_M0/system_ctboard.c)(0x5C597514)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m0 -c -fno-rtti -funsigned-char -D__EVAL -gdwarf-4 -O1 -fno-function-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier -I./RTE/_Target_1 -IC:/Users/roman/AppData/Local/Arm/Packs/InES/CTBoard14_DFP/4.0.2/Device/Include -IC:/Users/roman/AppData/Local/Arm/Packs/InES/CTBoard14_DFP/4.0.2/Device/Include/m0 -IC:/Users/roman/AppData/Local/Arm/Packs/InES/CTBoard14_DFP/4.0.2/HAL/Include -D__UVISION_VERSION="537" -D_RTE_ -D_RTE_ -o ./build/system_ctboard.o -MD) diff --git a/bcd/build/main.lst b/bcd/build/main.lst index 8513324..da0396d 100644 --- a/bcd/build/main.lst +++ b/bcd/build/main.lst @@ -103,22 +103,22 @@ ARM Macro Assembler Page 2 50 00000000 51 00000000 ; STUDENTS: To be programmed 52 00000000 - 53 00000000 4A17 LDR R2, =MASK_LOW_NIBBLE + 53 00000000 4A23 LDR R2, =MASK_LOW_NIBBLE 54 00000002 55 00000002 ; Load BCD Tens in R0 - 56 00000002 4818 LDR R0, =ADDR_DIP_SWITCH_15_8 + 56 00000002 4824 LDR R0, =ADDR_DIP_SWITCH_15_8 57 00000004 7800 LDRB R0, [R0] 58 00000006 4010 ANDS R0, R0, R2 59 00000008 60 00000008 ; Load BCD Ones in R1 - 61 00000008 4917 LDR R1, =ADDR_DIP_SWITCH_7_0 + 61 00000008 4923 LDR R1, =ADDR_DIP_SWITCH_7_0 62 0000000A 7809 LDRB R1, [R1] 63 0000000C 4011 ANDS R1, R1, R2 64 0000000E 65 0000000E ; Check if T0 is pressed. If pressed goto CalcByMult - 66 0000000E 4B17 LDR R3, =ADDR_BUTTONS ; load base a + 66 0000000E 4B23 LDR R3, =ADDR_BUTTONS ; load base a ddress of keys - 67 00000010 4C17 LDR R4, =BITMASK_KEY_T0 + 67 00000010 4C23 LDR R4, =BITMASK_KEY_T0 ; load key mask T0 68 00000012 781A LDRB R2, [R3] ; load key values 69 00000014 4222 TST R2, R4 ; check, if key T0 @@ -134,11 +134,11 @@ ARM Macro Assembler Page 2 ARM Macro Assembler Page 3 - 75 00000018 4A16 LDR R2, =ADDR_LCD_RED - 76 0000001A 4B17 LDR R3, =0xffff + 75 00000018 4A22 LDR R2, =ADDR_LCD_RED + 76 0000001A 4B23 LDR R3, =0xffff 77 0000001C 8013 STRH R3, [R2] - 78 0000001E 4A17 LDR R2, =ADDR_LCD_BLUE - 79 00000020 4B17 LDR R3, =0x0 + 78 0000001E 4A23 LDR R2, =ADDR_LCD_BLUE + 79 00000020 4B23 LDR R3, =0x0 80 00000022 8013 STRH R3, [R2] 81 00000024 82 00000024 ; Calculate Bin Value to R2 by Bit Shifting @@ -156,16 +156,16 @@ ARM Macro Assembler Page 3 94 0000002E CalcByMult 95 0000002E 96 0000002E ; set the LCD background to blue - 97 0000002E 4A11 LDR R2, =ADDR_LCD_RED - 98 00000030 4B13 LDR R3, =0x0 + 97 0000002E 4A1D LDR R2, =ADDR_LCD_RED + 98 00000030 4B1F LDR R3, =0x0 99 00000032 8013 STRH R3, [R2] - 100 00000034 4A11 LDR R2, =ADDR_LCD_BLUE - 101 00000036 4B10 LDR R3, =0xffff + 100 00000034 4A1D LDR R2, =ADDR_LCD_BLUE + 101 00000036 4B1C LDR R3, =0xffff 102 00000038 8013 STRH R3, [R2] 103 0000003A 104 0000003A ; Calculate Bin Value to R2 by Multiplication 105 0000003A ; R2 = R0 * 10 - 106 0000003A 4A12 LDR R2, =FACTOR_10 + 106 0000003A 4A1E LDR R2, =FACTOR_10 107 0000003C 4342 MULS R2, R0, R2 108 0000003E 1852 ADDS R2, R2, R1 109 00000040 @@ -180,52 +180,102 @@ ARM Macro Assembler Page 3 118 00000044 0212 LSLS R2, R2, #8 119 00000046 4310 ORRS R0, R0, R2 120 00000048 - 121 00000048 - 122 00000048 ; Show R0 on LEDs - 123 00000048 4A0F LDR R2, =ADDR_LED_15_0 - 124 0000004A 8010 STRH R0, [R2] - 125 0000004C - 126 0000004C ; Show R0 on 7-Segment - 127 0000004C 4A0F LDR R2, =ADDR_7_SEG_BIN_DS3_0 - 128 0000004E 8010 STRH R0, [R2] - 129 00000050 - 130 00000050 ; END: To be programmed - 131 00000050 - 132 00000050 E7FE B main - 133 00000052 ENDP + 121 00000048 ; Show R0 on LEDs 15-0 + 122 00000048 4B1B LDR R3, =ADDR_LED_15_0 + 123 0000004A 8018 STRH R0, [R3] + 124 0000004C + 125 0000004C ; Show R0 on 7-Segment + 126 0000004C 4B1B LDR R3, =ADDR_7_SEG_BIN_DS3_0 + 127 0000004E 8018 STRH R0, [R3] + 128 00000050 + 129 00000050 ; Count positive Bits in Higher Byte of R2 to R1 + 130 00000050 4917 LDR R1, =0 ; initialize R1 wit + h 0 + 131 00000052 4B13 LDR R3, =0x1 ; mask to set first + bit and to substra ARM Macro Assembler Page 4 - 134 00000052 - 135 00000052 ;---------------------------------------------------- - 136 00000052 ; Subroutines - 137 00000052 ;---------------------------------------------------- - 138 00000052 - 139 00000052 ;---------------------------------------------------- - 140 00000052 ; pause for disco_lights - 141 00000052 pause PROC - 142 00000052 B403 PUSH {R0, R1} - 143 00000054 4906 LDR R1, =1 - 144 00000056 480E LDR R0, =0x000FFFFF - 145 00000058 - 146 00000058 loop - 147 00000058 1A40 SUBS R0, R0, R1 - 148 0000005A D2FD BCS loop - 149 0000005C - 150 0000005C BC03 POP {R0, R1} - 151 0000005E 4770 BX LR - 152 00000060 ALIGN - 153 00000060 ENDP - 154 00000060 - 155 00000060 ; ------------------------------------------------------ + ct counter + 132 00000054 4C1A LDR R4, =9 ; counter for loop + 133 00000056 0412 LSLS R2, R2, #16 + 134 00000058 CheckBitLoop + 135 00000058 1AE4 SUBS R4, R4, R3 + 136 0000005A D004 BEQ EndCheckBitLoop ; goto EndCheck + BitLoop if R4 (coun + ter) = 0 + 137 0000005C 0052 LSLS R2, R2, #1 ; Shift Bits in R2 + 138 0000005E D3FB BCC CheckBitLoop ; goto CheckBitLoo + p if carry = 0 + 139 00000060 4319 ORRS R1, R3 ; Add Carry to R1 + 140 00000062 0049 LSLS R1, R1, #1 ; Shift Bits in R1 + 141 00000064 E7F8 B CheckBitLoop + ; goto checkBitLoop + + 142 00000066 EndCheckBitLoop + 143 00000066 0849 LSRS R1, R1, #1 ; Shift Bits in R1 + 144 00000068 + 145 00000068 ; Rotate LEDs 31-16 + 146 00000068 4A16 LDR R2, =ADDR_LED_31_16 + 147 0000006A 4C17 LDR R4, =17 ; Counter for LedRo + tationLoop + 148 0000006C LedRotationLoop + 149 0000006C 1AE4 SUBS R4, R4, R3 + 150 0000006E D007 BEQ EndLedRotationLoop ; goto EndCh + eckBitLoop if R4 (c + ounter) = 0 + 151 00000070 F7FF FFFE BL pause + 152 00000074 8011 STRH R1, [R2] ; Show R1 on LEDs 3 + 1-16 + 153 00000076 460D MOV R5, R1 ; Coppy R1 to R5 + 154 00000078 042D LSLS R5, R5, #16 ; Shift Bits in R5 + 155 0000007A 4329 ORRS R1, R1, R5 ; Coppy lower bytes + of R1 in upper byt + es in R1 + 156 0000007C 41D9 RORS R1, R1, R3 + 157 0000007E E7F5 B LedRotationLoop + 158 00000080 EndLedRotationLoop + 159 00000080 + 160 00000080 ; END: To be programmed + 161 00000080 + 162 00000080 E7FE B main + 163 00000082 ENDP + 164 00000082 + 165 00000082 ;---------------------------------------------------- + 166 00000082 ; Subroutines + 167 00000082 ;---------------------------------------------------- + 168 00000082 + 169 00000082 ;---------------------------------------------------- + 170 00000082 ; pause for disco_lights + 171 00000082 pause PROC + 172 00000082 B403 PUSH {R0, R1} + 173 00000084 4906 LDR R1, =1 + 174 00000086 4811 LDR R0, =0x000FFFFF + 175 00000088 + 176 00000088 loop + 177 00000088 1A40 SUBS R0, R0, R1 + 178 0000008A D2FD BCS loop + + + +ARM Macro Assembler Page 5 + + + 179 0000008C + 180 0000008C BC03 POP {R0, R1} + 181 0000008E 4770 BX LR + 182 00000090 ALIGN + 183 00000090 ENDP + 184 00000090 + 185 00000090 ; ------------------------------------------------------ ------------ - 156 00000060 ; End of code - 157 00000060 ; ------------------------------------------------------ + 186 00000090 ; End of code + 187 00000090 ; ------------------------------------------------------ ------------ - 158 00000060 END + 188 00000090 END 0000000F 60000201 60000200 @@ -238,6 +288,9 @@ ARM Macro Assembler Page 4 0000000A 60000100 60000114 + 00000009 + 60000102 + 00000011 000FFFFF Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M0 --depend=.\bu ild\main.d -o.\build\main.o -I.\RTE\_Target_1 -IC:\Users\roman\AppData\Local\Ar @@ -268,6 +321,15 @@ Symbol: CalcByMult Uses At line 70 in file app\main.s Comment: CalcByMult used once +CheckBitLoop 00000058 + +Symbol: CheckBitLoop + Definitions + At line 134 in file app\main.s + Uses + At line 138 in file app\main.s + At line 141 in file app\main.s + EndCalcByBitShift 0000002C Symbol: EndCalcByBitShift @@ -284,13 +346,43 @@ Symbol: EndCalcByMult Uses At line 92 in file app\main.s Comment: EndCalcByMult used once -loop 00000058 +EndCheckBitLoop 00000066 + +Symbol: EndCheckBitLoop + Definitions + At line 142 in file app\main.s + Uses + At line 136 in file app\main.s +Comment: EndCheckBitLoop used once +EndLedRotationLoop 00000080 + +Symbol: EndLedRotationLoop + Definitions + At line 158 in file app\main.s + Uses + At line 150 in file app\main.s +Comment: EndLedRotationLoop used once +LedRotationLoop 0000006C + + + + +ARM Macro Assembler Page 2 Alphabetic symbol ordering +Relocatable symbols + +Symbol: LedRotationLoop + Definitions + At line 148 in file app\main.s + Uses + At line 157 in file app\main.s +Comment: LedRotationLoop used once +loop 00000088 Symbol: loop Definitions - At line 146 in file app\main.s + At line 176 in file app\main.s Uses - At line 148 in file app\main.s + At line 178 in file app\main.s Comment: loop used once main 00000000 @@ -299,7 +391,7 @@ Symbol: main At line 48 in file app\main.s Uses At line 49 in file app\main.s - At line 132 in file app\main.s + At line 162 in file app\main.s myCode 00000000 @@ -309,21 +401,15 @@ Symbol: myCode Uses None Comment: myCode unused -pause 00000052 - - - - -ARM Macro Assembler Page 2 Alphabetic symbol ordering -Relocatable symbols +pause 00000082 Symbol: pause Definitions - At line 141 in file app\main.s + At line 171 in file app\main.s Uses - None -Comment: pause unused -8 symbols + At line 151 in file app\main.s +Comment: pause used once +12 symbols @@ -336,7 +422,7 @@ Symbol: ADDR_7_SEG_BIN_DS3_0 Definitions At line 28 in file app\main.s Uses - At line 127 in file app\main.s + At line 126 in file app\main.s Comment: ADDR_7_SEG_BIN_DS3_0 used once ADDR_BUTTONS 60000210 @@ -400,7 +486,7 @@ Symbol: ADDR_LED_15_0 Definitions At line 24 in file app\main.s Uses - At line 123 in file app\main.s + At line 122 in file app\main.s Comment: ADDR_LED_15_0 used once ADDR_LED_31_16 60000102 @@ -408,8 +494,8 @@ Symbol: ADDR_LED_31_16 Definitions At line 25 in file app\main.s Uses - None -Comment: ADDR_LED_31_16 unused + At line 146 in file app\main.s +Comment: ADDR_LED_31_16 used once BITMASK_KEY_T0 00000001 Symbol: BITMASK_KEY_T0 @@ -451,4 +537,4 @@ Symbol: MASK_LOW_NIBBLE At line 53 in file app\main.s Comment: MASK_LOW_NIBBLE used once 14 symbols -357 symbols in table +361 symbols in table diff --git a/bcd/build/main.o b/bcd/build/main.o index c2febb14f9bf29aa0106b3a21b691a108acf9a59..8b6c0b24691a623d17617f076833d21a0de7c634 100644 GIT binary patch delta 1039 zcmY*XKWGzS6o22{^}OU#y-U%imo$yJMikUZ@DC0#huT~+ML}?~LkogRKnfXzoYBF- zA>jlEp`eq4prC`ZIOrllMRX846tZ;bAQpt4@4fHxr!RTm`~BW~_x^l$JN8z(TM%2l z!`Zg$FD^mLD!bK0%PzY$x9+rxm1Mu@yS16XUIIw!Z1?>qmcgBRiPBbV57k{krhS z80-$zcY4+Cg=g~#08j+nu+c`*0cfI4CIJGptEt|P^^;vhB+BjOn|By>h&7kj?ydmA zI6)_`8NLwb#KZ8nxPCO}(9dzQsAO`4jxf%v$vFpuSw~Uy@UpTtO@&gZB%ScHa=P?f z5)t0qTBK1uKx~w!wCIq(ui~ z7!(k`Rtri}GoeF5HMhM@jr6rSP?5tN_O#OKx6;!60ZcY*VqB7_Z&lclc` zrNFz!gy*AZ9iUH9dMrf%EHfSx^SM8JVKJ^xOdTyEZ~m1`8G4suN`_`4{X`_om>0K* ePm0RZOHZ?c-x5Lj(dok?7%E zB&?#Kq!FwI{R2e(1A;ad7OAwc@H#8cnR)M>!GWFcn|U+yX6EhB+V5nmr3Tw`%^PXa zSi~T1r%T}=X{XESN;WvriFS_^>2iIPivEBcpBvpqu$L5d@+L)0x>j`ZZUZXFYdX$n zig?7|pC8`4%F^NOkLRMvWCm9N+^LqC+BwxD%A)VB-MufY%htwPfAcn&_QZ(_d!zEZ zIAZJl|&n3Qx)Il@GoA z@&+*v2k_WNJP}*rxU~(8C;!Y!LOh^P)4fU&QK*$ozxDQ_|3wd}fDgnHe?c^`#W7BJ zCMQ)UJ{JQXi6#|G>r{eStxzI$1iq^M4~x;LC3-=k^dK20B=sV_ePHJ z+JMz385R0KlL%jEWpTPaL#~tGEUV)}fE`|?^k?s|cgoGrBu?!KOy5r|Qe5jVnf*}% diff --git a/bcd/build/mul.axf b/bcd/build/mul.axf index 4c7285cf7f70be27b71de0f99810af5d12bde8d9..3b78b6b9cd5ecc6a539283f9ef2b812d2d24f68a 100644 GIT binary patch delta 4113 zcmZA42}~4M7zgk-v&%Bvhg6qcpesuOuSC46RRf5vawv#2DQ%3^L_C7V2&R}ohZqt` zJc1o-)Z&$Dk07Kl+tix0G1fMR8s90idK@UCYN~2-L3L}Lg~12PerP8 z(Btf{7SDf9FDVsIhDx>ZWfLj}J<#@kBlT4!L$=*Wpc7BVJ8Cd_?KIqSwH^rIp-oIh{mpAOZV`itLaReW z-MVIb!#W|qHkxl1=cPus;Sh(&Hae=)jLwxs`57Mh=ka*)FLxR8Tdwsz%MqLIL7~^9 zsxEVQWydQ@qtUW&rrvM0p@`$yuSe5~*sDSjr?C%jPVr!5063!vtr>d<%Kr!#VlT@z z#R~X@PnN49QQDF~ZB=+fdCMHEp8ZzZmP z8;NV-CgM7{nYaONC2ob=9D1aKy$H0E3P<2Q#2>>Q!~ysK@dfx0aX;Kid;>l~JPe=G zN#Gd*;Z2@Wrz*rSDNlie#98n|VtK|yRAfL?P#)gG?JXtcvOT?m1Y`rl#PXB}iRa*e zL06=M68KNzD%qhHDPILUi8sO1VzFBC*B56CB}pm(~0p5 z5wnO7!*hw{fP4v&1mu7^BG!eRL?)d{QABp-ioWQ*etv8mh0!a_KI( z8+Xn!I2G=LC#gb{6|!{%&LdEO00t_u;mhz$;v4X6;voDou@WW3JmNHXKCus8NL&CH z+SX-d$`8xC8%&zFM31@|k{;dS&gafvhGuJV{%Y2Zzhxse!pKQzi ztpskd3XhrPbft45oq00zeCFlMt3%eY3nj3HRcK+}&wPsc3+5k~uQLZNz=0(i z9pQN9T;{pVmCPHMcQPN4#{GXZfi70z9P=gS8_fSOtFdDTl**h9>vY63ScOH*)y!*| zw=uUfpJWci;`vV#xWX#jV}8yY7dLinsq1R{@%kmw6gU;+FB@d`K-PP5C`!}DOb?IySu&ak~3ZXrGnpM-O){_y<&41w!dvxOVD z2tS39sFlEPa154M$+mC9nebfOBXBJoK0Y01Li%XcU`yQJuw@iN8{SGscWSu2OH*2J+lf@xI?K^RhR^-v19|c9l^8 delta 3975 zcmZwK4Qv!e6bJCRz20&Cyt|fiXK9n8^aHVpMQEi63bcXtzywPPslfoE3B+Qmd>y8` zg@6+Iux6{&2q;lvwJovS854p?6a}?GP$D&{u_i^aRzs6EN>u9q?e6tnU)-d7{k@r; zc{4Y=JGW<0Yx`Ae$#qqqQfg!OG_U4}L}zKgrL7KxgVieHTNtQGj`$Y_mIapQMDiD> zT%HmREX!&RnCDMarTQjV8}#)1!&!*>!#98aX7myy5Hw>r`IZ_((p$|d9-~>&&>QPukuXGR7%^te$$g`AVYb| z5z!jgZ`<;?qJOKRuP!RibTk-eS3c~^%gN2jbEe#pgU_isnigGH*D}vhWn4KlTW>|9 zPUTQUmH;H}In;Ry3OxQTf)+|2w8yodP(c%M^Gbl8f( z0aoES+`@bkZe>0Lw=sVSA7So=-(>z7ew%p&R@V5f8MuwW5UY@?DRq-M2#+w+j44-Q z0EH-zA2g%XUNtMH_Lei#_4*JC(3Ia~F2w}{?nDO*;2X?g>d=!YUkxWQKL(d3C(56K z=P*B~Vf-stU_UCub@#3>LsGs7jc3!llg5!*iGocrG(7s!)0&0UA&XGp(W4gmpzD+=>TS z{Jy6}6k*0Kq?(w!;AZC2@E+z1@IGdmu|DRjaR0b5|34uRKYZHo*cN2ciBZr&-c6Z> zNR|&;nVJdv@fbX8)%Q?2`2^gBCubPWggfCo@#Lcl`S59Y7L0MKd>w($5ttnhz`bx8 z^B{aL^WSg|CB&=JYajBa74I8xLx=|;je`IY@6>NN?=%2(6Ac#n#d9^5H1t07OofGXj#XH zH3K_Dh5f?Egu8{$3ttl+6#myV-v99ge903>91^}qxJLL<;U?ij!Y9Z&yX|74!l%N$ z!b8IU2&bh?98j)s39R$)c)qBxTzHLegYa(Q*M(0C_oU$c&l9*VDvS!dQYVfmTewiT zLbyhFLn_ukPhh*K&??*|d{+2t;eO#^VW*CbJx?H8xLCMCxCVX@Ylv1cy=-dXRd5h5 zF!BcYUF;d@WkcQ$cQEVw5Wp*Syuwkq8=h}p&;j3qX@5@*d<46&N362Td*FxQBewhD zQTV3qQTTW487JGw>Y9??6PR16?XZuGu51woL7F-X<6UfR? zY8&%R_+{oLFxHK^U!WOW19!(w@Bb|be1O14yMtZu0&J-UY`4LM*fKTPZig`{PoM46 z@ImZoR@lA-Ux(>;BX#&K9Kmlw(A?1A=OP^;Iu+6mXM_dFNnR>Kg%Is%G?iiG9X%Pn za&%Wlw63$!?LuQJVtjFGsUu?eqthMl8)eaAoFBnC)!2)()98v8yVfnjOc>usr)$G2 zjoZ;8?ZPIbC{~ny<3()2{7T{ORtJpw*i_d=ET53EGd5kj(P12m6*-jgS*%z)*KPa} GoAMuVl6%zv diff --git a/bcd/build/mul.build_log.htm b/bcd/build/mul.build_log.htm index 2e2b8a0..7afa6cc 100644 --- a/bcd/build/mul.build_log.htm +++ b/bcd/build/mul.build_log.htm @@ -36,7 +36,7 @@ compiling system_ctboard.c... compiling hal_rcc.c... compiling hal_gpio.c... linking... -Program Size: Code=3532 RO-data=428 RW-data=0 ZI-data=8192 +Program Size: Code=3592 RO-data=428 RW-data=0 ZI-data=8192 ".\build\mul.axf" - 0 Error(s), 0 Warning(s).

Software Packages used:

diff --git a/bcd/build/mul.htm b/bcd/build/mul.htm index 903ba9e..2b583dd 100644 --- a/bcd/build/mul.htm +++ b/bcd/build/mul.htm @@ -3,7 +3,7 @@ Static Call Graph - [.\build\mul.axf]

Static Call Graph for image .\build\mul.axf


-

#<CALLGRAPH># ARM Linker, 6180002: Last Updated: Fri Oct 28 09:21:17 2022 +

#<CALLGRAPH># ARM Linker, 6180002: Last Updated: Fri Oct 28 10:43:03 2022

Maximum Stack Usage = 132 bytes + Unknown(Cycles, Untraceable Function Pointers)

Call chain for Maximum Stack Depth:

@@ -485,120 +485,121 @@ Global Symbols

__system (Thumb, 8 bytes, Stack size 8 bytes, system_ctboard.o(.text))

[Stack]

  • Max Depth = 132
  • Call Chain = __system ⇒ system_enter_run ⇒ hal_gpio_init_alternate ⇒ hal_gpio_init_output
-
[Calls]
  • >>   system_enter_run +
    [Calls]
    • >>   system_enter_run

    [Address Reference Count : 1]
    • startup_ctboard.o(.text)
    -

    system_enter_run (Thumb, 280 bytes, Stack size 48 bytes, system_ctboard.o(.text)) +

    system_enter_run (Thumb, 280 bytes, Stack size 48 bytes, system_ctboard.o(.text))

    [Stack]

    • Max Depth = 124
    • Call Chain = system_enter_run ⇒ hal_gpio_init_alternate ⇒ hal_gpio_init_output
    -
    [Calls]
    • >>   hal_fmc_init_sram -
    • >>   hal_gpio_init_alternate -
    • >>   hal_rcc_setup_clock -
    • >>   hal_pwr_set_overdrive -
    • >>   hal_rcc_setup_pll -
    • >>   hal_rcc_set_osc -
    • >>   hal_rcc_reset +
      [Calls]
      • >>   hal_fmc_init_sram +
      • >>   hal_gpio_init_alternate +
      • >>   hal_rcc_setup_clock +
      • >>   hal_pwr_set_overdrive +
      • >>   hal_rcc_setup_pll +
      • >>   hal_rcc_set_osc +
      • >>   hal_rcc_reset

      [Called By]
      • >>   __system
      -

      system_enter_sleep (Thumb, 2 bytes, Stack size 0 bytes, system_ctboard.o(.text), UNUSED) +

      system_enter_sleep (Thumb, 2 bytes, Stack size 0 bytes, system_ctboard.o(.text), UNUSED) -

      system_enter_stop (Thumb, 2 bytes, Stack size 0 bytes, system_ctboard.o(.text), UNUSED) +

      system_enter_stop (Thumb, 2 bytes, Stack size 0 bytes, system_ctboard.o(.text), UNUSED) -

      system_enter_standby (Thumb, 2 bytes, Stack size 0 bytes, system_ctboard.o(.text), UNUSED) +

      system_enter_standby (Thumb, 2 bytes, Stack size 0 bytes, system_ctboard.o(.text), UNUSED) -

      hal_fmc_reset (Thumb, 60 bytes, Stack size 0 bytes, hal_fmc.o(.text), UNUSED) +

      hal_fmc_reset (Thumb, 60 bytes, Stack size 0 bytes, hal_fmc.o(.text), UNUSED) -

      hal_fmc_init_sram (Thumb, 264 bytes, Stack size 36 bytes, hal_fmc.o(.text)) +

      hal_fmc_init_sram (Thumb, 264 bytes, Stack size 36 bytes, hal_fmc.o(.text))

      [Stack]

      • Max Depth = 36
      • Call Chain = hal_fmc_init_sram
      -
      [Called By]
      • >>   system_enter_run +
        [Called By]
        • >>   system_enter_run
        -

        hal_gpio_reset (Thumb, 68 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) +

        hal_gpio_reset (Thumb, 68 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) -

        hal_gpio_init_input (Thumb, 156 bytes, Stack size 32 bytes, hal_gpio.o(.text), UNUSED) +

        hal_gpio_init_input (Thumb, 156 bytes, Stack size 32 bytes, hal_gpio.o(.text), UNUSED) -

        hal_gpio_init_analog (Thumb, 240 bytes, Stack size 36 bytes, hal_gpio.o(.text), UNUSED) +

        hal_gpio_init_analog (Thumb, 240 bytes, Stack size 36 bytes, hal_gpio.o(.text), UNUSED) -

        hal_gpio_init_output (Thumb, 276 bytes, Stack size 36 bytes, hal_gpio.o(.text)) +

        hal_gpio_init_output (Thumb, 276 bytes, Stack size 36 bytes, hal_gpio.o(.text))

        [Stack]

        • Max Depth = 36
        • Call Chain = hal_gpio_init_output
        -
        [Called By]
        • >>   hal_gpio_init_alternate +
          [Called By]
          • >>   hal_gpio_init_alternate
          -

          hal_gpio_init_alternate (Thumb, 262 bytes, Stack size 40 bytes, hal_gpio.o(.text)) +

          hal_gpio_init_alternate (Thumb, 262 bytes, Stack size 40 bytes, hal_gpio.o(.text))

          [Stack]

          • Max Depth = 76
          • Call Chain = hal_gpio_init_alternate ⇒ hal_gpio_init_output
          -
          [Calls]
          • >>   hal_gpio_init_output +
            [Calls]
            • >>   hal_gpio_init_output
            -
            [Called By]
            • >>   system_enter_run +
              [Called By]
              • >>   system_enter_run
              -

              hal_gpio_input_read (Thumb, 6 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) +

              hal_gpio_input_read (Thumb, 6 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) -

              hal_gpio_output_read (Thumb, 6 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) +

              hal_gpio_output_read (Thumb, 6 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) -

              hal_gpio_output_write (Thumb, 20 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) +

              hal_gpio_output_write (Thumb, 20 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) -

              hal_gpio_bit_set (Thumb, 24 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) +

              hal_gpio_bit_set (Thumb, 24 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) -

              hal_gpio_bit_reset (Thumb, 28 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) +

              hal_gpio_bit_reset (Thumb, 28 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) -

              hal_gpio_bit_toggle (Thumb, 28 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) +

              hal_gpio_bit_toggle (Thumb, 28 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) -

              hal_gpio_irq_set (Thumb, 292 bytes, Stack size 36 bytes, hal_gpio.o(.text), UNUSED) +

              hal_gpio_irq_set (Thumb, 292 bytes, Stack size 36 bytes, hal_gpio.o(.text), UNUSED) -

              hal_gpio_irq_status (Thumb, 24 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) +

              hal_gpio_irq_status (Thumb, 24 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) -

              hal_gpio_irq_clear (Thumb, 12 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) +

              hal_gpio_irq_clear (Thumb, 12 bytes, Stack size 0 bytes, hal_gpio.o(.text), UNUSED) -

              hal_pwr_reset (Thumb, 16 bytes, Stack size 0 bytes, hal_pwr.o(.text), UNUSED) +

              hal_pwr_reset (Thumb, 16 bytes, Stack size 0 bytes, hal_pwr.o(.text), UNUSED) -

              hal_pwr_set_backup_domain (Thumb, 56 bytes, Stack size 16 bytes, hal_pwr.o(.text), UNUSED) +

              hal_pwr_set_backup_domain (Thumb, 56 bytes, Stack size 16 bytes, hal_pwr.o(.text), UNUSED) -

              hal_pwr_set_backup_access (Thumb, 24 bytes, Stack size 0 bytes, hal_pwr.o(.text), UNUSED) +

              hal_pwr_set_backup_access (Thumb, 24 bytes, Stack size 0 bytes, hal_pwr.o(.text), UNUSED) -

              hal_pwr_set_wakeup_pin (Thumb, 24 bytes, Stack size 0 bytes, hal_pwr.o(.text), UNUSED) +

              hal_pwr_set_wakeup_pin (Thumb, 24 bytes, Stack size 0 bytes, hal_pwr.o(.text), UNUSED) -

              hal_pwr_set_flash_powerdown (Thumb, 24 bytes, Stack size 0 bytes, hal_pwr.o(.text), UNUSED) +

              hal_pwr_set_flash_powerdown (Thumb, 24 bytes, Stack size 0 bytes, hal_pwr.o(.text), UNUSED) -

              hal_pwr_set_overdrive (Thumb, 4 bytes, Stack size 0 bytes, hal_pwr.o(.text)) -

              [Called By]

              • >>   system_enter_run +

                hal_pwr_set_overdrive (Thumb, 4 bytes, Stack size 0 bytes, hal_pwr.o(.text)) +

                [Called By]

                • >>   system_enter_run
                -

                hal_pwr_set_underdrive (Thumb, 4 bytes, Stack size 0 bytes, hal_pwr.o(.text), UNUSED) +

                hal_pwr_set_underdrive (Thumb, 4 bytes, Stack size 0 bytes, hal_pwr.o(.text), UNUSED) -

                hal_rcc_reset (Thumb, 104 bytes, Stack size 16 bytes, hal_rcc.o(.text)) +

                hal_rcc_reset (Thumb, 104 bytes, Stack size 16 bytes, hal_rcc.o(.text))

                [Stack]

                • Max Depth = 16
                • Call Chain = hal_rcc_reset
                -
                [Called By]
                • >>   system_enter_run +
                  [Called By]
                  • >>   system_enter_run
                  -

                  hal_rcc_set_peripheral (Thumb, 228 bytes, Stack size 8 bytes, hal_rcc.o(.text), UNUSED) +

                  hal_rcc_set_peripheral (Thumb, 228 bytes, Stack size 8 bytes, hal_rcc.o(.text), UNUSED) -

                  hal_rcc_set_osc (Thumb, 108 bytes, Stack size 16 bytes, hal_rcc.o(.text)) +

                  hal_rcc_set_osc (Thumb, 108 bytes, Stack size 16 bytes, hal_rcc.o(.text))

                  [Stack]

                  • Max Depth = 16
                  • Call Chain = hal_rcc_set_osc
                  -
                  [Called By]
                  • >>   system_enter_run +
                    [Called By]
                    • >>   system_enter_run
                    -

                    hal_rcc_setup_pll (Thumb, 220 bytes, Stack size 24 bytes, hal_rcc.o(.text)) +

                    hal_rcc_setup_pll (Thumb, 220 bytes, Stack size 24 bytes, hal_rcc.o(.text))

                    [Stack]

                    • Max Depth = 24
                    • Call Chain = hal_rcc_setup_pll
                    -
                    [Called By]
                    • >>   system_enter_run +
                      [Called By]
                      • >>   system_enter_run
                      -

                      hal_rcc_setup_clock (Thumb, 80 bytes, Stack size 16 bytes, hal_rcc.o(.text)) +

                      hal_rcc_setup_clock (Thumb, 80 bytes, Stack size 16 bytes, hal_rcc.o(.text))

                      [Stack]

                      • Max Depth = 16
                      • Call Chain = hal_rcc_setup_clock
                      -
                      [Called By]
                      • >>   system_enter_run +
                        [Called By]
                        • >>   system_enter_run
                        -

                        main (Thumb, 82 bytes, Stack size 0 bytes, main.o(myCode)) +

                        main (Thumb, 130 bytes, Stack size 0 bytes, main.o(myCode))

                        [Calls]

                        • >>   main +
                        • >>   pause

                        [Called By]
                        • >>   main
                        @@ -606,7 +607,11 @@ Global Symbols

                      Local Symbols -

                      + +

                      pause (Thumb, 14 bytes, Stack size 0 bytes, main.o(myCode)) +

                      [Called By]

                      • >>   main +
                      +

                      Undefined Global Symbols


                      diff --git a/bcd/build/mul.map b/bcd/build/mul.map index d994fbc..d029540 100644 --- a/bcd/build/mul.map +++ b/bcd/build/mul.map @@ -125,7 +125,8 @@ Image Symbol Table __arm_cp.3_5 0x08000e88 Number 4 hal_rcc.o(.text) __arm_cp.4_0 0x08000edc Number 4 hal_rcc.o(.text) __arm_cp.4_1 0x08000ee0 Number 4 hal_rcc.o(.text) - myCode 0x08000ee4 Section 148 main.o(myCode) + myCode 0x08000ee4 Section 208 main.o(myCode) + pause 0x08000f67 Thumb Code 14 main.o(myCode) STACK 0x20000000 Section 8192 startup_ctboard.o(STACK) __initial_sp 0x20002000 Data 0 startup_ctboard.o(STACK) @@ -277,8 +278,8 @@ Image Symbol Table hal_rcc_set_osc 0x08000d25 Thumb Code 108 hal_rcc.o(.text) hal_rcc_setup_pll 0x08000d99 Thumb Code 220 hal_rcc.o(.text) hal_rcc_setup_clock 0x08000e8d Thumb Code 80 hal_rcc.o(.text) - main 0x08000ee5 Thumb Code 82 main.o(myCode) - Image$$RO$$Limit 0x08000f78 Number 0 anon$$obj.o ABSOLUTE + main 0x08000ee5 Thumb Code 130 main.o(myCode) + Image$$RO$$Limit 0x08000fb4 Number 0 anon$$obj.o ABSOLUTE Image$$RW$$Base 0x20000000 Number 0 anon$$obj.o ABSOLUTE Image$$ZI$$Base 0x20000000 Number 0 anon$$obj.o ABSOLUTE Stack_Mem 0x20000000 Data 8192 startup_ctboard.o(STACK) @@ -292,9 +293,9 @@ Memory Map of the image Image Entry point : 0x08000229 - Load Region LR_1 (Base: 0x08000000, Size: 0x00000f78, Max: 0xffffffff, ABSOLUTE) + Load Region LR_1 (Base: 0x08000000, Size: 0x00000fb4, Max: 0xffffffff, ABSOLUTE) - Execution Region ER_RO (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00000f78, Max: 0xffffffff, ABSOLUTE) + Execution Region ER_RO (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00000fb4, Max: 0xffffffff, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object @@ -307,15 +308,15 @@ Memory Map of the image 0x08000504 0x08000504 0x00000604 Code RO 34 .text hal_gpio.o 0x08000b08 0x08000b08 0x000000ac Code RO 42 .text hal_pwr.o 0x08000bb4 0x08000bb4 0x00000330 Code RO 50 .text hal_rcc.o - 0x08000ee4 0x08000ee4 0x00000094 Code RO 1 * myCode main.o + 0x08000ee4 0x08000ee4 0x000000d0 Code RO 1 * myCode main.o - Execution Region ER_RW (Exec base: 0x20000000, Load base: 0x08000f78, Size: 0x00000000, Max: 0xffffffff, ABSOLUTE) + Execution Region ER_RW (Exec base: 0x20000000, Load base: 0x08000fb4, Size: 0x00000000, Max: 0xffffffff, ABSOLUTE) **** No section assigned to this execution region **** - Execution Region ER_ZI (Exec base: 0x20000000, Load base: 0x08000f78, Size: 0x00002000, Max: 0xffffffff, ABSOLUTE) + Execution Region ER_ZI (Exec base: 0x20000000, Load base: 0x08000fb4, Size: 0x00002000, Max: 0xffffffff, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object @@ -334,12 +335,12 @@ Image component sizes 1540 96 0 0 0 11993 hal_gpio.o 172 20 0 0 0 2124 hal_pwr.o 816 168 0 0 0 5352 hal_rcc.o - 148 52 0 0 0 424 main.o + 208 64 0 0 0 448 main.o 36 8 428 0 8192 820 startup_ctboard.o 354 60 0 0 0 6763 system_ctboard.o ---------------------------------------------------------------------- - 3532 470 428 0 8192 31725 Object Totals + 3592 482 428 0 8192 31749 Object Totals 0 0 0 0 0 0 (incl. Generated) 2 0 0 0 0 0 (incl. Padding) @@ -354,15 +355,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 3532 470 428 0 8192 31541 Grand Totals - 3532 470 428 0 8192 31541 ELF Image Totals - 3532 470 428 0 0 0 ROM Totals + 3592 482 428 0 8192 31565 Grand Totals + 3592 482 428 0 8192 31565 ELF Image Totals + 3592 482 428 0 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 3960 ( 3.87kB) + Total RO Size (Code + RO Data) 4020 ( 3.93kB) Total RW Size (RW Data + ZI Data) 8192 ( 8.00kB) - Total ROM Size (Code + RO Data + RW Data) 3960 ( 3.87kB) + Total ROM Size (Code + RO Data + RW Data) 4020 ( 3.93kB) ==============================================================================