From 76a9e0e9b6fa59d6e0e2cf39624a1bea025ff03b Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Tue, 19 Feb 2013 13:37:27 +0900 Subject: [PATCH] update regnual (incompatible to 1.0.x) --- ChangeLog | 6 + regnual/Makefile | 9 +- regnual/b/regnual.bin | Bin 0 -> 4284 bytes regnual/b/regnual.elf | Bin 0 -> 48538 bytes regnual/b/regnual.hex | 271 ++++++++++++++++++++++++++++++++++++++++++ regnual/regnual.ld | 4 +- src/Makefile.in | 1 - src/gnuk.ld.in | 1 - 8 files changed, 284 insertions(+), 8 deletions(-) create mode 100755 regnual/b/regnual.bin create mode 100755 regnual/b/regnual.elf create mode 100644 regnual/b/regnual.hex diff --git a/ChangeLog b/ChangeLog index 63625d6..7ee98cd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2013-02-19 Niibe Yutaka + * regnual/regnual.ld (MEMORY): Fix address of regnual. + + * regnual/Makefile (MCFLAGS): Remove -mfix-cortex-m3-ldrd. + (CFLAGS): Add output to .lst. + * src/Makefile.in (MCFLAGS): Remove. + * src/sha256.c: Update from NeuG 0.05. * ChibiOS_2.0.8: Remove. diff --git a/regnual/Makefile b/regnual/Makefile index 154877b..2a3f333 100644 --- a/regnual/Makefile +++ b/regnual/Makefile @@ -2,7 +2,7 @@ PROJECT = regnual -OBJS = regnual.o usb_lld.o sys.o +OBJS = regnual.o usb_stm32f103.o sys.o LDSCRIPT= regnual.ld ################################### @@ -18,10 +18,11 @@ OBJDUMP = $(TRGT)objdump TOPT = -mthumb -DTHUMB -mno-thumb-interwork # Define C warning options here CWARN = -Wall -Wextra -Wstrict-prototypes -MCFLAGS= -mcpu=$(MCU) -mfix-cortex-m3-ldrd +MCFLAGS= -mcpu=$(MCU) DEFS = -DFREE_STANDING CFLAGS = -O2 -g +CFLAGS += -Wa,-alms=$(notdir $(<:.c=.lst)) CFLAGS += $(CWARN) -I . -I ../src -fno-common $(MCFLAGS) $(TOPT) $(DEFS) LDFLAGS = -T$(LDSCRIPT) -nostartfiles $(MCFLAGS) $(TOPT) @@ -37,8 +38,8 @@ regnual.hex: regnual.elf $(OBJCOPY) -Obinary regnual.elf regnual.bin $(OBJCOPY) -Oihex regnual.elf regnual.hex -usb_lld.o: ../src/usb_lld.c - $(CC) $(CFLAGS) -c -o usb_lld.o ../src/usb_lld.c +usb_stm32f103.o: ../src/usb_stm32f103.c + $(CC) $(CFLAGS) -c -o usb_stm32f103.o ../src/usb_stm32f103.c regnual.elf: $(OBJS) $(LDSCRIPT) $(CC) $(LDFLAGS) -o regnual.elf $(OBJS) diff --git a/regnual/b/regnual.bin b/regnual/b/regnual.bin new file mode 100755 index 0000000000000000000000000000000000000000..57a748a5d86d2c2580efb29feca3f0183cd88a2d GIT binary patch literal 4284 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 literal 0 HcmV?d00001 diff --git a/regnual/b/regnual.elf b/regnual/b/regnual.elf new file mode 100755 index 0000000000000000000000000000000000000000..b8d78e9390f01178fa2cc113af0bc7101f33350a GIT binary patch literal 48538 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 literal 0 HcmV?d00001 diff --git a/regnual/b/regnual.hex b/regnual/b/regnual.hex new file mode 100644 index 0000000..5ab373a --- /dev/null +++ b/regnual/b/regnual.hex @@ -0,0 +1,271 @@ +:020000042000DA +:1014000000500020492200204122002041220020DB +:1014100041220020412200204122002045220020BC +:1014200045220020452200204522002045220020A0 +:101430004522002045220020452200204522002090 +:101440004522002045220020452200204522002080 +:101450004522002045220020452200204522002070 +:101460004522002045220020452200204522002060 +:101470004522002045220020452200204522002050 +:101480004522002045220020452200204522002040 +:10149000351F0020000000000000000000000000D8 +:1014A00001288CBF00200120704700BF002070473A +:1014B00030B500F07F0483B0402CBDF8185002D046 +:1014C000002003B030BD000626D401290ED0032928 +:1014D0002BD0042901D00529F2D1002DF0D1002A0A +:1014E00031D1D3F1010038BF0020EAE7002AE7D16B +:1014F0005919B1F5807F2EDC184C07D0C1F58072E8 +:101500006018FF21019300F0DBFE019BE0182946E3 +:1015100000F0B0FB0120D4E7B9B10229D0D11048C6 +:10152000042100F0A7FB0120CBE7002DC8D153B95F +:1015300002F50021080200F580730A48984234BF82 +:1015400000200120BDE72846BBE70748082100F03E +:1015500091FB0120B5E71046B3E700BF040000206F +:1015600000000020000002085023002000B50020E9 +:1015700083B000F06DFB802000F076FB00F0A0FA55 +:101580008022402300208DE80C004FF400710246B9 +:1015900000F016FB03B000BD38B500F07F04402C0E +:1015A000BDF8105000D038BD0006FCD401292BD066 +:1015B00003290DD004291BD1002DF4D1002AF2D12A +:1015C000002BF0D1204A136A98472049086038BDA3 +:1015D000002DE8D1002BE6D102F500201B4C1A4A61 +:1015E0000002D369211D4FF480729847206038BDF6 +:1015F0000529D8D1002DD6D1002AD4D1002BD2D1A3 +:101600001149086B8047CEE7002ACCD14FF44050F7 +:10161000C4F202000E4C8160A558131D08324FF42D +:10162000405195FAA5F5B2F5807F0560E358C4F204 +:10163000020193FAA3F30360EED10448096891FA1A +:10164000A1F2026038BD00BF0000000800000020C9 +:1016500004000020012810B5044613D0022817D03A +:10166000032801D0002010BDD2B2032A01D90020E6 +:1016700010BD0A4B03EBC202106B918E00F0FAFA18 +:10168000012010BD0648122100F0F4FA204610BDDA +:101690000448122100F0EEFA012010BD5023002072 +:1016A000582300206C2300200000000000000000F0 +:1016B0000020704770B52B4C002582B02580A460B7 +:1016C000002926D1022B02D0084602B070BD150AAF +:1016D000FAD101061DD510F01F001CD0012829D019 +:1016E000022816D112F0700F13D112F00F00ECD0B7 +:1016F00000F1805C0CF5B85083001888130628D5DB +:1017000010F03000E1D0102829D00221A180012062 +:10171000DBE72846D9E7002AD7D1627C12F0200106 +:1017200008BF0B4652064CBF43F0010323F00103F0 +:101730002380EAE7207C0028C7D00B4E18461146CC +:1017400001932A467669B0470128019BE1D1A38025 +:10175000BBE710F44050B8D0B0F5805FD5D101227E +:101760002280D2E704010020A023002010F01F00F7 +:101770000CD153B97F290BD832B9064B187CD0F164 +:10178000010038BF0020704718467047002070479E +:101790001846704704010020030601D4002070475A +:1017A000C00606D1044B012003F110029A60988014 +:1017B00070470020704700BF0401002010F01F0098 +:1017C00008B503D10AB91BB1104608BD002008BDF9 +:1017D000044A012013699847A0F10102504240EBEE +:1017E000020008BDA023002000F01F00012810B552 +:1017F0000C4601D0002010BD002BFBD1100A06D1F1 +:101800000B0A03D10849087C18B1184610BD1846C8 +:1018100010BD064B11465B6922469847A0F10103B3 +:101820005A4242EB030010BD04010020A023002017 +:1018300010F01F0006D143B9002A35D1012935D057 +:1018400010467047022801D0002070472448007CD1 +:101850000028FAD0002B30D1100A25D10029F4D16C +:1018600012F00F00F1D000F1805C0CF5B853990034 +:10187000088812F0800214BF00F0300000F44050DD +:101880000028E2D09B00D2B11988480626D548F638 +:101890008F7248F2C00C01EA0200CFF6FF7C40EAEA +:1018A0000C021A8001207047184670470C4B0846FE +:1018B000597C21F020025A74704700207047188824 +:1018C00042040BD548F68F724CF2800C1040CFF6D4 +:1018D000FF7C40EA0C01198001207047012070470D +:1018E0000401002010F01F0006D143B9002A37D1AF +:1018F000012937D010467047022801D000207047D8 +:101900002548007C0028FAD0002B32D1100A27D1BC +:101910000029F4D112F00F00F1D000F1805C0CF539 +:10192000B8539900088812F0800214BF00F030000C +:1019300000F440500028E2D09B00E2B9B3F800C0A8 +:101940004BF68F700CEA000148F2800281F480505F +:10195000CFF6FF7240EA020CA3F800C001207047E6 +:10196000184670470C4B0846597C41F020025A74C7 +:10197000704700207047198848F6BF7001EA0002DE +:1019800048F28000CFF6FF7082F0100141EA0002B9 +:101990001A800120704700BF0401002008B50B46E3 +:1019A000010601D4002008BDC10601D0002008BDF9 +:1019B000180A11461A46024BDB68984708BD00BF5B +:1019C000A023002010F0800F10B501D1002010BD21 +:1019D00000F01F000128F9D10029F7D1140A0ED117 +:1019E000012B01D0204610BD0649087C0028FAD002 +:1019F0001846054B11465B692246984710BD0846BC +:101A000010BD00BF04010020A02300204FF4B84304 +:101A1000C4F200031A8810B44BF6BF74224000F4DD +:101A2000405C8CEA020401F0300148F280004C4036 +:101A3000CFF6FF7044EA00021A8010BC704700BF66 +:101A400038B540F20005C0F60005AC6A0546A0476F +:101A500040F2041CC2F2000C022345F6404245F657 +:101A600044448CF812300021C4F20002C4F2000495 +:101A700001204FF404438CF810108CF811501080A2 +:101A800011802180138038BD45F6444145F640431E +:101A90000022C4F20001C4F200030A801A807047D9 +:101AA00045F6404240F20000C4F20002C0F60000D9 +:101AB000022108B51180C36A984708BD704700BF6E +:101AC00045F6504045F64C43C4F20000C4F2000312 +:101AD0000021802201801A80704700BFC2B202F14B +:101AE000805346F2040C1001C4F2000C03F5B85206 +:101AF00020F80C109200118848F6BF7001EA00032C +:101B000048F2800083F03001CFF6FF7041EA000315 +:101B100013807047C0B246F204030201C4F200030E +:101B2000D15A8805800D7047C0B246F20C030201FD +:101B3000C4F20003D15A8805800D7047C3B203F187 +:101B4000805C0CF5B85189000A8848F6BF7002EA3B +:101B5000000348F2800083F01002CFF6FF7042EAE3 +:101B600000030B80704700BFC3B203F1805C0CF52B +:101B7000B85189000A884BF68F7002EA000348F2D8 +:101B8000800083F48052CFF6FF7042EA00030B809E +:101B9000704700BFC3B203F1805C0CF5B8518900F7 +:101BA0000A884BF68F7002EA000348F2800083F443 +:101BB0004052CFF6FF7042EA00030B80704700BF2F +:101BC000F0B4C4B204F1805C0CF5B855AD002E88B9 +:101BD00041EA000747F6700C06EA0C0047EA0201EA +:101BE00041EA0007049EBFB2CBB1BDF8142046F213 +:101BF000080046F20C0C2101C4F20000C4F2000CF3 +:101C00003E2A0B528C441ED95209501E6FEAC06105 +:101C10006FEA51439AB2ACF800204FF440534EB1F2 +:101C200004F1806101F5C06443F0200C24011FFA27 +:101C30008CF3268043F2200203EA020080EA0703C5 +:101C40002B80F0BC704702F03E025202E3E700BF77 +:101C500040F20413C2F200031874704740F20413F8 +:101C6000C2F20003187C704740F20413C2F2000372 +:101C70005874704740F20413C2F2000398609980D0 +:101C8000704700BF2DE9F001002A44D0CB0745D4AE +:101C900001F1005C0CF540514FEA410C012A36D9A4 +:101CA000034613F8024B911E46780D4644EA062679 +:101CB000012D644624F8046BC1F340011ED949B1DB +:101CC0005E7813F8021B023D41EA0621012D24F83B +:101CD000041B13D9194611F8027B93F8018026469C +:101CE00047EA082726F8047B9B784F78043D43EAAF +:101CF0000723A3808B1C341D012DEBD8911E4B08AC +:101D0000591C00EB41000CEB810C02F0010212B1F6 +:101D10000078ACF80000BDE8F001704742F6FF73B0 +:101D2000C2F20003CB184FEA430C9CF8003010F8C5 +:101D3000011B013A43EA01232CF8043BAEE700BF44 +:101D400000F1806C38B504460CF5C0600501B5F8AB +:101D500000E0084671461546FFF794FF04F18053F2 +:101D600046F2040C03F5B8512401C4F2000C24F827 +:101D70000C5089000A8848F6BF7002EA000348F256 +:101D8000800083F03002CFF6FF7042EA00030B8040 +:101D900038BD00BFC9B201F1806C0CF5C06109010A +:101DA000B1F800C00CEB020189B21A466AE700BF25 +:101DB000F8B52C4CA5883DB9A37C042B33D0042660 +:101DC000A6742A46AEB205E0402D37D9022240263D +:101DD000A2743246E788A0684FF4C04EC4F2000EE9 +:101DE000C019BEF80010FFF74DFF46F20401C4F21F +:101DF0000001AD1BF7194FF4B84CA580E780C4F281 +:101E0000000C0E80BCF8003048F6BF7003EA0002F8 +:101E100048F2800082F03001CFF6FF7041EA000303 +:101E2000ACF80030F8BD207B01280ED006224FF41C +:101E300040501021A274BDE8F840E7E54FF00406D9 +:101E4000A674BED12E462A46C4E746F20401C4F267 +:101E5000000125734FF440500D803021BDE8F8405B +:101E6000D4E500BF040100202DE9F001002A3FD095 +:101E7000CB0740D401F1005808F540514FEA410822 +:101E8000012A31D9414631F8045B931E1C462E0AC3 +:101E90000570C3F34005831C012C46701BD945B166 +:101EA00031F8045B023C2E0A1D705E700233012C77 +:101EB00011D90D4635F8047B043C4FEA172C1F70EE +:101EC00083F801C089889E1C0F0A9970DF70291D54 +:101ED0000433012CEDD8931E59084B1C00EB430032 +:101EE00008EB830802F0010212B1B8F8002002707A +:101EF000BDE8F001704742F6FF73C2F20003CB1851 +:101F00004FEA430838F8041B013A0B0A00F8013B7A +:101F1000B6E700BF10B4C9B246F208040901C4F222 +:101F2000000431F804C00CEB020189B21A4610BC5F +:101F30009AE700BF2DE9F04F45F64446C4F200068B +:101F4000348883B0A4B2230422D4600514D461047D +:101F500006D545F64443C4F200034BF6FF721A80DF +:101F6000A20406D545F64440C4F200004DF6FF71C8 +:101F7000018003B0BDE8F08FAE4945F6444CC4F291 +:101F8000000C4FF6FF30ACF800000A689047DEE71F +:101F9000A94DA946308883B21A04D6D513F00F078D +:101FA00012D113F0100F4FF4B843C4F2000327D03E +:101FB0001A8810053DD4110469D4DFF87C8298F8A2 +:101FC0001220072AE6D12EE007F1805808F5B85113 +:101FD0004FEA810ABAF8008018F4004F7FD118F058 +:101FE000800FD7D0BAF80030944A48F60F7103EA50 +:101FF000010002EB8707AAF80000FB6C9847C9E7CD +:10200000198848F60F7001EA00021A80AB7CDFF8ED +:102010002882022B7FD0042B7DD0052B00F0A980D5 +:10202000072089F812004FF480501021FFF7EEFCD2 +:10203000B0E740F68F7002EA000146F20808198006 +:10204000C4F20008B8F800E0DFF8EC810EF10052AD +:1020500002F540534FEA430CBCF80000BCF80420E2 +:10206000010ABCF80830C0B2BCF80CE010F0600FF8 +:1020700028756975EA822B83A5F81AE0AF60AF80F6 +:10208000EF8070D10C2949D90723AB74CBE740F618 +:102090008F7C02EA0C08A3F80080AB7CDFF8988103 +:1020A000022BF1D0042BEFD0032BB9D1D9F8083093 +:1020B000002B00F0B980B9F80470002F40F08E803A +:1020C00046F2040C0021C4F2000C0523AB744FF45B +:1020D0008050ACF800103021FFF798FC6FE7574AAA +:1020E00040F68F7108EA010002EB870EAAF80000A3 +:1020F000DEF83030984772E7B5F804E0698B714537 +:102100003CBF8E46A9801EF03F0F14BF0022012263 +:1021100002232A73AB74FFF74BFE50E7474F57F883 +:10212000217011461A467346B8470128ACD195F97B +:1021300014C0BCF1000FDFDB6B8B6BB303234FF4D8 +:10214000B840AB74C4F2000001884BF68F7201EA0C +:10215000020348F2800C83F44051CFF6FF7C41EA41 +:102160000C0202802BE7334FCDF800E0BF68B84780 +:10217000DBE799F8151099F81400052902D110F041 +:102180007F0316D06F8B2B8B00972A4FEA8A7F68CC +:10219000B8470723AB7446E746F20400C4F20000D8 +:1021A0000522AA74302103804FF48050FFF72EFCE3 +:1021B00005E7B9F8161045F64C4C41F0800E1FFAB1 +:1021C0008EF0C4F2000C1B4AACF80000B9F81610EF +:1021D0001846136998470723AB7424E746F20C0BA3 +:1021E000C4F2000BBBF8002046F2080E4FEA825002 +:1021F000B5F806B04FEA905AC4F2000EBA4528BFAF +:10220000BA46BEF8001003EB0B0052461FFA8AFADA +:10221000FFF72AFECAEB07018BB2DA44AB80A5F8C0 +:1022200006A0002B8AD14BE7B9F80430002B85D1EA +:1022300046E700BFA0230020040100205024002016 +:10224000FEE700BF704700BF09480A49A0EB010044 +:1022500085464FF000000849084A41F8040B8A42BD +:10226000FBD862B64FF00000014600F009F8FEE727 +:102270000050002000040000000000202001002089 +:1022800038B50E4D0020AB6898478020FFF7D8FB8B +:102290004FF41F44C0F22404A9680120884700239A +:1022A000581C431CA342FBD1AA680020904700237E +:1022B00001330133A342FBD1EEE700BF0000000869 +:1022C00010F0030F70B403463FD0002A3BD0CDB2CC +:1022D00001E0002A37D003F8015B013A13F0030F45 +:1022E0001C46F6D1032A28D9CDB245EA05250F2A86 +:1022F00045EA054513D923461646103E1D605D602C +:102300009D60DD6010330F2EF7D8A2F1100323F08B +:102310000F0302F00F021033032A1C440DD9264686 +:102320001346043B032B46F8045BFAD8131F23F033 +:102330000303043302F00302E41822B1C9B2013AE4 +:1023400004F8011BFBD170BC70470446CAE700BF0C +:10235000001000080000020812011001FF000040F8 +:102360004B230000000201020301000009021200D9 +:1023700001010080320904000000FF00000000009D +:10238000C823002004000000CC23002044000000EB +:10239000102400201E000000302400201200000045 +:1023A0006D15002099150020B1140020551600204D +:1023B000A1140020AD1400206C23002012000000A6 +:1023C00058230020120000000403090444034600BF +:1023D000720065006500200053006F006600740005 +:1023E0007700610072006500200049006E006900FE +:1023F00074006900610074006900760065002000C7 +:102400006F00660020004A006100700061006E00ED +:102410001E034600530049004A00200055005300A7 +:102420004200200054006F006B0065006E00000049 +:1024300012034600530049004A002D0030002E00D0 +:10244000300000000000000000000000000000005C +:10245000B516002031180020B1160020E518002024 +:10246000B11600206D1700209D190020B116002024 +:1024700099170020BD170020C5190020E91700207A +:10248000B1160020BD1A0020BD1A0020BD1A002080 +:10249000BD1A0020BD1A0020BD1A0020BD1A002060 +:1024A000BD1A0020BD1A0020BD1A0020BD1A002050 +:0C24B000BD1A0020BD1A0020BD1A00203B +:0400000520001400C3 +:00000001FF diff --git a/regnual/regnual.ld b/regnual/regnual.ld index c470c1d..879b4f1 100644 --- a/regnual/regnual.ld +++ b/regnual/regnual.ld @@ -7,8 +7,8 @@ __stacks_total_size__ = __main_stack_size__ + __process_stack_size__; MEMORY { - ram0 : org = 0x20000000, len = 0x1400 - ram1 : org = 0x20001400, len = 20k - 0x1400 + ram0 : org = 0x20000000, len = 0x1a00 + ram1 : org = 0x20001400, len = 20k - 0x1a00 } vector = 0x08000000; diff --git a/src/Makefile.in b/src/Makefile.in index 15fd4e6..ff2cb45 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -195,7 +195,6 @@ ULIBS = ############################################################################## include $(CHIBIOS)/os/ports/GCC/ARMCMx/rules.mk -MCFLAGS= -mcpu=$(MCU) -mfix-cortex-m3-ldrd distclean: clean -rm -f Makefile gnuk.ld config.h *.inc diff --git a/src/gnuk.ld.in b/src/gnuk.ld.in index 83b4246..c7bb964 100644 --- a/src/gnuk.ld.in +++ b/src/gnuk.ld.in @@ -164,7 +164,6 @@ SECTIONS . = ALIGN(512); _regnual_start = .; - /* It was __ram_start__ + 0x1a00 in 1.0.x */ @CERTDO_SUPPORT_START@ .gnuk_ch_certificate :