From 400818502ffe782d81d561122f3e4b73390564d7 Mon Sep 17 00:00:00 2001 From: prog Date: Fri, 8 May 2020 02:40:41 +0200 Subject: [PATCH] Revert commit 6b8a86b938a714b0ecf704b0c569ff7d9755cb4a. --- airspy_m0/airspy_core.o | Bin 49224 -> 0 bytes airspy_m0/airspy_m0.bin | Bin 12080 -> 0 bytes airspy_m0/airspy_m0.elf | Bin 247907 -> 0 bytes airspy_m0/airspy_m0.hdr | 2 - airspy_m0/airspy_m0.hex | 759 - airspy_m0/airspy_m0.list | 11831 ---------------- airspy_m0/airspy_m0.map | 2244 --- airspy_m0/airspy_m0.o | Bin 38380 -> 0 bytes airspy_m0/airspy_m0.srec | 758 - airspy_m0/airspy_rx.o | Bin 11088 -> 0 bytes airspy_m0/airspy_usb_req.o | Bin 117860 -> 0 bytes airspy_m0/fault_handler.o | Bin 9296 -> 0 bytes airspy_m0/r820t.o | Bin 59900 -> 0 bytes airspy_m0/rom_iap.o | Bin 10868 -> 0 bytes airspy_m0/si5351c.o | Bin 21432 -> 0 bytes airspy_m0/signal_mcu.o | Bin 1815 -> 0 bytes airspy_m0/usb.o | Bin 66808 -> 0 bytes airspy_m0/usb_descriptor.o | Bin 15636 -> 0 bytes airspy_m0/usb_device.o | Bin 7224 -> 0 bytes airspy_m0/usb_endpoint.o | Bin 12828 -> 0 bytes airspy_m0/usb_queue.o | Bin 28788 -> 0 bytes airspy_m0/usb_request.o | Bin 16120 -> 0 bytes airspy_m0/usb_standard_request.o | Bin 49224 -> 0 bytes airspy_m0/w25q80bv.o | Bin 38852 -> 0 bytes airspy_m0s/airspy_m0s.bin | Bin 596 -> 0 bytes airspy_m0s/airspy_m0s.elf | Bin 60882 -> 0 bytes airspy_m0s/airspy_m0s.hdr | 2 - airspy_m0s/airspy_m0s.hex | 41 - airspy_m0s/airspy_m0s.list | 457 - airspy_m0s/airspy_m0s.map | 371 - airspy_m0s/airspy_m0s.o | Bin 3792 -> 0 bytes airspy_m0s/airspy_m0s.srec | 40 - airspy_m0s/fault_handler.o | Bin 9296 -> 0 bytes airspy_m0s/signal_mcu.o | Bin 1815 -> 0 bytes airspy_rom_to_ram/adchs.d | 15 - airspy_rom_to_ram/adchs.o | Bin 19312 -> 0 bytes airspy_rom_to_ram/airspy.dll | Bin 86016 -> 0 bytes airspy_rom_to_ram/airspy_core.d | 21 - airspy_rom_to_ram/airspy_core.o | Bin 49676 -> 0 bytes airspy_rom_to_ram/airspy_m4.d | 36 - airspy_rom_to_ram/airspy_m4.o | Bin 43980 -> 0 bytes airspy_rom_to_ram/airspy_mini_conf.d | 14 - airspy_rom_to_ram/airspy_mini_conf.o | Bin 9436 -> 0 bytes airspy_rom_to_ram/airspy_nos_conf.d | 14 - airspy_rom_to_ram/airspy_nos_conf.o | Bin 10556 -> 0 bytes airspy_rom_to_ram/airspy_rom_to_ram.bin | Bin 21556 -> 0 bytes airspy_rom_to_ram/airspy_rom_to_ram.elf | Bin 280840 -> 0 bytes airspy_rom_to_ram/airspy_rom_to_ram.hex | 1351 -- airspy_rom_to_ram/airspy_rom_to_ram.list | 9914 ------------- airspy_rom_to_ram/airspy_rom_to_ram.map | 1350 -- airspy_rom_to_ram/airspy_rom_to_ram.srec | 1351 -- airspy_rom_to_ram/airspy_spiflash.bat | 3 - airspy_rom_to_ram/airspy_spiflash.exe | Bin 98816 -> 0 bytes airspy_rom_to_ram/dfu-suffix.exe | Bin 135071 -> 0 bytes airspy_rom_to_ram/dfu-util.exe | Bin 223243 -> 0 bytes .../dfuprog_airspy/command_log.txt | 30 - .../dfuprog_airspy/lpcdfu_log.txt | 6 - airspy_rom_to_ram/dfuprog_airspy/readback.bin | Bin 21556 -> 0 bytes airspy_rom_to_ram/fault_handler.d | 10 - airspy_rom_to_ram/fault_handler.o | Bin 9392 -> 0 bytes airspy_rom_to_ram/libusb-1.0.dll | Bin 95744 -> 0 bytes airspy_rom_to_ram/lpcdfu.exe | Bin 132402 -> 0 bytes airspy_rom_to_ram/lpcdfu_log.txt | 0 airspy_rom_to_ram/m0_bin.o | Bin 12795 -> 0 bytes airspy_rom_to_ram/m0s_bin.o | Bin 1325 -> 0 bytes airspy_rom_to_ram/pthreadVCE2.dll | Bin 61952 -> 0 bytes airspy_rom_to_ram/rom_iap.d | 13 - airspy_rom_to_ram/rom_iap.o | Bin 11308 -> 0 bytes airspy_rom_to_ram/si5351c.d | 15 - airspy_rom_to_ram/si5351c.o | Bin 21732 -> 0 bytes airspy_rom_to_ram/signal_mcu.d | 1 - airspy_rom_to_ram/signal_mcu.o | Bin 1875 -> 0 bytes airspy_rom_to_ram/w25q80bv.d | 17 - airspy_rom_to_ram/w25q80bv.o | Bin 40624 -> 0 bytes .../include/libopencm3/lpc43xx/m0/nvic.h | 95 - .../include/libopencm3/lpc43xx/m0s/nvic.h | 95 - .../include/libopencm3/lpc43xx/m4/nvic.h | 133 - libopencm3/lib/lpc43xx/m0/vector_nvic.c | 85 - libopencm3/lib/lpc43xx/m0s/vector_nvic.c | 85 - libopencm3/lib/lpc43xx/m4/vector_nvic.c | 123 - 80 files changed, 31282 deletions(-) delete mode 100644 airspy_m0/airspy_core.o delete mode 100644 airspy_m0/airspy_m0.bin delete mode 100644 airspy_m0/airspy_m0.elf delete mode 100644 airspy_m0/airspy_m0.hdr delete mode 100644 airspy_m0/airspy_m0.hex delete mode 100644 airspy_m0/airspy_m0.list delete mode 100644 airspy_m0/airspy_m0.map delete mode 100644 airspy_m0/airspy_m0.o delete mode 100644 airspy_m0/airspy_m0.srec delete mode 100644 airspy_m0/airspy_rx.o delete mode 100644 airspy_m0/airspy_usb_req.o delete mode 100644 airspy_m0/fault_handler.o delete mode 100644 airspy_m0/r820t.o delete mode 100644 airspy_m0/rom_iap.o delete mode 100644 airspy_m0/si5351c.o delete mode 100644 airspy_m0/signal_mcu.o delete mode 100644 airspy_m0/usb.o delete mode 100644 airspy_m0/usb_descriptor.o delete mode 100644 airspy_m0/usb_device.o delete mode 100644 airspy_m0/usb_endpoint.o delete mode 100644 airspy_m0/usb_queue.o delete mode 100644 airspy_m0/usb_request.o delete mode 100644 airspy_m0/usb_standard_request.o delete mode 100644 airspy_m0/w25q80bv.o delete mode 100644 airspy_m0s/airspy_m0s.bin delete mode 100644 airspy_m0s/airspy_m0s.elf delete mode 100644 airspy_m0s/airspy_m0s.hdr delete mode 100644 airspy_m0s/airspy_m0s.hex delete mode 100644 airspy_m0s/airspy_m0s.list delete mode 100644 airspy_m0s/airspy_m0s.map delete mode 100644 airspy_m0s/airspy_m0s.o delete mode 100644 airspy_m0s/airspy_m0s.srec delete mode 100644 airspy_m0s/fault_handler.o delete mode 100644 airspy_m0s/signal_mcu.o delete mode 100644 airspy_rom_to_ram/adchs.d delete mode 100644 airspy_rom_to_ram/adchs.o delete mode 100644 airspy_rom_to_ram/airspy.dll delete mode 100644 airspy_rom_to_ram/airspy_core.d delete mode 100644 airspy_rom_to_ram/airspy_core.o delete mode 100644 airspy_rom_to_ram/airspy_m4.d delete mode 100644 airspy_rom_to_ram/airspy_m4.o delete mode 100644 airspy_rom_to_ram/airspy_mini_conf.d delete mode 100644 airspy_rom_to_ram/airspy_mini_conf.o delete mode 100644 airspy_rom_to_ram/airspy_nos_conf.d delete mode 100644 airspy_rom_to_ram/airspy_nos_conf.o delete mode 100644 airspy_rom_to_ram/airspy_rom_to_ram.bin delete mode 100644 airspy_rom_to_ram/airspy_rom_to_ram.elf delete mode 100644 airspy_rom_to_ram/airspy_rom_to_ram.hex delete mode 100644 airspy_rom_to_ram/airspy_rom_to_ram.list delete mode 100644 airspy_rom_to_ram/airspy_rom_to_ram.map delete mode 100644 airspy_rom_to_ram/airspy_rom_to_ram.srec delete mode 100644 airspy_rom_to_ram/airspy_spiflash.bat delete mode 100644 airspy_rom_to_ram/airspy_spiflash.exe delete mode 100644 airspy_rom_to_ram/dfu-suffix.exe delete mode 100644 airspy_rom_to_ram/dfu-util.exe delete mode 100644 airspy_rom_to_ram/dfuprog_airspy/command_log.txt delete mode 100644 airspy_rom_to_ram/dfuprog_airspy/lpcdfu_log.txt delete mode 100644 airspy_rom_to_ram/dfuprog_airspy/readback.bin delete mode 100644 airspy_rom_to_ram/fault_handler.d delete mode 100644 airspy_rom_to_ram/fault_handler.o delete mode 100644 airspy_rom_to_ram/libusb-1.0.dll delete mode 100644 airspy_rom_to_ram/lpcdfu.exe delete mode 100644 airspy_rom_to_ram/lpcdfu_log.txt delete mode 100644 airspy_rom_to_ram/m0_bin.o delete mode 100644 airspy_rom_to_ram/m0s_bin.o delete mode 100644 airspy_rom_to_ram/pthreadVCE2.dll delete mode 100644 airspy_rom_to_ram/rom_iap.d delete mode 100644 airspy_rom_to_ram/rom_iap.o delete mode 100644 airspy_rom_to_ram/si5351c.d delete mode 100644 airspy_rom_to_ram/si5351c.o delete mode 100644 airspy_rom_to_ram/signal_mcu.d delete mode 100644 airspy_rom_to_ram/signal_mcu.o delete mode 100644 airspy_rom_to_ram/w25q80bv.d delete mode 100644 airspy_rom_to_ram/w25q80bv.o delete mode 100644 libopencm3/include/libopencm3/lpc43xx/m0/nvic.h delete mode 100644 libopencm3/include/libopencm3/lpc43xx/m0s/nvic.h delete mode 100644 libopencm3/include/libopencm3/lpc43xx/m4/nvic.h delete mode 100644 libopencm3/lib/lpc43xx/m0/vector_nvic.c delete mode 100644 libopencm3/lib/lpc43xx/m0s/vector_nvic.c delete mode 100644 libopencm3/lib/lpc43xx/m4/vector_nvic.c diff --git a/airspy_m0/airspy_core.o b/airspy_m0/airspy_core.o deleted file mode 100644 index 9d32ad523d8f89ed56b746d03e0e1f24d815e026..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49224 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 diff --git a/airspy_m0/airspy_m0.bin b/airspy_m0/airspy_m0.bin deleted file mode 100644 index 36ad40cf07b30e2aab36ed1534d10ce0ce2d85bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12080 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 diff --git a/airspy_m0/airspy_m0.elf b/airspy_m0/airspy_m0.elf deleted file mode 100644 index 06d65eadb671620b0d9a128fcf20fae72bfadffd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247907 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%0DUJHLgmpBkS>LP2lx))yMTWL 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
sZz%qQSKqeH^gTr&zN~v#yZPB4cz8Z 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 H8KLUGeZNM! diff --git a/airspy_m0/airspy_m0.hdr b/airspy_m0/airspy_m0.hdr deleted file mode 100644 index 364d8d5..0000000 --- a/airspy_m0/airspy_m0.hdr +++ /dev/null @@ -1,2 +0,0 @@ -#define AIRSPY_FW_GIT_TAG "v1.0.0-rc10-4-g8a575d6-dirty" -#define AIRSPY_FW_CHECKIN_DATE "2020-05-07" diff --git a/airspy_m0/airspy_m0.hex b/airspy_m0/airspy_m0.hex deleted file mode 100644 index 4cf143e..0000000 --- a/airspy_m0/airspy_m0.hex +++ /dev/null @@ -1,759 +0,0 @@ -:020000042000DA -:10C00000E00F002055E5002051E50020D5CC0020B0 -:10C010000000000000000000000000000000000020 -:10C0200000000000000000000000000051E50020BA -:10C03000000000000000000051E5002051E5002054 -:10C040004DE50020D9C100204DE500200000000092 -:10C050004DE500204DE500204DE500204DE5002098 -:10C0600025DB00204DE500204DE500204DE50020BA -:10C070004DE500204DE500204DE500204DE5002078 -:10C080004DE500204DE500204DE500204DE5002068 -:10C090004DE500204DE500204DE500204DE5002058 -:10C0A0004DE500204DE500204DE500204DE5002048 -:10C0B0004DE500204DE500204DE500204DE5002038 -:10C0C00008B503695868002801D000F015F900F0A0 -:10C0D000F9F808BD054B0122196848700A70BFF3D2 -:10C0E0004F8F40BF08680028FCD170476CEC0020DF -:10C0F000054B0122196848700A70BFF34F8F40BF8B -:10C1000008680028FCD1704770EC002038B5204B3F -:10C11000051C1868012245700270BFF34F8F40BFA5 -:10C1200001680029FCD11B4C2368188B02F04EF8E3 -:10C130002068408B02F064F86AB2002A12DA7F208D -:10C140002168054018225543081C0431CB6F483044 -:10C150005919096901F020F82468201C043448307A -:10C16000E36F0DE0182321685D438A6F081C5119A5 -:10C170004830096901F010F82468201CA36F48308A -:10C180005D19297D01F028F8034A0120106038BDAF -:10C1900078EC002028EF002000F0002010B5041CEF -:10C1A00001F040F80A4B0222186844700270BFF395 -:10C1B0004F8F40BF01680029FCD1064C2368188BC3 -:10C1C00002F004F82068808B02F01AF810BDC04617 -:10C1D00078EC002028EF0020014B00221A60704705 -:10C1E0003031044070B58CB000F072FC274B01ACCC -:10C1F0001868483001F04AF8254801F0B5FE01F012 -:10C20000F5FA244D0020291C01F0EEFB224801F034 -:10C210005FFD224801F05CFD214801F059FD2148F5 -:10C2200001F056FD204801F035FC204801F032FCB9 -:10C230003A202070201C01F04FFA218B002903D1F5 -:10C24000606AA16A00F0C4FC0820FF2102F042FAF3 -:10C250000120011C02F03EFA012002F02FFA281CF6 -:10C2600001F006FC124A134B134D16681868296832 -:10C2700020BF346802680B689C42F9D00F4E10480A -:10C28000A11901F0B1FD2A681460EBE728EF002046 -:10C29000C1C000201CEE002048EE002068EE002007 -:10C2A00058EE0020F0EE002078EE0020C8EE0020CE -:10C2B00074EC00207CEC002080EC0020004000208A -:10C2C00000EF002038B5041C00F0F6FB074D012CF0 -:10C2D00006D1074801F0DEFB2878FFF717FF02E0E0 -:10C2E0002878FFF75BFF034B1C7038BD00F500207A -:10C2F00000EF002004F00020014B18787047C04682 -:10C3000004F0002008B543781B2B06D8054A9B0093 -:10C310009B58002B04D0984703E04842484100E076 -:10C32000012008BD90F3002008B5002901D100F0DC -:10C33000B7FC002008BD70B5051C00200C1E84420F -:10C340000DD16E880120B21E0B2A08D800F0EAFF3A -:10C35000300401F0C7F8A86901F053FD201C70BD3E -:10C3600038B50023994219D181880123FF2915D8B6 -:10C3700044889C4212D80A4D4A0952191F25294067 -:10C3800092008B401168012C01D10B4301E09943CD -:10C390000B1C1360806901F034FD0023181C38BDAC -:10C3A00000D8031038B5051C0C1E07D100F0BAFFE9 -:10C3B000201C01F097F8A86901F023FD002038BD8A -:10C3C000F8B5041C00292AD1164B81881868021C74 -:10C3D000763215882E1C8D4200D90E1CB2B212493D -:10C3E000402A02D8002A03D000E04022002303E0C4 -:10C3F0000D60A06904220DE0934209DA18265E431D -:10C40000876F9D00BE19376901337E004E51F3E7F7 -:10C41000A069920001F0E8FCE06901F0F2FC002064 -:10C42000F8BDC04628EF002000F40020002238B5F7 -:10C43000041C0D1E95421AD183880122FF2B16D8A9 -:10C440000C4859090918880001681F200340101C76 -:10C450009840031C0B40591E8B41211C237208314C -:10C46000A06901F0C1FCE06901F0CBFC2A1C101CA2 -:10C4700038BDC04600D8031070B50025041C0E1E40 -:10C48000AE4217D18388042B08D1C2880A4980693B -:10C4900001F0AAFCE06901F0B4FC0BE00125052BDA -:10C4A00008D1C2880549806901F09EFCE06901F06D -:10C4B000A8FC351C281C70BDAFEC002082ED0020CC -:10C4C00010B5041C002909D10172011C08318069D2 -:10C4D000012201F089FCE06901F093FC002010BD0D -:10C4E00010B5041C00290AD18388012B02D100F069 -:10C4F000DDFB01E000F0E4FBA06901F082FC00201C -:10C5000010BD000010B5041C00290FD1084B217983 -:10C510001868483000F0E2FD211C20720831A06943 -:10C52000012201F061FCE06901F06BFC002010BD0C -:10C5300028EF002010B5041C00290FD1084B2179E9 -:10C540001868483000F0C1FD211C20720831A06934 -:10C55000012201F049FCE06901F053FC002010BD0C -:10C5600028EF002010B5041C00290FD1084B2179B9 -:10C570001868483000F0A2FD211C20720831A06923 -:10C58000012201F031FCE06901F03BFC002010BD0C -:10C5900028EF002010B5041C00290FD1084B217989 -:10C5A0001868483000F083FD211C20720831A06912 -:10C5B000012201F019FCE06901F023FC002010BD0C -:10C5C00028EF002010B5041C00290FD1084B217959 -:10C5D0001868483000F064FD211C20720831A06901 -:10C5E000012201F001FCE06901F00BFC002010BD0C -:10C5F00028EF002010B5041C002905D109490422A8 -:10C60000C06901F0F1FB0BE0012909D1064B054996 -:10C6100018680968483000F0EFFCA06901F0F1FBF0 -:10C62000002010BD88F3002028EF002070B5041C06 -:10C630000020814255D1A3882A4A3F2B06D8106892 -:10C6400076300188012099422ADC4AE0FA201268FB -:10C6500080005843131C76331B8899420CDA182546 -:10C660004D43966F75192E69B500854202D11E4A59 -:10C6700011701AE00131F0E7111C7E3109880023A6 -:10C6800000E001338B420EDA151DEE6F18255D4375 -:10C6900076193569AE008642F3D1802041420B43C2 -:10C6A000114E337001E001201BE0FFF725FE0E4D17 -:10C6B000061E012E02D12878FFF770FD2878FFF7BB -:10C6C00009FD012E02D12878FFF720FD0122211C4F -:10C6D00022720831A06901F087FBE06901F091FB4B -:10C6E000002070BD28EF002000F5002070B5041C6C -:10C6F0000020814221D1A388012083421DD8DEB2CF -:10C70000FFF7FAFD051E012D03D10C480078FFF755 -:10C7100045FD301CFFF7ECFC012D03D107490878DB -:10C72000FFF7F4FC0122211C22720831A06901F0FC -:10C730005BFBE06901F065FB002070BD00F50020A7 -:10C7400070B5002592B0061CA94226D107AC36234D -:10C75000201C237000F0C0FF208BA84201D00125CF -:10C760001BE0E169226A3A23201C019102922370A6 -:10C7700000F0B2FF208B0028F1D1E169226A636AE0 -:10C78000A46A03910492B06901A918220593069442 -:10C7900001F02AFBF06901F034FB281C12B070BDD7 -:10C7A00038B5051C002922D1124C00220B1980201B -:10C7B00001311A7043009942F6D10F49201C0968D3 -:10C7C000083102F0B5F8201C02F0BAF80B49001944 -:10C7D00002F0AEF8201C02F0B3F8021D03208243E1 -:10C7E000211CA86901F000FBE86901F00AFB0020A8 -:10C7F00038BDC04600F4002028EF002050E900209A -:10C80000F8B5051C002931D1C48847888288802664 -:10C8100001208640B44236D83804104380230719DB -:10C82000194E5A03974217D9032C0DD90323271CFD -:10C830001F4009D1034008D1A1089A0017580133BD -:10C84000B7508B42F9D30BE000E0391CA14207D26C -:10C850000A5C72540131F9E7211C321C00F0F2FE2F -:10C86000A869311C221C01F0BFFA0BE0002001294D -:10C8700009D1EA888023081C59008A4203D8E86954 -:10C8800001F0BFFA0020F8BD00F4002070B5041CD0 -:10C890000D1E17D1E288012380264088A1889E4082 -:10C8A000B2422AD8050480200D4341038D4224D88A -:10C8B000AE188E4221D81249E06901F095FA00F0D5 -:10C8C00031FD19E00023012917D1E18880262B1CB6 -:10C8D0004088A2887500A9420FD800041043802226 -:10C8E0005603B04209D84518B54206D8044A00F0AC -:10C8F00069FEA06901F085FA0023181C70BDC046CE -:10C9000000F4002070B50025041C0E1EAE4214D1A8 -:10C9100081880125FF2910D8094BC9B21868483011 -:10C9200000F0F4FA211C2A1C20720831A06901F0E1 -:10C930005BFAE06901F065FA351C281C70BDC04641 -:10C9400028EF002038B5041C00200D1E854211D1AF -:10C95000A1880120FF290DD86288FF2A0AD8064B3A -:10C96000C9B21868D2B2483000F08EFAA06901F05E -:10C9700048FA281C38BDC04628EF002070B50025B5 -:10C98000041C0E1EAE4211D180880125FF280DD84F -:10C99000C0B200F0C0F9211C2A1C20720831A06925 -:10C9A00001F022FAE06901F02CFA351C281C70BD58 -:10C9B00038B5041C00200D1E85420ED1A38801202D -:10C9C000FF2B0AD86188FF2907D8D8B2C9B200F076 -:10C9D00091F9A06901F015FA281C38BD38B500237B -:10C9E000051C0C1E9C420AD140880123984206D89F -:10C9F000C0B2FFF767FCA86901F003FA231C181CFA -:10CA000038BD000038B5002399421BD1828801232C -:10CA1000FF2A17D844889C4214D80B4D5109491954 -:10CA20001F252A4089009340012C03D18025AA00AC -:10CA3000891802E0A022940009190B60806901F0B6 -:10CA4000E0F90023181C38BD00D8031010B5041CF1 -:10CA50000020814222D1A2880120FF2A1ED810493D -:10CA600053095B181F210A409B0090401A6810422E -:10CA700003D080218A009B1801E00133FF331B683B -:10CA8000211C1840431E9841207208310122A069E0 -:10CA900001F0AAF9E06901F0B4F9002010BDC04628 -:10CAA00000D8031080239A00801801607047A023EB -:10CAB0009A0080180160704708B5034800F0CEFE68 -:10CAC000024800F0CBFE08BD00EF0020A0EE0020E1 -:10CAD0001F4B2049204800221A7008601F4B204A33 -:10CAE000204821491A6058609960204A204821490D -:10CAF000DA6018615961204A204821499A61D86159 -:10CB00001962204A204821495A629862D962204A13 -:10CB1000204821491A6358639963204A20482149D3 -:10CB2000DA63214A18645964204821499A64214AE9 -:10CB3000D8641965204821495A65214A9865D96504 -:10CB40001A6620482049214A58669966DA66704775 -:10CB500000F5002088F3002000E1F50590F30020A7 -:10CB600029C30020DDC90020B1C900207DC90020F3 -:10CB700045C9002005C90020A5C300208DC800209C -:10CB800001C80020C1C40020A1C7002041C7002067 -:10CB90002DC60020F5C50020C5C5002095C5002084 -:10CBA00065C5002035C5002005C5002079C40020DA -:10CBB000E1C4002005CA00204DCA002061C3002046 -:10CBC0002DC40020C1C30020EDC6002037C30020C3 -:10CBD000F0B52D4B050E2C091E5D0F2425402B4A68 -:10CBE0005F5DFF25967517762E04071C37403D0CB8 -:10CBF0002F09DF5D25405D5D9776FF2715773D02A4 -:10CC000005402F0A3D095D5D2740BC469577654686 -:10CC10005D5D571CFD77C7B23D095D5D2040185C26 -:10CC2000D71CFD77571DF877080E05095D5DD71DE8 -:10CC30002040185CFD770E40171C350C28373870E3 -:10CC40002F09D85D161C2A3630702540FF265D5D01 -:10CC5000171C300208402C373D70070A3E09985DCA -:10CC6000151C2740DF5D2E35161C28703036CDB2DE -:10CC700037700C402E099F5D101C195D3230343224 -:10CC800007701170F0BDC046A0E90020D7EC00206D -:10CC90000023834202D0C0460133FAE77047000008 -:10CCA000014B01221A60FEE70031054008B58021E2 -:10CCB00002488901FFF7F6FE08BDC04604600F4038 -:10CCC00008B5802102488901FFF7F1FE08BDC04682 -:10CCD00004600F40042475462C4202D0EFF3098013 -:10CCE00002E0EFF30880FFE7014B186000BEFEE7AB -:10CCF00040F7002038B50C1C051C01F09DFAC0203F -:10CD000001F0DAFA281C01F0D7FA201C01F0D4FA5D -:10CD100001F072FB38BD10B5041C01F08DFAC02083 -:10CD200001F0CAFA201C01F0C7FA01F085FAC1200F -:10CD300001F0C2FA01F00CFB041C01F05DFB201CA9 -:10CD400010BD000038B50C4B051C18680C1C020601 -:10CD500010D50A490A78002A0CD101F08DFA342046 -:10CD600001F0D0FA281C01F0CDFA201C01F0CAFA1B -:10CD700001F054FB38BDC04604620F402CEF002088 -:10CD80000021312806D9044A32381421904201D8B2 -:10CD9000024B195C081C704757020000C4E90020D0 -:10CDA00038B50E4B051C1868020616D50C490C78D0 -:10CDB000002C12D101F060FA342001F0A3FA052012 -:10CDC00001F0A0FA285D013401F09CFA1B2CF9D186 -:10CDD000002001F097FA01F021FB38BD04620F40FA -:10CDE0002CEF0020F8B5254B161C1A6880240D1C6A -:10CDF00014400CD0224900240F78002F07D10CE0FA -:10CE0000671F1D2F06D80219D3792B550134B44260 -:10CE1000F6DB32E001214B42F7E701F02DFA352035 -:10CE200001F070FA174C012E0ED8381C01F0B6FA3A -:10CE30000F2606400709A25DF8B2245C11012143C8 -:10CE4000297001F0EBFA18E02F1C731E781B984232 -:10CE50000DDA012001F0A2FA0F230340E25C000981 -:10CE6000C3B21101E25C114339700137EDE70020D4 -:10CE7000AD1901F093FA013DDAE7F8BD04620F4005 -:10CE80002CEF00205BEC00200E4B70B5061C1868E0 -:10CE90000D1C141C020603D50B490A78002A02D087 -:10CEA0007619F47170BD01F0E7F9342001F02AFA27 -:10CEB000281C01F027FA201C01F024FA01F0AEFA38 -:10CEC000EEE7C04604620F402CEF002008B54B1F70 -:10CED0001D2B02D8C3181B7B01E001235B42934248 -:10CEE00001D0FFF7D1FF002008BD10B54C1F1D2C4D -:10CEF00008D80419247B9C431340221C1A43FFF7D3 -:10CF0000E5FF01E00120404210BD000038B5044DAE -:10CF10004A1C0C1CD2B2291CFFF764FF285D38BDE7 -:10CF200044F70020F7B50568041C0E1C00235F1CA5 -:10CF3000311C2F4AB94088182E49884203D93B1E1C -:10CF4000052BF4D100E01F1C7A01D2B2201C102165 -:10CF5000E023FFF7CAFF002848DB0137690C6808A7 -:10CF6000BE40019000917018291C01F0CDFB031CFC -:10CF70000D3BDAB2071C90088100531A9A01801801 -:10CF8000C2B21421201CFFF7A1FF00282EDBFFB244 -:10CF90007D43761B04D10822201C1221131C23E0A0 -:10CFA000009D002776193B1C019ADA40964206D371 -:10CFB0008021080218410743BFB2B61A02D00133DC -:10CFC000102BF1D1FAB2201C1521FFF77FFF0028AA -:10CFD0000CDB3A0A201C1621FFF778FF002805DB3E -:10CFE000201C122100220823FFF77FFFFEBDC04650 -:10CFF00080F17F968038F57EF8B5264B244A041CD4 -:10D000000D1C8768081C002101F0CEFB081CFFF7EF -:10D01000B7FE03267043204908230E183278201CDF -:10D020001721FFF762FF00282EDB7278201C1A21DF -:10D03000C323FFF75AFF002826DBB278201C1B21F0 -:10D04000FFF744FF00281FDB201C102108220B23C0 -:10D05000FFF74BFF002817DB201C082100223F238D -:10D06000FFF743FF00280FDB201C092100223F238C -:10D07000FFF73BFF002807DBE919201CFFF752FFF1 -:10D08000002801DB65600020F8BDC046C046C046F0 -:10D09000C7100000000000001CEC0020C046C04685 -:10D0A00008B50A1C0F230521FFF71FFF08BD08B5AF -:10D0B0000A1C0F230721FFF718FF08BD08B50A1C3B -:10D0C0000F230C21FFF711FF08BD08B54A424A4162 -:10D0D000120105211023FFF708FF08BD08B50A1E3D -:10D0E00000D0102207211023FFF7FFFE08BD00002B -:10D0F00037B5041C0525201C0B2108226023FFF7EF -:10D10000F4FE002843DB0422201C0F21131CFFF730 -:10D11000ECFE00283BDB201C102100220323FFF73C -:10D12000E4FE002833DB201C1949FFF7FBFE002832 -:10D130002DDB1022201C0B21131CFFF7D6FE00282C -:10D1400025DB1448FFF7A4FD201C0B21002210232F -:10D15000FFF7CBFE00281ADB201C0F21002204233E -:10D16000FFF7C3FE002812DB201C05226946FFF7EB -:10D1700039FE6B461A790F20104001D00F2805D1D7 -:10D18000013D002DB7D10121484200E000203EBD05 -:10D1900000C63E051027000038B50E4B041C0022C7 -:10D1A00081600C301A70FFF7FBFD6168201CFFF7EF -:10D1B00023FF201C6568FFF79BFF6560002803DAEA -:10D1C000201CFFF795FF6560291C201CFFF714FF4A -:10D1D00038BDC0462CEF0020F0B5114F87B001AE2E -:10D1E000041C0D1C301C391C042201F0FFFA391DEF -:10D1F00002A8102201F0FAFA0F202B0902A905401B -:10D20000F65C4A5DB02506432A43201C0A21FFF73D -:10D210005DFE201C0B21321CFFF758FE07B0F0BD4D -:10D22000B0E9002008B50520A021FFF78BFD0620FE -:10D23000D021FFF787FD07200021FFF783FD08209D -:10D240004021FFF77FFD0920C021FFF77BFD0A2069 -:10D250007021FFF777FD0C20A021FFF773FD0F2051 -:10D260002A21FFF76FFD11200321FFF76BFD172027 -:10D27000F421FFF767FD19200C21FFF763FD024B36 -:10D28000012200201A7008BD2CEF002008B5044BC5 -:10D2900000220C301A70FFF783FDFFF7C3FF08BDB3 -:10D2A0002CEF002070B50B4D80242401281C211C7C -:10D2B000FFF7FDFB0521002001F022F9FF210020EE -:10D2C00001F01EF9211C061C281CFFF7EBFBF0B235 -:10D2D00070BDC04614600F4070B5114D802424010C -:10D2E000281C211CFFF7E3FBAB21002001F008F90B -:10D2F000FF21002001F004F9FF21002001F000F9D6 -:10D30000FF21002001F0FCF8FF21002001F0F8F8D7 -:10D31000211C061C281CFFF7C5FBF0B270BDC046DF -:10D3200014600F40F0B58022314B900387B0186035 -:10D33000F221304800F048FF2F48F02100F044FF70 -:10D340002E48F02100F040FF2D48F02100F03CFF76 -:10D350002C48F42100F038FF2B48F42100F034FF72 -:10D360002748F52100F030FF2648F52100F02CFF7A -:10D370002048F22100F028FF1F48F02100F024FF90 -:10D38000224D1E48F021C02700F01EFF204C1E48F1 -:10D39000F4213F02802600F017FF3601281C391CBB -:10D3A000FFF780FB311C201CFFF77CFB2968022063 -:10D3B0000F432F6022680025164326602B1C009027 -:10D3C0000190029503950495281C07212A1C01F061 -:10D3D00037F8104B1D701F1C3C78132C05D0152CF2 -:10D3E00003D0FFF779FF3870F6E707B0F0BDC0460D -:10D3F000043105408C610840906108409461084008 -:10D40000986108409C610840A061084004600F409A -:10D4100014600F4064F70020802138B50901051C15 -:10D420002048FFF744FB204B1878132819D100201F -:10D430004B2101F065F804240020FF21013C01F09C -:10D440005FF8002CF8D10020FF2101F059F8285591 -:10D450000134082CF7D1802212481101FFF722FB7A -:10D4600038BD1528F7D14B21002001F049F80020E4 -:10D47000011C01F045F80121002001F041F80221D2 -:10D48000002001F03DF80020FF2101F039F80024D0 -:10D490000020FF2101F034F828550134082CF7D181 -:10D4A000D9E7C04614600F4064F7002008B5FFF7C5 -:10D4B000F9FEC307FBD408BD38B5094D802424010B -:10D4C000FFF7F4FF281C211CFFF7F1FA06210020CA -:10D4D00001F016F8281C211CFFF7E4FA38BDC046FD -:10D4E00014600F4038B5174D0023041C2B702878AA -:10D4F000132805D0152803D0FFF7EEFE2870F6E7B5 -:10D50000FFF7DAFFFFF7D2FF80210F480901FFF78D -:10D51000CEFAD821002000F0F3FF2202110E2504DC -:10D52000002000F0EDFF290E002000F0E9FFE1B23D -:10D530000020802400F0E4FF03482101FFF7B2FA45 -:10D5400038BDC04664F7002014600F40F8B5C7B27C -:10D55000161C8023CA19041C0D1C580082422ED8A8 -:10D5600080214A03531B9C4229D8FFF7A5FFFFF7F0 -:10D570009DFF802112480901FFF799FA022100203E -:10D5800000F0BEFF2002010E2404002000F0B8FFCE -:10D59000210E002000F0B4FFB9B2002000F0B0FF6F -:10D5A000341CA71BAF4205DA2178002000F0A8FF49 -:10D5B0000134F6E7802502482901FFF773FAF8BD28 -:10D5C00014600F40F8B5041C0D1C171CFFF784FEF7 -:10D5D000132801D01528F9D18023580385422FD86C -:10D5E00084422DD82A1982422AD880267300E1B2BB -:10D5F000581A86B2B54202D2AEB2002E07D0201C15 -:10D600003A1C311CFFF7A2FFA419BF19AD1B261C41 -:10D610003A1B611992198B1BFF2B07D98021301CF3 -:10D6200049000136FFF792FFFF36F1E7280A0602AC -:10D63000EDB23019BA19002D02D0A9B2FFF786FF5A -:10D64000F8BD0000F8B58023051C0E1C141C5803FF -:10D65000814231D885422FD84A1982422CD8FFF70F -:10D6600025FF802115480901FFF721FA0B21002031 -:10D6700000F046FF290C002000F042FFFF27290A96 -:10D680003940002000F03CFF291C3940002000F008 -:10D6900037FF0020391C00F033FFA519AC4206D03B -:10D6A0000020FF2100F02CFF20700134F6E78024D9 -:10D6B00002482101FFF7F6F9F8BDC04614600F409B -:10D6C000034B044918684018431E98417047C046F0 -:10D6D0000001401088A9CBED38B5041CFFF7F0FF1E -:10D6E000051E06D0104D211C18312A68201C9047B9 -:10D6F00018E0FFF717FE2378362B08D03A2B0ED10F -:10D70000201CE56125622430FFF786FE05E0074A0C -:10D7100007481368E36101682162258302E08020E5 -:10D7200041002183208B38BD0001401000320440AD -:10D7300000500440074B0849084A1860084B08602D -:10D740001060196801401960064B1A681040186093 -:10D750007047C046786100407C61004044610040F1 -:10D76000AC610040BC610040044B19680142FBD130 -:10D77000034B18601A680242FCD17047B061004048 -:10D78000B46100400C4A0D4B11680D4819401160FE -:10D7900002681A4002600B480B4A01681940016098 -:10D7A000106818401060094A094811681940116052 -:10D7B0000268134003607047C06100407FFF7FFF35 -:10D7C000C4610040C8610040CC610040D0610040AD -:10D7D000D46100400F2203061040D90F40000B18FF -:10D7E000014A99018818704700F80020054A8023F3 -:10D7F0009802002110601160034A13680342FBD0B5 -:10D800007047C046003105405031054038B50469C5 -:10D810000D1C201CFFF7DEFFC368C0229343856008 -:10D82000C3600F20204001218140034D0B1C2006C6 -:10D8300000D50B042B6038BDB0610040026938B5DB -:10D84000041C0F25154000F06DFA23690120A84043 -:10D850001A0600D50004FFF787FF38BD036910B52D -:10D860000F21041C1048194080220918134205D0CA -:10D87000890008680D4B03400B6003E08B001868BB -:10D8800090431860201C00F04DFA21690F220A40D5 -:10D8900001209040090600D50004FFF74BFF201C33 -:10D8A000FFF7CCFF10BDC04670180010FFFF7FFFD0 -:10D8B00010B504690F23234007490122200603D530 -:10D8C0009A400868140402E09A400868141C20403A -:10D8D000431E984110BDC046B8610040F8B50369C9 -:10D8E0000A60161C0F22051C1A40134801211C0651 -:10D8F00003D5914004680F0402E0914004680F1CB6 -:10D900003C40621E9441002C15D10C4C80202268B2 -:10D91000C7013A432260281CFFF7CAFF2168394239 -:10D92000F3D02268064B13402360002803D1281C43 -:10D93000311CFFF76BFFF8BDB06100404061004053 -:10D94000FFBFFFFF38B5051C0C1C281CFFF7B0FFFC -:10D950000028FAD10123281C2360211CFFF756FF61 -:10D9600038BD000002690F230448134019188B00CA -:10D970001A68034802431A607047C04670180010C6 -:10D9800001000100084B021C196801208A420AD1DB -:10D990000648C02302681905F820114002068818BD -:10D9A000434258410130704740F3002084610040F9 -:10D9B000034B1A68904202D1024849060160704741 -:10D9C00040F3002054610040054B1A68904205D195 -:10D9D000480680214A04034B02431A607047C04640 -:10D9E00040F300205461004008B500282BD11648B0 -:10D9F000164B0268196020218A430260FFF7C2FEBD -:10DA000001235842FFF796FE01204042FFF7ACFE8B -:10DA10000F4B01211A6802208A431A6018601868A7 -:10DA200002210B4A0842FAD10A4B092019600A491F -:10DA30000A4B086010680A490340136009480A4A03 -:10DA40000A4B0A60186008BD0430044040F300200F -:10DA500040610040A8610040A4610040FFFF00FF5A -:10DA6000586100404701000000F800204861004074 -:10DA700008B5064B1968884202D1082000F01EFE46 -:10DA80000348012302681A43026008BD40F30020E6 -:10DA900040610040F8B5041CFFF7D0FE63691868C8 -:10DAA000C779201C00F041FA051E06D000F052FA9A -:10DAB000071C281C00F054FA051C2669301CFFF7CF -:10DAC00089FE6B426B4180223904DF0393051943C1 -:10DAD0003943016001270021C16041600161876015 -:10DAE00041618161C161016244620F240B4834408D -:10DAF0002218930019680A4CAF00AD043D430C4056 -:10DB000025431D60320603D5C0221868160401E0C3 -:10DB10001E68C02006431E60F8BDC0467018001085 -:10DB2000F3FFF3FFF0B55D4B5D4A1968106885B0EF -:10DB300001400091196000D1ADE0CB0718D40098E6 -:10DB4000420600D4A7E0574E012437680125FFF7AD -:10DB500019FE6042FFF7EEFD6842FFF705FE381C34 -:10DB60000021FFF725FF381C002100F003FA92E0A6 -:10DB70004D4F00263B680393B3425DD14B4E0024CA -:10DB80003768A74270D1DAE7301CFFF723FE446AFA -:10DB9000002C58D0206A002855D02369181C019306 -:10DBA000FFF718FE011C28310A78051C2270293560 -:10DBB0002B78011C63702A310A78051CA2702B3562 -:10DBC0002B78011CE3702C310A78051C22712D354D -:10DBD0002B78011C63712E310A782F30A2710078E6 -:10DBE000A569E0710198FFF7F5FD031C283319784A -:10DBF000021C297029321378011C6B702A310A78B3 -:10DC0000031CAA702B331978021CE9702C3213788C -:10DC1000011C2B712D310A78031C6A712E3319787F -:10DC20002F30A9710078E871029D226A3D60201CA6 -:10DC300090470136062EA1D00121039AB1400291EE -:10DC40000A42F6D0A0E7029D3D60F2E73560201C55 -:10DC5000FFF7C0FD406A00280BD129040F420DD107 -:10DC60000134062C00D16AE70125A5402F42F4D0EB -:10DC7000ECE7436A002BF0D09847EEE7201C3160B8 -:10DC80008030FFF7A7FD406A0028E9D0426A002AE9 -:10DC9000E6D09047E4E705B0F0BDC04644610040DF -:10DCA0004861004040F30020AC610040BC6100408E -:10DCB00003690F211A060B40D00F5B001A180349A5 -:10DCC00090004058002800D1FEE7704744F3002040 -:10DCD000036870B51C690F2221061440CD0F660041 -:10DCE000AC190E4BA100CA58002A00D0FEE7C8505C -:10DCF000816844680B1C651EAA4206D280331E1C34 -:10DD0000803E336070660132F6E7054D00236219EC -:10DD1000D6018C192360606670BDC04644F30020B4 -:10DD2000FFFFFF0108B5FFF7C3FF72B6C368002B02 -:10DD300007D0C36819685A6EC16091681960936012 -:10DD4000F4E762B608BD000038B50C1C151CFFF7DF -:10DD5000AFFF8368002B42D072B683680022196837 -:10DD600081601A6062B6012119641E492A040A43BF -:10DD70005A64802251016218110B0A0380219C64AD -:10DD8000DA648A01A1180A0B1103C02219659101F6 -:10DD90006218110B0A0380215A65CA01A418210BCD -:10DDA0000A039A651D6672B65D6EEC68002C0DD094 -:10DDB000E9680A68002A01D0111CFAE71A1C0B60F6 -:10DDC000006840314032FFF789FD05E0191CEB6027 -:10DDD00000684031FFF7B6FD62B6002001E0012087 -:10DDE000404238BD8080000070B5061C0D1C141C1C -:10DDF000301C291C221CFFF7A7FF0130F8D000209F -:10DE000070BD08B500210A1CFFF7EEFF08BD10B574 -:10DE1000FFF74EFF002800D1FEE7C368002B10D0AB -:10DE20005A6C68210A4200D0FEE7110609D41A682C -:10DE3000596EC26072B68C681C608B6062B6131C2F -:10DE4000ECE710BD10B502786023041C1340402B92 -:10DE50000FD006D8002B09D0202B12D10B484268D6 -:10DE600009E0602B0DD1094BDA6804E0074A12681B -:10DE700001E006488268002A03D0201C9047002851 -:10DE800002D0201CFFF76EFD10BDC0467CE90020CB -:10DE900008B50021FFF7D6FF08BD10B50378041CB4 -:10DEA000DA090221002A00D10121FFF7CBFF201C53 -:10DEB000FFF7ADFF10BD10B50378041CDA0901218E -:10DEC000002A00D10221FFF7BDFF201CFFF79FFFB2 -:10DED00010BD10B5041CC38848780A78022801D008 -:10DEE000072803D1CA78887812020243A0699A42AF -:10DEF00000D91A1CFFF778FFE069FFF782FF0020C6 -:10DF000010BD436970B5DD68002408CD002B0AD030 -:10DF10001E7A8E42F9D1944203D11968FFF7D9FFD6 -:10DF200002E00134F1E7012070BD436910B51B69BF -:10DF3000021C002B0CD018680378002B08D0417805 -:10DF4000052903D181781469A14202D0C018F3E7F2 -:10DF5000181C10BD427903791102081C1843704740 -:10DF6000C078032318407047014B18607047C046C3 -:10DF700074F3002070B5041C0D1E0ED0C668002E70 -:10DF800018D0FFF7FFFC08CE002B13D01A7A82427C -:10DF9000F9D15968A942F6D100E00B1C20698342EF -:10DFA00000D02361044B1D68002D01D0201CA84720 -:10DFB000012000E0002070BD74F30020F8B5041CBF -:10DFC00040780E1C0B2800D9EAE000F093FB062AEB -:10DFD000E93EE9AF70E9CCBA53630025A94200D00D -:10DFE000DFE022781F210A40012A16D0AA4211D070 -:10DFF000022A00D0D5E0A7886B480F233B401E18AB -:10E00000B1000F68694B6A493B40581E83410B8041 -:10E01000A0693BE0A069674901E0A0696649022266 -:10E0200034E00025A94200D0BBE022781F21114036 -:10E03000022900D0B5E0A7885B480F233B401E189B -:10E04000B7003A685D48104012E00025A94200D0B0 -:10E05000A7E027781F203840022800D0A1E0A6883A -:10E060000F225149324053189F0038684F4E3043B9 -:10E07000386018E00025A94200D092E022781F20E5 -:10E080000240012A00D08CE0A0694D49FFF7ACFEA8 -:10E09000E06909E00025A94200D082E022781F2330 -:10E0A0001340012B7DD1A069FFF7ABFE79E0002979 -:10E0B0005BD1E0780138062872D800F01BFB04071A -:10E0C0002171711013006169096823E06069FFF72D -:10E0D00059FCA278011C201C02290AD10DE06369B9 -:10E0E000996817E06069FFF74DFCA278022802D119 -:10E0F000201C012101E0201C0221FFF702FF0CE09F -:10E10000A078EE2802D1201C2E4904E06769002681 -:10E110007D6807E0201CFFF7DCFE051C41E086421D -:10E12000F8D0013602CD0029F9D139E000291CD1FF -:10E13000A1786069FFF748FCA069FFF762FE351C13 -:10E140002FE0002911D1A7786069391CFFF712FF71 -:10E150000125002825D0002F03D16069311CFFF76D -:10E1600027FCA06918E0002904D00222B2429B419A -:10E170005D4216E0E1880125A94212D16569267247 -:10E180002E69002E01D072682272211C0831A0690C -:10E190000122FFF729FEE069FFF733FE002500E0CA -:10E1A0000125281CF8BDC0467018001001000100B0 -:10E1B00000FB00207AF3002078F30020FEFFFEFF32 -:10E1C0007CF3002041ED002001607047064A074BB8 -:10E1D00007491A60074A0860074B1060074A6C201D -:10E1E000402118601160704708080000846C0840E6 -:10E1F00010100A4014100A4018100A4000100A407B -:10E20000074A0849C12313600B60074B074A18608F -:10E210000749084B10606C20402208601A60704764 -:10E220000C6108401061084010000E4014000E40C0 -:10E2300018000E4000000E400C4A0D490823202013 -:10E24000136008600A6813420BD10A4B082205E0EC -:10E250000868024205D1023B002B02D00868024246 -:10E26000F6D0024B202119607047C04618100A40B2 -:10E2700000100A40102700000C4A0D4908232020F6 -:10E28000136008600A6813420BD10A4B082205E0AC -:10E290000868024205D1023B002B02D00868024206 -:10E2A000F6D0024B202119607047C04618000E407E -:10E2B00000000E40102700000E4B20211A6811426A -:10E2C00001D00D4B19600D4A0B4910600820086001 -:10E2D00008490B6818420BD1094B082205E0086871 -:10E2E000024205D1023B002B02D008680242F6D060 -:10E2F0007047C04600100A4018100A4008100A4033 -:10E30000102700000E4B20211A68114201D00D4B3E -:10E3100019600D4A0B4910600820086008490B6815 -:10E3200018420BD1094B082205E00868024205D1CA -:10E33000023B002B02D008680242F6D07047C0466C -:10E3400000000E4018000E4008000E40102700008C -:10E350000E4B20201A68104201D00D4908600C4A6B -:10E3600008230A491360086803420BD1094B0822AD -:10E3700005E00868024205D1023B002B02D0086884 -:10E380000242F6D004490B68D8B2704700100A4028 -:10E3900018100A401027000008100A40124B2021D4 -:10E3A0001A68114201D0114B19600422002818D0BC -:10E3B0000D490A600D4A08230B491360086803429F -:10E3C0000BD10B4B082205E00868024205D1023B45 -:10E3D000002B02D008680242F6D006490B68D8B27A -:10E3E000704702480260E5E700000E4018000E404A -:10E3F0001027000008000E40064B20201A6810422B -:10E4000001D005490860034B0349102208201A6017 -:10E410000860704700100A4018100A40064B202080 -:10E420001A68104201D005490860034B03491022C5 -:10E4300008201A600860704700000E4018000E4067 -:10E44000F0B55F464D4656464446F0B483B09C4610 -:10E450000CAB1C780DAD2E780EAFA34610ACB146B8 -:10E460003E7827780FAB1D7801971A4B002824D0EF -:10E4700019481A4F03603C6801232343184C3B6042 -:10E480001848194FA0460023036044464B462360BA -:10E4900011435B4662461C0211432143396002214D -:10E4A0003143019E29433143CDB2056003B03CBCEA -:10E4B00090469946A246AB46F0BD0C4F0C483B60D7 -:10E4C000036801271F4307600A480B4F80460B482B -:10E4D000D9E7C04600080009980005402816054005 -:10E4E00010500C4004500C4000500C40940005406B -:10E4F000181505401030084000300840043008402E -:10E5000030B5002816D10D4D0D4B02241A68144267 -:10E51000FCD0296000280BD1094810210468214251 -:10E52000FCD104201A681042FCD02D68A8B230BD7E -:10E530000448F2E7044D034BE7E7C04608300840C3 -:10E540000C3008400C500C4008500C40FEE7C04610 -:10E550007047C0464F4A504B9A421FD2DF1C141DD1 -:10E56000381B810801318F004C4B381F4107FE18C2 -:10E57000C80F02CB1160B3420FD0002803D001CBEB -:10E5800001C4B34209D0181C20C8211C20C15B68FB -:10E590006360031D0C1DB342F5D1D219404882427D -:10E5A00016D2C41C131DE51AA908013188001018E1 -:10E5B000C41A0021650708D511601A1C04331160C4 -:10E5C000834205D01A1D1960131D11608342F9D1D1 -:10E5D0003448354988421BD20331061D8F1BBD08C4 -:10E5E00001246F1C2C40026801259047BD420FD0CA -:10E5F000002C04D008CE02259847BD4208D0341C18 -:10E6000001CC804702357668B047261DBD42F6D161 -:10E61000264B27498B421BD203311E1D8F1BBD0881 -:10E6200001246F1C2C401A6801259047BD420FD071 -:10E63000002C04D001CE02258047BD4208D0341CF6 -:10E6400008CC984702357668B047261DBD42F6D102 -:10E65000FDF7C8FD1748184988421BD20331061D33 -:10E660008F1BBD0801246F1C2C40026801259047B8 -:10E67000BD420FD0002C04D008CE02259847BD42E1 -:10E6800008D0341C01CC804702357668B047261D7F -:10E69000BD42F6D130EF002030EF00206CEC0020BE -:10E6A00004FB00206CEC00206CEC00206CEC0020E3 -:10E6B0006CEC00206CEC00206CEC00204309044A58 -:10E6C00099008B181F210840012282401A60704770 -:10E6D00000E100E01F2803D8044BC0180170704708 -:10E6E0000F22034B1040C0180170F8E700E400E06F -:10E6F00014ED00E002B4714649084900095C490084 -:10E700008E4402BC7047C046002934D00123002249 -:10E7100010B488422CD301242407A14204D28142A0 -:10E7200002D209011B01F8E7E400A14204D28142B0 -:10E7300002D249005B00F8E7884201D3401A1A432D -:10E740004C08A04202D3001B5C0822438C08A04264 -:10E7500002D3001B9C082243CC08A04202D3001B1A -:10E76000DC082243002803D01B0901D00909E3E794 -:10E77000101C10BC7047002801D00020C04307B413 -:10E78000024802A14018029003BDC04619000000D3 -:10E790000029F0D003B5FFF7B9FF0EBC4243891A38 -:10E7A0001847C0467047C0469C460304F0B51B0C92 -:10E7B00017043F0C150C1E1C041C000C7E436B43FD -:10E7C00047434543FB18300C1818874202D980276D -:10E7D0007B02ED18070CED1967467C434A4336046B -:10E7E000330CA11800044919C018F0BDF0B54F460C -:10E7F0004646C0B40F2A72D90B1C03439C0700D0B5 -:10E8000090E0171C103F3C09013427010C683B1CA9 -:10E810000460103BDE064B68CD1943608C68F60F30 -:10E820008460CB68041CC3600B1C103310349D4201 -:10E8300027D0002E0BD0196821605E686660996849 -:10E84000A160DE681033E66010349D4219D019686B -:10E8500021605E6866609968A160DE68191CE660E8 -:10E860001B69261C23614C6974618B69B361CC6997 -:10E870001031F4610B1C1036341C103310349D42DF -:10E88000E5D13F180F21B846114003294DD904396D -:10E890008E08B3000433EC18A446043B2C1C5F071D -:10E8A00008CC4146B14608C1FE0F64450FD0002E8A -:10E8B00003D080CC80C1644509D0271C08CF0E1C32 -:10E8C00008C664684C603C1D311D6445F5D149465D -:10E8D00001318E000327AD193A40464401E00D1C7A -:10E8E000061C002A1AD02F78B218F343D11801243D -:10E8F000377001360C40013596420FD0002C05D000 -:10E900002B78013533700136964207D02978317063 -:10E910006C780235747002369642F7D10CBC904682 -:10E920009946F0BD061C0D1CDDE73E1C0A1CD8E70D -:10E93000031C0A7801311A700133002AF9D170479B -:10E940000023C25C0133002AFBD1581E7047C04629 -:10E950002076312E302E302D726331302D342D67DC -:10E96000386135373564362D6469727479203230F8 -:10E9700032302D30352D303700000000BDDF002053 -:10E980000000000005C30020000000001FED002073 -:10E9900023ED002074ED0020D7EC002000000000E3 -:10E9A00030313233343536373839414243444546C5 -:10E9B000E08060000F0E0D0C0B0A09080706050425 -:10E9C000030201000101010101020202020203032C -:10E9D00003030304040404040505050505060606EF -:10E9E00006060707070707070707070708080808B5 -:10E9F000080808080808090909090909090909098D -:10EA00000A0A0A0A0A0A0A0A0A0A0B0B0B0B0B0B60 -:10EA10000B0B0B0B0B0B0B0B0B0B0B0B0B0B0C0C44 -:10EA20000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C26 -:10EA30000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C16 -:10EA40000C0C0C0C0C0C0D0D0D0D0D0D0D0D0D0DFC -:10EA50000D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0DE6 -:10EA60000D0D0D0D0D0D0D0D0D0D0D0D0D0D0E0ED4 -:10EA70000E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EB6 -:10EA80000E0E0E0E0E0E0E0E0E0E0E0E0F0F0F0FA2 -:10EA90000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F86 -:10EAA0000F0F0F0F0F0F0F0F0F0F10101010101070 -:10EAB0001010101010101010101010101010101056 -:10EAC000101010101010101011111111111111113E -:10EAD0001111111111111111111111111111111126 -:10EAE0001111111111111111111111111111111116 -:10EAF0001111111111111111111111111111111106 -:10EB000011111111111111111111111111111111F5 -:10EB100011111111111111111111111111111111E5 -:10EB200011111111111111111111111111111111D5 -:10EB300011111111111111111111111111111111C5 -:10EB400011111111111111111111111111111111B5 -:10EB50001111111112121212121212121212121299 -:10EB60001212121212121212121212121212121285 -:10EB70001212121212121212121212121212121275 -:10EB80001212121212121212121212121212121265 -:10EB90001212121212121212121212121212121255 -:10EBA0001212121212121212121212121212121245 -:10EBB0001212121212121212121212121212121235 -:10EBC0001212121212121212121212121212121225 -:10EBD0001212121212121212121212121212131313 -:10EBE00013131313131313131313131313131313F5 -:10EBF00013131313131313131313131313131313E5 -:10EC000013131313131313131313131313131313D4 -:10EC10001313131313131313131313130802DF081F -:10EC200002BE08028B08027B080269080258000233 -:10EC30004400024400023400023400022400022492 -:10EC4000000214000213000213000211000200006F -:10EC500041000041000040000040000008040C0298 -:0CEC60000A060E0109050D030B070F004A -:10EC6C000430002008300020001C00200030002060 -:10EC7C00041C0020081C00200A06000200000040B2 -:10EC8C0001000902200001010080FA0904000002C1 -:10EC9C00FFFFFF000705810240000007050202404C -:10ECAC00000000280000000001040001000000002A -:10ECBC00000000010157494E555342000057494E80 -:10ECCC00555342000000000000000036034100498B -:10ECDC00005200530050005900200053004E003ADF -:10ECEC000020002000200020002000200020002018 -:10ECFC000020002000200020002000200020002008 -:10ED0C00001201000200000040501DA16000010132 -:10ED1C00020301040309041E037700770077002E19 -:10ED2C00006100690072007300700079002E0063AE -:10ED3C00006F006D0012034D00530046005400316B -:10ED4C00003000300013000902200001010080FA9D -:10ED5C000904000002FFFFFF00070581020002000A -:10ED6C0007050202000200000E0341004900520098 -:10ED7C005300500059008E000000000105000100F6 -:10ED8C0084000000010000002800440065007600AB -:10ED9C0069006300650049006E0074006500720034 -:10EDAC00660061006300650047005500490044009F -:10EDBC0000004E0000007B0034004100460034008F -:10EDCC0031003800360035002D0042004300310080 -:10EDDC0045002D0037003400350041002D0039006E -:10EDEC003800320036002D00390037004300410056 -:10EDFC004100380045004500300034003700460023 -:10EE0C007D00000053ED0020010000000200000016 -:10EE1C000DED00208CE9002084EC00203CEE00205D -:10EE2C00000000008EEC002001000000010000003A -:10EE3C0010EE002030EE00200000000078EE0020E4 -:10EE4C000400000040F5002000000000A0EE0020AF -:10EE5C0001000000C0F2002000000000C8EE0020FD -:10EE6C0004000000C0F000200000000000000000C2 -:10EE7C000000000000000000000000000000000086 -:10EE8C001CEE0020C8EE002078EE002091DE002061 -:10EE9C009BDE0020000000000000000000000000CD -:10EEAC0000000000020000001CEE0020000000002A -:10EEBC00A0EE0020000000000FDE0020000000008B -:10EECC0000000000000000000000000080000000B6 -:10EEDC001CEE0020C8EE002078EE002000000000A0 -:10EEEC00B7DE002000EF00200100000040F0002001 -:10EEFC000000000000000000000000000000000006 -:10EF0C0000000000810000001CEE002000EF00203B -:10EF1C0000000000000000000FDE002000100020A8 -:04EF2C0001000000E0 -:040000052000E5559D -:00000001FF diff --git a/airspy_m0/airspy_m0.list b/airspy_m0/airspy_m0.list deleted file mode 100644 index 14570f7..0000000 --- a/airspy_m0/airspy_m0.list +++ /dev/null @@ -1,11831 +0,0 @@ - -airspy_m0.elf: file format elf32-littlearm - - -Disassembly of section .text: - -2000c000 : -2000c000: e0 0f 00 20 55 e5 00 20 51 e5 00 20 d5 cc 00 20 ... U.. Q.. ... - ... -2000c02c: 51 e5 00 20 00 00 00 00 00 00 00 00 51 e5 00 20 Q.. ........Q.. -2000c03c: 51 e5 00 20 4d e5 00 20 d9 c1 00 20 4d e5 00 20 Q.. M.. ... M.. -2000c04c: 00 00 00 00 4d e5 00 20 4d e5 00 20 4d e5 00 20 ....M.. M.. M.. -2000c05c: 4d e5 00 20 25 db 00 20 4d e5 00 20 4d e5 00 20 M.. %.. M.. M.. -2000c06c: 4d e5 00 20 4d e5 00 20 4d e5 00 20 4d e5 00 20 M.. M.. M.. M.. -2000c07c: 4d e5 00 20 4d e5 00 20 4d e5 00 20 4d e5 00 20 M.. M.. M.. M.. -2000c08c: 4d e5 00 20 4d e5 00 20 4d e5 00 20 4d e5 00 20 M.. M.. M.. M.. -2000c09c: 4d e5 00 20 4d e5 00 20 4d e5 00 20 4d e5 00 20 M.. M.. M.. M.. -2000c0ac: 4d e5 00 20 4d e5 00 20 4d e5 00 20 4d e5 00 20 M.. M.. M.. M.. -2000c0bc: 4d e5 00 20 M.. - -2000c0c0 : - break; - } -} - -void usb_configuration_changed(usb_device_t* const device) -{ -2000c0c0: b508 push {r3, lr} - if( device->configuration->number ) -2000c0c2: 6903 ldr r3, [r0, #16] -2000c0c4: 6858 ldr r0, [r3, #4] -2000c0c6: 2800 cmp r0, #0 -2000c0c8: d001 beq.n 2000c0ce - { - /* RECEIVER ON */ - set_receiver_mode(get_receiver_mode()); -2000c0ca: f000 f915 bl 2000c2f8 - } else - { - /* RECEIVER OFF */ - /* Configuration number equal 0 means usb bus reset. */ - set_receiver_mode(RECEIVER_MODE_OFF); -2000c0ce: f000 f8f9 bl 2000c2c4 - } -} -2000c0d2: bd08 pop {r3, pc} - -2000c0d4 : - } -} - -void set_samplerate_m4(uint8_t conf_num) -{ - set_samplerate->conf = conf_num; -2000c0d4: 4b05 ldr r3, [pc, #20] ; (2000c0ec ) - set_samplerate->cmd = SET_SAMPLERATE_CMD; -2000c0d6: 2201 movs r2, #1 - } -} - -void set_samplerate_m4(uint8_t conf_num) -{ - set_samplerate->conf = conf_num; -2000c0d8: 6819 ldr r1, [r3, #0] -2000c0da: 7048 strb r0, [r1, #1] - set_samplerate->cmd = SET_SAMPLERATE_CMD; -2000c0dc: 700a strb r2, [r1, #0] -It also sets the local event register, see Power management (sleep mode, deep sleep mode of System Control Register for more details). -Instruction for Cortex M0, M3/M4 */ -__attribute__ ((always_inline)) static inline void signal_sev(void) -{ - /* make sure all data transactions complete before next instruction is executed */ - __asm("dsb"); -2000c0de: f3bf 8f4f dsb sy - __asm("sev"); -2000c0e2: bf40 sev - signal_sev(); - - /* Wait until M4 have finished executing the command (it set the data to 0) */ - while(1) - { - if(set_samplerate->raw == 0) -2000c0e4: 6808 ldr r0, [r1, #0] -2000c0e6: 2800 cmp r0, #0 -2000c0e8: d1fc bne.n 2000c0e4 - break; - } -} -2000c0ea: 4770 bx lr -2000c0ec: 2000ec6c .word 0x2000ec6c - -2000c0f0 : - -void set_packing_m4(uint8_t state) -{ - set_packing->conf = state; -2000c0f0: 4b05 ldr r3, [pc, #20] ; (2000c108 ) - set_packing->cmd = SET_PACKING_CMD; -2000c0f2: 2201 movs r2, #1 - } -} - -void set_packing_m4(uint8_t state) -{ - set_packing->conf = state; -2000c0f4: 6819 ldr r1, [r3, #0] -2000c0f6: 7048 strb r0, [r1, #1] - set_packing->cmd = SET_PACKING_CMD; -2000c0f8: 700a strb r2, [r1, #0] -It also sets the local event register, see Power management (sleep mode, deep sleep mode of System Control Register for more details). -Instruction for Cortex M0, M3/M4 */ -__attribute__ ((always_inline)) static inline void signal_sev(void) -{ - /* make sure all data transactions complete before next instruction is executed */ - __asm("dsb"); -2000c0fa: f3bf 8f4f dsb sy - __asm("sev"); -2000c0fe: bf40 sev - - signal_sev(); - - while(1) - { - if(set_packing->raw == 0) -2000c100: 6808 ldr r0, [r1, #0] -2000c102: 2800 cmp r0, #0 -2000c104: d1fc bne.n 2000c100 - break; - } -} -2000c106: 4770 bx lr -2000c108: 2000ec70 .word 0x2000ec70 - -2000c10c : - set_receiver_mode(RECEIVER_MODE_OFF); - } -} - -void ADCHS_start(uint8_t conf_num) -{ -2000c10c: b538 push {r3, r4, r5, lr} - -set_sample_r_params_t set_sample_r_params; - -__attribute__ ((always_inline)) static inline void start_stop_adchs_m4(uint8_t conf_num, uint8_t command) -{ - start_adchs->conf = conf_num; -2000c10e: 4b20 ldr r3, [pc, #128] ; (2000c190 ) - set_receiver_mode(RECEIVER_MODE_OFF); - } -} - -void ADCHS_start(uint8_t conf_num) -{ -2000c110: 1c05 adds r5, r0, #0 - -set_sample_r_params_t set_sample_r_params; - -__attribute__ ((always_inline)) static inline void start_stop_adchs_m4(uint8_t conf_num, uint8_t command) -{ - start_adchs->conf = conf_num; -2000c112: 6818 ldr r0, [r3, #0] - start_adchs->cmd = command; -2000c114: 2201 movs r2, #1 - -set_sample_r_params_t set_sample_r_params; - -__attribute__ ((always_inline)) static inline void start_stop_adchs_m4(uint8_t conf_num, uint8_t command) -{ - start_adchs->conf = conf_num; -2000c116: 7045 strb r5, [r0, #1] - start_adchs->cmd = command; -2000c118: 7002 strb r2, [r0, #0] -It also sets the local event register, see Power management (sleep mode, deep sleep mode of System Control Register for more details). -Instruction for Cortex M0, M3/M4 */ -__attribute__ ((always_inline)) static inline void signal_sev(void) -{ - /* make sure all data transactions complete before next instruction is executed */ - __asm("dsb"); -2000c11a: f3bf 8f4f dsb sy - __asm("sev"); -2000c11e: bf40 sev - signal_sev(); - - /* Wait until M4 have finished executing the command (it set the data to 0) */ - while(1) - { - if(start_adchs->raw == 0) -2000c120: 6801 ldr r1, [r0, #0] -2000c122: 2900 cmp r1, #0 -2000c124: d1fc bne.n 2000c120 - start_stop_adchs_m4(conf_num, START_ADCHS_CMD); - - //enable_r820t_power(); - - /* Re-Init I2C0 & I2C1 after PLL1 frequency is modified (for I2C1 also because PowerOn on R820T) */ - i2c0_init(airspy_conf->i2c_conf.i2c0_pll1_ls_hs_conf_val); /* Si5351C I2C peripheral */ -2000c126: 4c1b ldr r4, [pc, #108] ; (2000c194 ) -2000c128: 6823 ldr r3, [r4, #0] -2000c12a: 8b18 ldrh r0, [r3, #24] -2000c12c: f002 f84e bl 2000e1cc - i2c1_init(airspy_conf->i2c_conf.i2c1_pll1_hs_conf_val); /* R820T I2C peripheral */ -2000c130: 6820 ldr r0, [r4, #0] -2000c132: 8b40 ldrh r0, [r0, #26] -2000c134: f002 f864 bl 2000e200 - - if((conf_num & AIRSPY_SAMPLERATE_CONF_ALT) == AIRSPY_SAMPLERATE_CONF_ALT) -2000c138: b26a sxtb r2, r5 -2000c13a: 2a00 cmp r2, #0 -2000c13c: da12 bge.n 2000c164 - { - conf_num = conf_num & (~AIRSPY_SAMPLERATE_CONF_ALT); - r820t_init(&airspy_conf->r820t_conf_rw, airspy_conf->airspy_m0_m4_alt_conf[conf_num].airspy_m0_conf.r820t_if_freq); -2000c13e: 207f movs r0, #127 ; 0x7f -2000c140: 6821 ldr r1, [r4, #0] -2000c142: 4005 ands r5, r0 -2000c144: 2218 movs r2, #24 -2000c146: 4355 muls r5, r2 -2000c148: 1c08 adds r0, r1, #0 -2000c14a: 3104 adds r1, #4 -2000c14c: 6fcb ldr r3, [r1, #124] ; 0x7c -2000c14e: 3048 adds r0, #72 ; 0x48 -2000c150: 1959 adds r1, r3, r5 -2000c152: 6909 ldr r1, [r1, #16] -2000c154: f001 f820 bl 2000d198 - r820t_set_if_bandwidth(&airspy_conf->r820t_conf_rw, airspy_conf->airspy_m0_m4_alt_conf[conf_num].airspy_m0_conf.r820t_if_bw); -2000c158: 6824 ldr r4, [r4, #0] -2000c15a: 1c20 adds r0, r4, #0 -2000c15c: 3404 adds r4, #4 -2000c15e: 3048 adds r0, #72 ; 0x48 -2000c160: 6fe3 ldr r3, [r4, #124] ; 0x7c -2000c162: e00d b.n 2000c180 - }else - { - r820t_init(&airspy_conf->r820t_conf_rw, airspy_conf->airspy_m0_m4_conf[conf_num].airspy_m0_conf.r820t_if_freq); -2000c164: 2318 movs r3, #24 -2000c166: 6821 ldr r1, [r4, #0] -2000c168: 435d muls r5, r3 -2000c16a: 6f8a ldr r2, [r1, #120] ; 0x78 -2000c16c: 1c08 adds r0, r1, #0 -2000c16e: 1951 adds r1, r2, r5 -2000c170: 3048 adds r0, #72 ; 0x48 -2000c172: 6909 ldr r1, [r1, #16] -2000c174: f001 f810 bl 2000d198 - r820t_set_if_bandwidth(&airspy_conf->r820t_conf_rw, airspy_conf->airspy_m0_m4_conf[conf_num].airspy_m0_conf.r820t_if_bw); -2000c178: 6824 ldr r4, [r4, #0] -2000c17a: 1c20 adds r0, r4, #0 -2000c17c: 6fa3 ldr r3, [r4, #120] ; 0x78 -2000c17e: 3048 adds r0, #72 ; 0x48 -2000c180: 195d adds r5, r3, r5 -2000c182: 7d29 ldrb r1, [r5, #20] -2000c184: f001 f828 bl 2000d1d8 - } - phase = 1; -2000c188: 4a03 ldr r2, [pc, #12] ; (2000c198 ) -2000c18a: 2001 movs r0, #1 -2000c18c: 6010 str r0, [r2, #0] -} -2000c18e: bd38 pop {r3, r4, r5, pc} -2000c190: 2000ec78 .word 0x2000ec78 -2000c194: 2000ef28 .word 0x2000ef28 -2000c198: 2000f000 .word 0x2000f000 - -2000c19c : - -void ADCHS_stop(uint8_t conf_num) -{ -2000c19c: b510 push {r4, lr} -2000c19e: 1c04 adds r4, r0, #0 - r820t_standby(); -2000c1a0: f001 f840 bl 2000d224 - -set_sample_r_params_t set_sample_r_params; - -__attribute__ ((always_inline)) static inline void start_stop_adchs_m4(uint8_t conf_num, uint8_t command) -{ - start_adchs->conf = conf_num; -2000c1a4: 4b0a ldr r3, [pc, #40] ; (2000c1d0 ) - start_adchs->cmd = command; -2000c1a6: 2202 movs r2, #2 - -set_sample_r_params_t set_sample_r_params; - -__attribute__ ((always_inline)) static inline void start_stop_adchs_m4(uint8_t conf_num, uint8_t command) -{ - start_adchs->conf = conf_num; -2000c1a8: 6818 ldr r0, [r3, #0] -2000c1aa: 7044 strb r4, [r0, #1] - start_adchs->cmd = command; -2000c1ac: 7002 strb r2, [r0, #0] -It also sets the local event register, see Power management (sleep mode, deep sleep mode of System Control Register for more details). -Instruction for Cortex M0, M3/M4 */ -__attribute__ ((always_inline)) static inline void signal_sev(void) -{ - /* make sure all data transactions complete before next instruction is executed */ - __asm("dsb"); -2000c1ae: f3bf 8f4f dsb sy - __asm("sev"); -2000c1b2: bf40 sev - signal_sev(); - - /* Wait until M4 have finished executing the command (it set the data to 0) */ - while(1) - { - if(start_adchs->raw == 0) -2000c1b4: 6801 ldr r1, [r0, #0] -2000c1b6: 2900 cmp r1, #0 -2000c1b8: d1fc bne.n 2000c1b4 -{ - r820t_standby(); - start_stop_adchs_m4(conf_num, STOP_ADCHS_CMD); - - /* Re-Init I2C0 & I2C1 after PLL1 frequency is modified */ - i2c0_init(airspy_conf->i2c_conf.i2c0_pll1_ls_hs_conf_val); /* Si5351C I2C peripheral */ -2000c1ba: 4c06 ldr r4, [pc, #24] ; (2000c1d4 ) -2000c1bc: 6823 ldr r3, [r4, #0] -2000c1be: 8b18 ldrh r0, [r3, #24] -2000c1c0: f002 f804 bl 2000e1cc - i2c1_init(airspy_conf->i2c_conf.i2c1_pll1_ls_conf_val); /* R820T I2C peripheral */ -2000c1c4: 6820 ldr r0, [r4, #0] -2000c1c6: 8b80 ldrh r0, [r0, #28] -2000c1c8: f002 f81a bl 2000e200 -} -2000c1cc: bd10 pop {r4, pc} -2000c1ce: 46c0 nop ; (mov r8, r8) -2000c1d0: 2000ec78 .word 0x2000ec78 -2000c1d4: 2000ef28 .word 0x2000ef28 - -2000c1d8 : -/***************************/ -/* adchs_isr managed by M4 */ -/***************************/ -void m4core_isr(void) -{ - MASTER_TXEV_QUIT(); -2000c1d8: 4b01 ldr r3, [pc, #4] ; (2000c1e0 ) -2000c1da: 2200 movs r2, #0 -2000c1dc: 601a str r2, [r3, #0] -} -2000c1de: 4770 bx lr -2000c1e0: 40043130 .word 0x40043130 - -2000c1e4
: - -/* -M0 Core Manage USB -*/ -int main(void) -{ -2000c1e4: b570 push {r4, r5, r6, lr} -2000c1e6: b08c sub sp, #48 ; 0x30 - iap_cmd_res_t iap_cmd_res; - usb_descriptor_serial_number_t serial_number; - airspy_usb_req_init(); -2000c1e8: f000 fc72 bl 2000cad0 - - /* R820T Startup */ - r820t_startup(&airspy_conf->r820t_conf_rw); -2000c1ec: 4b27 ldr r3, [pc, #156] ; (2000c28c ) - - usb_endpoint_init(&usb_endpoint_control_out); - usb_endpoint_init(&usb_endpoint_control_in); - - /* Read IAP Serial Number Identification */ - iap_cmd_res.cmd_param.command_code = IAP_CMD_READ_SERIAL_NO; -2000c1ee: ac01 add r4, sp, #4 - iap_cmd_res_t iap_cmd_res; - usb_descriptor_serial_number_t serial_number; - airspy_usb_req_init(); - - /* R820T Startup */ - r820t_startup(&airspy_conf->r820t_conf_rw); -2000c1f0: 6818 ldr r0, [r3, #0] -2000c1f2: 3048 adds r0, #72 ; 0x48 -2000c1f4: f001 f84a bl 2000d28c - - usb_set_configuration_changed_cb(usb_configuration_changed); -2000c1f8: 4825 ldr r0, [pc, #148] ; (2000c290 ) -2000c1fa: f001 feb5 bl 2000df68 - usb_peripheral_reset(); -2000c1fe: f001 faf5 bl 2000d7ec - - usb_device_init(0, &usb_device); -2000c202: 4d24 ldr r5, [pc, #144] ; (2000c294 ) -2000c204: 2000 movs r0, #0 -2000c206: 1c29 adds r1, r5, #0 -2000c208: f001 fbee bl 2000d9e8 - - usb_queue_init(&usb_endpoint_control_out_queue); -2000c20c: 4822 ldr r0, [pc, #136] ; (2000c298 ) -2000c20e: f001 fd5f bl 2000dcd0 - usb_queue_init(&usb_endpoint_control_in_queue); -2000c212: 4822 ldr r0, [pc, #136] ; (2000c29c ) -2000c214: f001 fd5c bl 2000dcd0 - usb_queue_init(&usb_endpoint_bulk_out_queue); -2000c218: 4821 ldr r0, [pc, #132] ; (2000c2a0 ) -2000c21a: f001 fd59 bl 2000dcd0 - usb_queue_init(&usb_endpoint_bulk_in_queue); -2000c21e: 4821 ldr r0, [pc, #132] ; (2000c2a4 ) -2000c220: f001 fd56 bl 2000dcd0 - - usb_endpoint_init(&usb_endpoint_control_out); -2000c224: 4820 ldr r0, [pc, #128] ; (2000c2a8 ) -2000c226: f001 fc35 bl 2000da94 - usb_endpoint_init(&usb_endpoint_control_in); -2000c22a: 4820 ldr r0, [pc, #128] ; (2000c2ac ) -2000c22c: f001 fc32 bl 2000da94 - - /* Read IAP Serial Number Identification */ - iap_cmd_res.cmd_param.command_code = IAP_CMD_READ_SERIAL_NO; -2000c230: 203a movs r0, #58 ; 0x3a -2000c232: 7020 strb r0, [r4, #0] - iap_cmd_call(&iap_cmd_res); -2000c234: 1c20 adds r0, r4, #0 -2000c236: f001 fa4f bl 2000d6d8 - if(iap_cmd_res.status_res.status_ret == CMD_SUCCESS) -2000c23a: 8b21 ldrh r1, [r4, #24] -2000c23c: 2900 cmp r1, #0 -2000c23e: d103 bne.n 2000c248 - { - /* Only retrieve 2 last 32bits for Serial Number */ - serial_number.sn_32b[0] = iap_cmd_res.status_res.iap_result[2]; -2000c240: 6a60 ldr r0, [r4, #36] ; 0x24 - serial_number.sn_32b[1] = iap_cmd_res.status_res.iap_result[3]; -2000c242: 6aa1 ldr r1, [r4, #40] ; 0x28 - usb_descriptor_fill_string_serial_number(serial_number); -2000c244: f000 fcc4 bl 2000cbd0 - } - - nvic_set_priority(NVIC_USB0_IRQ, 255); -2000c248: 2008 movs r0, #8 -2000c24a: 21ff movs r1, #255 ; 0xff -2000c24c: f002 fa42 bl 2000e6d4 - - nvic_set_priority(NVIC_M4CORE_IRQ, 1); -2000c250: 2001 movs r0, #1 -2000c252: 1c01 adds r1, r0, #0 -2000c254: f002 fa3e bl 2000e6d4 - nvic_enable_irq(NVIC_M4CORE_IRQ); -2000c258: 2001 movs r0, #1 -2000c25a: f002 fa2f bl 2000e6bc - - usb_run(&usb_device); -2000c25e: 1c28 adds r0, r5, #0 -2000c260: f001 fc06 bl 2000da70 - - while(true) - { - signal_wfe(); - - uint32_t offset = get_usb_buffer_offset(); -2000c264: 4a12 ldr r2, [pc, #72] ; (2000c2b0 ) - uint32_t length = get_usb_buffer_length(); -2000c266: 4b13 ldr r3, [pc, #76] ; (2000c2b4 ) - - if(offset != *last_offset_m0) -2000c268: 4d13 ldr r5, [pc, #76] ; (2000c2b8 ) - - while(true) - { - signal_wfe(); - - uint32_t offset = get_usb_buffer_offset(); -2000c26a: 6816 ldr r6, [r2, #0] - uint32_t length = get_usb_buffer_length(); -2000c26c: 6818 ldr r0, [r3, #0] - - if(offset != *last_offset_m0) -2000c26e: 6829 ldr r1, [r5, #0] -If the event register is 1, WFE clears it to 0 and completes immediately. -Instruction for Cortex M0, M3/M4 -*/ -__attribute__ ((always_inline)) static inline void signal_wfe(void) -{ - __asm("wfe"); -2000c270: bf20 wfe - - while(true) - { - signal_wfe(); - - uint32_t offset = get_usb_buffer_offset(); -2000c272: 6834 ldr r4, [r6, #0] - uint32_t length = get_usb_buffer_length(); -2000c274: 6802 ldr r2, [r0, #0] - - if(offset != *last_offset_m0) -2000c276: 680b ldr r3, [r1, #0] -2000c278: 429c cmp r4, r3 -2000c27a: d0f9 beq.n 2000c270 - { - usb_transfer_schedule_block(&usb_endpoint_bulk_in, &usb_bulk_buffer[offset], length); -2000c27c: 4e0f ldr r6, [pc, #60] ; (2000c2bc ) -2000c27e: 4810 ldr r0, [pc, #64] ; (2000c2c0 ) -2000c280: 19a1 adds r1, r4, r6 -2000c282: f001 fdb1 bl 2000dde8 - *last_offset_m0 = offset; -2000c286: 682a ldr r2, [r5, #0] -2000c288: 6014 str r4, [r2, #0] -2000c28a: e7eb b.n 2000c264 -2000c28c: 2000ef28 .word 0x2000ef28 -2000c290: 2000c0c1 .word 0x2000c0c1 -2000c294: 2000ee1c .word 0x2000ee1c -2000c298: 2000ee48 .word 0x2000ee48 -2000c29c: 2000ee68 .word 0x2000ee68 -2000c2a0: 2000ee58 .word 0x2000ee58 -2000c2a4: 2000eef0 .word 0x2000eef0 -2000c2a8: 2000ee78 .word 0x2000ee78 -2000c2ac: 2000eec8 .word 0x2000eec8 -2000c2b0: 2000ec74 .word 0x2000ec74 -2000c2b4: 2000ec7c .word 0x2000ec7c -2000c2b8: 2000ec80 .word 0x2000ec80 -2000c2bc: 20004000 .word 0x20004000 -2000c2c0: 2000ef00 .word 0x2000ef00 - -2000c2c4 : -extern usb_endpoint_t usb_endpoint_bulk_in; - -static volatile receiver_mode_t receiver_mode = RECEIVER_MODE_OFF; - -void set_receiver_mode(const receiver_mode_t new_receiver_mode) -{ -2000c2c4: b538 push {r3, r4, r5, lr} -2000c2c6: 1c04 adds r4, r0, #0 - usb_streaming_disable(); -2000c2c8: f000 fbf6 bl 2000cab8 -2000c2cc: 4d07 ldr r5, [pc, #28] ; (2000c2ec ) - - if( new_receiver_mode == RECEIVER_MODE_RX ) -2000c2ce: 2c01 cmp r4, #1 -2000c2d0: d106 bne.n 2000c2e0 - { - usb_endpoint_init(&usb_endpoint_bulk_in); -2000c2d2: 4807 ldr r0, [pc, #28] ; (2000c2f0 ) -2000c2d4: f001 fbde bl 2000da94 - ADCHS_start(sample_rate_conf_no); -2000c2d8: 7828 ldrb r0, [r5, #0] -2000c2da: f7ff ff17 bl 2000c10c -2000c2de: e002 b.n 2000c2e6 - }else - { - ADCHS_stop(sample_rate_conf_no); -2000c2e0: 7828 ldrb r0, [r5, #0] -2000c2e2: f7ff ff5b bl 2000c19c - } - receiver_mode = new_receiver_mode; -2000c2e6: 4b03 ldr r3, [pc, #12] ; (2000c2f4 ) -2000c2e8: 701c strb r4, [r3, #0] -} -2000c2ea: bd38 pop {r3, r4, r5, pc} -2000c2ec: 2000f500 .word 0x2000f500 -2000c2f0: 2000ef00 .word 0x2000ef00 -2000c2f4: 2000f004 .word 0x2000f004 - -2000c2f8 : - -receiver_mode_t get_receiver_mode(void) -{ - return receiver_mode; -2000c2f8: 4b01 ldr r3, [pc, #4] ; (2000c300 ) -2000c2fa: 7818 ldrb r0, [r3, #0] -} -2000c2fc: 4770 bx lr -2000c2fe: 46c0 nop ; (mov r8, r8) -2000c300: 2000f004 .word 0x2000f004 - -2000c304 : - - vendor_request_handler[AIRSPY_SPIFLASH_ERASE_SECTOR] = usb_vendor_request_erase_sector_spiflash; -} - -usb_request_status_t usb_vendor_request(usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c304: b508 push {r3, lr} - usb_request_status_t status = USB_REQUEST_STATUS_STALL; - - if( endpoint->setup.request <= AIRSPY_CMD_MAX ) -2000c306: 7843 ldrb r3, [r0, #1] -2000c308: 2b1b cmp r3, #27 -2000c30a: d806 bhi.n 2000c31a - { - usb_request_handler_fn handler = vendor_request_handler[endpoint->setup.request]; -2000c30c: 4a05 ldr r2, [pc, #20] ; (2000c324 ) -2000c30e: 009b lsls r3, r3, #2 -2000c310: 589b ldr r3, [r3, r2] - if( handler ) -2000c312: 2b00 cmp r3, #0 -2000c314: d004 beq.n 2000c320 - { - status = handler(endpoint, stage); -2000c316: 4798 blx r3 -2000c318: e003 b.n 2000c322 -2000c31a: 4248 negs r0, r1 -2000c31c: 4148 adcs r0, r1 -2000c31e: e000 b.n 2000c322 - vendor_request_handler[AIRSPY_SPIFLASH_ERASE_SECTOR] = usb_vendor_request_erase_sector_spiflash; -} - -usb_request_status_t usb_vendor_request(usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ - usb_request_status_t status = USB_REQUEST_STATUS_STALL; -2000c320: 2001 movs r0, #1 - { - status = USB_REQUEST_STATUS_OK; - } - } - return status; -} -2000c322: bd08 pop {r3, pc} -2000c324: 2000f390 .word 0x2000f390 - -2000c328 : - } -} - -usb_request_status_t usb_vendor_request_reset( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c328: b508 push {r3, lr} - if (stage == USB_TRANSFER_STAGE_SETUP) -2000c32a: 2900 cmp r1, #0 -2000c32c: d101 bne.n 2000c332 - { - //usb_transfer_schedule_ack(endpoint->in); - cpu_reset(); -2000c32e: f000 fcb7 bl 2000cca0 - } - return USB_REQUEST_STATUS_OK; -} -2000c332: 2000 movs r0, #0 -2000c334: bd08 pop {r3, pc} - -2000c336 : - } -} - -usb_request_status_t usb_vendor_request_erase_sector_spiflash( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c336: b570 push {r4, r5, r6, lr} -2000c338: 1c05 adds r5, r0, #0 - w25q80bv_setup(); - addr = (sector * MAX_SECTOR_SIZE_64KB); - w25q80bv_sector_erase(addr); /* Erase 64KB */ - usb_transfer_schedule_ack(endpoint->in); - } - return USB_REQUEST_STATUS_OK; -2000c33a: 2000 movs r0, #0 - } -} - -usb_request_status_t usb_vendor_request_erase_sector_spiflash( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c33c: 1e0c subs r4, r1, #0 - uint32_t sector = 0; - #define MIN_SECTOR (2) /* 128KB Reserved (Firmware) */ - #define MAX_SECTOR (13) /* 128KB Reserved + (13 * 64KB) Conf = 1MB Flash */ - #define MAX_SECTOR_SIZE_64KB (64 * 1024) - - if (stage == USB_TRANSFER_STAGE_SETUP) -2000c33e: 4284 cmp r4, r0 -2000c340: d10d bne.n 2000c35e - { - sector = (uint32_t)endpoint->setup.value; -2000c342: 886e ldrh r6, [r5, #2] - /* Check if we exceed Flash Size */ - if(sector < MIN_SECTOR || sector > MAX_SECTOR) - { - return USB_REQUEST_STATUS_STALL; -2000c344: 2001 movs r0, #1 - - if (stage == USB_TRANSFER_STAGE_SETUP) - { - sector = (uint32_t)endpoint->setup.value; - /* Check if we exceed Flash Size */ - if(sector < MIN_SECTOR || sector > MAX_SECTOR) -2000c346: 1eb2 subs r2, r6, #2 -2000c348: 2a0b cmp r2, #11 -2000c34a: d808 bhi.n 2000c35e - { - return USB_REQUEST_STATUS_STALL; - } - w25q80bv_setup(); -2000c34c: f000 ffea bl 2000d324 - addr = (sector * MAX_SECTOR_SIZE_64KB); -2000c350: 0430 lsls r0, r6, #16 - w25q80bv_sector_erase(addr); /* Erase 64KB */ -2000c352: f001 f8c7 bl 2000d4e4 - usb_transfer_schedule_ack(endpoint->in); -2000c356: 69a8 ldr r0, [r5, #24] -2000c358: f001 fd53 bl 2000de02 - } - return USB_REQUEST_STATUS_OK; -2000c35c: 1c20 adds r0, r4, #0 -} -2000c35e: bd70 pop {r4, r5, r6, pc} - -2000c360 : -} - -usb_request_status_t usb_vendor_request_gpiodir_write_command( -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ -2000c360: b538 push {r3, r4, r5, lr} - return USB_REQUEST_STATUS_OK; - } - } - return USB_REQUEST_STATUS_STALL; - } else { - return USB_REQUEST_STATUS_OK; -2000c362: 2300 movs r3, #0 - uint32_t port_num; - uint32_t pin_num; - uint16_t index; - uint16_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000c364: 4299 cmp r1, r3 -2000c366: d119 bne.n 2000c39c - { - index = endpoint->setup.index; -2000c368: 8881 ldrh r1, [r0, #4] - } - usb_transfer_schedule_ack(endpoint->in); - return USB_REQUEST_STATUS_OK; - } - } - return USB_REQUEST_STATUS_STALL; -2000c36a: 2301 movs r3, #1 - uint16_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - index = endpoint->setup.index; - if( index < 256 ) -2000c36c: 29ff cmp r1, #255 ; 0xff -2000c36e: d815 bhi.n 2000c39c - { - value = endpoint->setup.value; -2000c370: 8844 ldrh r4, [r0, #2] - if( value < 2 ) -2000c372: 429c cmp r4, r3 -2000c374: d812 bhi.n 2000c39c - { - port_num = index >> 5; - port_num = (GPIO_PORT_BASE + 0x2000 + (port_num * 4)); -2000c376: 4d0a ldr r5, [pc, #40] ; (2000c3a0 ) - if( index < 256 ) - { - value = endpoint->setup.value; - if( value < 2 ) - { - port_num = index >> 5; -2000c378: 094a lsrs r2, r1, #5 - port_num = (GPIO_PORT_BASE + 0x2000 + (port_num * 4)); -2000c37a: 1952 adds r2, r2, r5 - - pin_num = index & 0x1F; - pin_num = (1 << pin_num); -2000c37c: 251f movs r5, #31 -2000c37e: 4029 ands r1, r5 - { - value = endpoint->setup.value; - if( value < 2 ) - { - port_num = index >> 5; - port_num = (GPIO_PORT_BASE + 0x2000 + (port_num * 4)); -2000c380: 0092 lsls r2, r2, #2 - - pin_num = index & 0x1F; - pin_num = (1 << pin_num); -2000c382: 408b lsls r3, r1 - - if(value == 1) - { - GPIO_DIR(port_num) = (GPIO_DIR(port_num) | pin_num); -2000c384: 6811 ldr r1, [r2, #0] - port_num = (GPIO_PORT_BASE + 0x2000 + (port_num * 4)); - - pin_num = index & 0x1F; - pin_num = (1 << pin_num); - - if(value == 1) -2000c386: 2c01 cmp r4, #1 -2000c388: d101 bne.n 2000c38e - { - GPIO_DIR(port_num) = (GPIO_DIR(port_num) | pin_num); -2000c38a: 430b orrs r3, r1 -2000c38c: e001 b.n 2000c392 - }else - { - GPIO_DIR(port_num) = (GPIO_DIR(port_num) & (~pin_num)); -2000c38e: 4399 bics r1, r3 -2000c390: 1c0b adds r3, r1, #0 -2000c392: 6013 str r3, [r2, #0] - } - usb_transfer_schedule_ack(endpoint->in); -2000c394: 6980 ldr r0, [r0, #24] -2000c396: f001 fd34 bl 2000de02 - return USB_REQUEST_STATUS_OK; -2000c39a: 2300 movs r3, #0 - } - return USB_REQUEST_STATUS_STALL; - } else { - return USB_REQUEST_STATUS_OK; - } -} -2000c39c: 1c18 adds r0, r3, #0 -2000c39e: bd38 pop {r3, r4, r5, pc} -2000c3a0: 1003d800 .word 0x1003d800 - -2000c3a4 : - } -} - -usb_request_status_t usb_vendor_request_erase_spiflash( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c3a4: b538 push {r3, r4, r5, lr} -2000c3a6: 1c05 adds r5, r0, #0 -2000c3a8: 1e0c subs r4, r1, #0 - if (stage == USB_TRANSFER_STAGE_SETUP) -2000c3aa: d107 bne.n 2000c3bc - { - w25q80bv_setup(); -2000c3ac: f000 ffba bl 2000d324 - w25q80bv_sector_erase(0); /* Erase 1st sector 64KB */ -2000c3b0: 1c20 adds r0, r4, #0 -2000c3b2: f001 f897 bl 2000d4e4 - usb_transfer_schedule_ack(endpoint->in); -2000c3b6: 69a8 ldr r0, [r5, #24] -2000c3b8: f001 fd23 bl 2000de02 - } - return USB_REQUEST_STATUS_OK; -} -2000c3bc: 2000 movs r0, #0 -2000c3be: bd38 pop {r3, r4, r5, pc} - -2000c3c0 : - } -} - -usb_request_status_t usb_vendor_request_get_samplerates_command( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c3c0: b5f8 push {r3, r4, r5, r6, r7, lr} -2000c3c2: 1c04 adds r4, r0, #0 - uint16_t nb_samplerate; - uint32_t schedule_block_len; - uint16_t airspy_conf_nb; - uint32_t* samplerates_buffer; - - if (stage == USB_TRANSFER_STAGE_SETUP) -2000c3c4: 2900 cmp r1, #0 -2000c3c6: d12a bne.n 2000c41e - { - nb_samplerate = endpoint->setup.index; - airspy_conf_nb = airspy_conf->nb_airspy_m0_m4_conf_t; -2000c3c8: 4b16 ldr r3, [pc, #88] ; (2000c424 ) - uint16_t airspy_conf_nb; - uint32_t* samplerates_buffer; - - if (stage == USB_TRANSFER_STAGE_SETUP) - { - nb_samplerate = endpoint->setup.index; -2000c3ca: 8881 ldrh r1, [r0, #4] - airspy_conf_nb = airspy_conf->nb_airspy_m0_m4_conf_t; -2000c3cc: 6818 ldr r0, [r3, #0] -2000c3ce: 1c02 adds r2, r0, #0 -2000c3d0: 3276 adds r2, #118 ; 0x76 -2000c3d2: 8815 ldrh r5, [r2, #0] -2000c3d4: 1c2e adds r6, r5, #0 -2000c3d6: 428d cmp r5, r1 -2000c3d8: d900 bls.n 2000c3dc -2000c3da: 1c0e adds r6, r1, #0 -2000c3dc: b2b2 uxth r2, r6 -2000c3de: 4912 ldr r1, [pc, #72] ; (2000c428 ) - - if(nb_samplerate > airspy_conf_nb) - { - nb_samplerate = airspy_conf_nb; - } - if(nb_samplerate > AIRSPY_CONF_NB_MAX) -2000c3e0: 2a40 cmp r2, #64 ; 0x40 -2000c3e2: d802 bhi.n 2000c3ea - { - nb_samplerate = AIRSPY_CONF_NB_MAX; - } - - samplerates_buffer = (uint32_t*)&spiflash_buffer[0]; - if(nb_samplerate == 0) -2000c3e4: 2a00 cmp r2, #0 -2000c3e6: d003 beq.n 2000c3f0 -2000c3e8: e000 b.n 2000c3ec - { - nb_samplerate = airspy_conf_nb; - } - if(nb_samplerate > AIRSPY_CONF_NB_MAX) - { - nb_samplerate = AIRSPY_CONF_NB_MAX; -2000c3ea: 2240 movs r2, #64 ; 0x40 -2000c3ec: 2300 movs r3, #0 -2000c3ee: e003 b.n 2000c3f8 - - samplerates_buffer = (uint32_t*)&spiflash_buffer[0]; - if(nb_samplerate == 0) - { - /* Return the number of samplerates available */ - samplerates_buffer[0] = airspy_conf_nb; -2000c3f0: 600d str r5, [r1, #0] - usb_transfer_schedule_block(endpoint->in, &samplerates_buffer[0], 4); -2000c3f2: 69a0 ldr r0, [r4, #24] -2000c3f4: 2204 movs r2, #4 -2000c3f6: e00d b.n 2000c414 - } else - { - /* Return each samplerate available */ - for(i = 0; i < nb_samplerate; i++) -2000c3f8: 4293 cmp r3, r2 -2000c3fa: da09 bge.n 2000c410 - { - samplerates_buffer[i] = airspy_conf->airspy_m0_m4_conf[i].airspy_m0_conf.r820t_if_freq * 2; /* samplerate = IF_freq * 2 */ -2000c3fc: 2618 movs r6, #24 -2000c3fe: 435e muls r6, r3 -2000c400: 6f87 ldr r7, [r0, #120] ; 0x78 - } else { - return USB_REQUEST_STATUS_OK; - } -} - -usb_request_status_t usb_vendor_request_get_samplerates_command( -2000c402: 009d lsls r5, r3, #2 - } else - { - /* Return each samplerate available */ - for(i = 0; i < nb_samplerate; i++) - { - samplerates_buffer[i] = airspy_conf->airspy_m0_m4_conf[i].airspy_m0_conf.r820t_if_freq * 2; /* samplerate = IF_freq * 2 */ -2000c404: 19be adds r6, r7, r6 -2000c406: 6937 ldr r7, [r6, #16] - samplerates_buffer[0] = airspy_conf_nb; - usb_transfer_schedule_block(endpoint->in, &samplerates_buffer[0], 4); - } else - { - /* Return each samplerate available */ - for(i = 0; i < nb_samplerate; i++) -2000c408: 3301 adds r3, #1 - { - samplerates_buffer[i] = airspy_conf->airspy_m0_m4_conf[i].airspy_m0_conf.r820t_if_freq * 2; /* samplerate = IF_freq * 2 */ -2000c40a: 007e lsls r6, r7, #1 -2000c40c: 514e str r6, [r1, r5] -2000c40e: e7f3 b.n 2000c3f8 - } - schedule_block_len = nb_samplerate * sizeof(uint32_t); - usb_transfer_schedule_block(endpoint->in, &samplerates_buffer[0], schedule_block_len); -2000c410: 69a0 ldr r0, [r4, #24] - /* Return each samplerate available */ - for(i = 0; i < nb_samplerate; i++) - { - samplerates_buffer[i] = airspy_conf->airspy_m0_m4_conf[i].airspy_m0_conf.r820t_if_freq * 2; /* samplerate = IF_freq * 2 */ - } - schedule_block_len = nb_samplerate * sizeof(uint32_t); -2000c412: 0092 lsls r2, r2, #2 - usb_transfer_schedule_block(endpoint->in, &samplerates_buffer[0], schedule_block_len); -2000c414: f001 fce8 bl 2000dde8 - } - usb_transfer_schedule_ack(endpoint->out); -2000c418: 69e0 ldr r0, [r4, #28] -2000c41a: f001 fcf2 bl 2000de02 - return USB_REQUEST_STATUS_OK; - } else - { - return USB_REQUEST_STATUS_OK; - } -} -2000c41e: 2000 movs r0, #0 -2000c420: bdf8 pop {r3, r4, r5, r6, r7, pc} -2000c422: 46c0 nop ; (mov r8, r8) -2000c424: 2000ef28 .word 0x2000ef28 -2000c428: 2000f400 .word 0x2000f400 - -2000c42c : - usb_transfer_schedule_ack(endpoint->out); - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_STALL; - } else { - return USB_REQUEST_STATUS_OK; -2000c42c: 2200 movs r2, #0 -} - -usb_request_status_t usb_vendor_request_gpiodir_read_command( -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ -2000c42e: b538 push {r3, r4, r5, lr} -2000c430: 1c04 adds r4, r0, #0 -2000c432: 1e0d subs r5, r1, #0 - uint32_t port_num; - uint32_t pin_num; - uint8_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000c434: 4295 cmp r5, r2 -2000c436: d11a bne.n 2000c46e - { - if( endpoint->setup.index < 256 ) -2000c438: 8883 ldrh r3, [r0, #4] - endpoint->buffer[0] = value; - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); - usb_transfer_schedule_ack(endpoint->out); - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_STALL; -2000c43a: 2201 movs r2, #1 - uint32_t pin_num; - uint8_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - if( endpoint->setup.index < 256 ) -2000c43c: 2bff cmp r3, #255 ; 0xff -2000c43e: d816 bhi.n 2000c46e - { - port_num = endpoint->setup.index >> 5; - port_num = (GPIO_PORT_BASE + 0x2000 + (port_num * 4)); -2000c440: 480c ldr r0, [pc, #48] ; (2000c474 ) - - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - if( endpoint->setup.index < 256 ) - { - port_num = endpoint->setup.index >> 5; -2000c442: 0959 lsrs r1, r3, #5 - port_num = (GPIO_PORT_BASE + 0x2000 + (port_num * 4)); -2000c444: 1809 adds r1, r1, r0 -2000c446: 0088 lsls r0, r1, #2 - - pin_num = endpoint->setup.index & 0x1F; - pin_num = (1 << pin_num); - - if( (GPIO_DIR(port_num) & pin_num) ) -2000c448: 6801 ldr r1, [r0, #0] - { - port_num = endpoint->setup.index >> 5; - port_num = (GPIO_PORT_BASE + 0x2000 + (port_num * 4)); - - pin_num = endpoint->setup.index & 0x1F; - pin_num = (1 << pin_num); -2000c44a: 201f movs r0, #31 -2000c44c: 4003 ands r3, r0 -2000c44e: 1c10 adds r0, r2, #0 -2000c450: 4098 lsls r0, r3 -2000c452: 1c03 adds r3, r0, #0 - - if( (GPIO_DIR(port_num) & pin_num) ) -2000c454: 400b ands r3, r1 -2000c456: 1e59 subs r1, r3, #1 -2000c458: 418b sbcs r3, r1 - }else - { - value = 0; - } - endpoint->buffer[0] = value; - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c45a: 1c21 adds r1, r4, #0 - value = 1; - }else - { - value = 0; - } - endpoint->buffer[0] = value; -2000c45c: 7223 strb r3, [r4, #8] - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c45e: 3108 adds r1, #8 -2000c460: 69a0 ldr r0, [r4, #24] -2000c462: f001 fcc1 bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000c466: 69e0 ldr r0, [r4, #28] -2000c468: f001 fccb bl 2000de02 - return USB_REQUEST_STATUS_OK; -2000c46c: 1c2a adds r2, r5, #0 - } - return USB_REQUEST_STATUS_STALL; - } else { - return USB_REQUEST_STATUS_OK; - } -} -2000c46e: 1c10 adds r0, r2, #0 -2000c470: bd38 pop {r3, r4, r5, pc} -2000c472: 46c0 nop ; (mov r8, r8) -2000c474: 1003d800 .word 0x1003d800 - -2000c478 : - return USB_REQUEST_STATUS_OK; -} - -usb_request_status_t usb_vendor_request_ms_vendor_command( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c478: b570 push {r4, r5, r6, lr} - usb_transfer_schedule_ack(endpoint->out); - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_STALL; - } - return USB_REQUEST_STATUS_OK; -2000c47a: 2500 movs r5, #0 - return USB_REQUEST_STATUS_OK; -} - -usb_request_status_t usb_vendor_request_ms_vendor_command( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c47c: 1c04 adds r4, r0, #0 -2000c47e: 1e0e subs r6, r1, #0 - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000c480: 42ae cmp r6, r5 -2000c482: d117 bne.n 2000c4b4 - { - if (endpoint->setup.index == 0x04) -2000c484: 8883 ldrh r3, [r0, #4] -2000c486: 2b04 cmp r3, #4 -2000c488: d108 bne.n 2000c49c - { - usb_transfer_schedule_block(endpoint->in, &usb_descriptor_CompatIDDescriptor, endpoint->setup.length); -2000c48a: 88c2 ldrh r2, [r0, #6] -2000c48c: 490a ldr r1, [pc, #40] ; (2000c4b8 ) -2000c48e: 6980 ldr r0, [r0, #24] -2000c490: f001 fcaa bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000c494: 69e0 ldr r0, [r4, #28] -2000c496: f001 fcb4 bl 2000de02 -2000c49a: e00b b.n 2000c4b4 - { - usb_transfer_schedule_block(endpoint->in, &usb_descriptor_ExtProps, endpoint->setup.length); - usb_transfer_schedule_ack(endpoint->out); - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_STALL; -2000c49c: 2501 movs r5, #1 - { - usb_transfer_schedule_block(endpoint->in, &usb_descriptor_CompatIDDescriptor, endpoint->setup.length); - usb_transfer_schedule_ack(endpoint->out); - return USB_REQUEST_STATUS_OK; - } - if (endpoint->setup.index == 0x05) -2000c49e: 2b05 cmp r3, #5 -2000c4a0: d108 bne.n 2000c4b4 - { - usb_transfer_schedule_block(endpoint->in, &usb_descriptor_ExtProps, endpoint->setup.length); -2000c4a2: 88c2 ldrh r2, [r0, #6] -2000c4a4: 4905 ldr r1, [pc, #20] ; (2000c4bc ) -2000c4a6: 6980 ldr r0, [r0, #24] -2000c4a8: f001 fc9e bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000c4ac: 69e0 ldr r0, [r4, #28] -2000c4ae: f001 fca8 bl 2000de02 - return USB_REQUEST_STATUS_OK; -2000c4b2: 1c35 adds r5, r6, #0 - } - return USB_REQUEST_STATUS_STALL; - } - return USB_REQUEST_STATUS_OK; -} -2000c4b4: 1c28 adds r0, r5, #0 -2000c4b6: bd70 pop {r4, r5, r6, pc} -2000c4b8: 2000ecaf .word 0x2000ecaf -2000c4bc: 2000ed82 .word 0x2000ed82 - -2000c4c0 : - } -} - -usb_request_status_t usb_vendor_request_read_board_id( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c4c0: b510 push {r4, lr} -2000c4c2: 1c04 adds r4, r0, #0 - if (stage == USB_TRANSFER_STAGE_SETUP) { -2000c4c4: 2900 cmp r1, #0 -2000c4c6: d109 bne.n 2000c4dc - endpoint->buffer[0] = BOARD_ID; -2000c4c8: 7201 strb r1, [r0, #8] - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c4ca: 1c01 adds r1, r0, #0 -2000c4cc: 3108 adds r1, #8 -2000c4ce: 6980 ldr r0, [r0, #24] -2000c4d0: 2201 movs r2, #1 -2000c4d2: f001 fc89 bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000c4d6: 69e0 ldr r0, [r4, #28] -2000c4d8: f001 fc93 bl 2000de02 - } - return USB_REQUEST_STATUS_OK; -} -2000c4dc: 2000 movs r0, #0 -2000c4de: bd10 pop {r4, pc} - -2000c4e0 : - return USB_REQUEST_STATUS_OK; -} - -usb_request_status_t usb_vendor_request_set_rf_bias_command( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c4e0: b510 push {r4, lr} -2000c4e2: 1c04 adds r4, r0, #0 - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000c4e4: 2900 cmp r1, #0 -2000c4e6: d10a bne.n 2000c4fe - { - if(endpoint->setup.index == 1) -2000c4e8: 8883 ldrh r3, [r0, #4] -2000c4ea: 2b01 cmp r3, #1 -2000c4ec: d102 bne.n 2000c4f4 - { - enable_biast_power(); -2000c4ee: f000 fbdd bl 2000ccac -2000c4f2: e001 b.n 2000c4f8 - }else - { - disable_biast_power(); -2000c4f4: f000 fbe4 bl 2000ccc0 - } - usb_transfer_schedule_ack(endpoint->in); -2000c4f8: 69a0 ldr r0, [r4, #24] -2000c4fa: f001 fc82 bl 2000de02 - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_OK; -} -2000c4fe: 2000 movs r0, #0 -2000c500: bd10 pop {r4, pc} - ... - -2000c504 : - return USB_REQUEST_STATUS_OK; -} - -usb_request_status_t usb_vendor_request_set_mixer_agc( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c504: b510 push {r4, lr} -2000c506: 1c04 adds r4, r0, #0 - int8_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000c508: 2900 cmp r1, #0 -2000c50a: d10f bne.n 2000c52c - { - value = r820t_set_mixer_agc(&airspy_conf->r820t_conf_rw, endpoint->setup.index); -2000c50c: 4b08 ldr r3, [pc, #32] ; (2000c530 ) -2000c50e: 7921 ldrb r1, [r4, #4] -2000c510: 6818 ldr r0, [r3, #0] -2000c512: 3048 adds r0, #72 ; 0x48 -2000c514: f000 fde2 bl 2000d0dc - endpoint->buffer[0] = value; - - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c518: 1c21 adds r1, r4, #0 - int8_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - value = r820t_set_mixer_agc(&airspy_conf->r820t_conf_rw, endpoint->setup.index); - endpoint->buffer[0] = value; -2000c51a: 7220 strb r0, [r4, #8] - - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c51c: 3108 adds r1, #8 -2000c51e: 69a0 ldr r0, [r4, #24] -2000c520: 2201 movs r2, #1 -2000c522: f001 fc61 bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000c526: 69e0 ldr r0, [r4, #28] -2000c528: f001 fc6b bl 2000de02 - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_OK; -} -2000c52c: 2000 movs r0, #0 -2000c52e: bd10 pop {r4, pc} -2000c530: 2000ef28 .word 0x2000ef28 - -2000c534 : - return USB_REQUEST_STATUS_OK; -} - -usb_request_status_t usb_vendor_request_set_lna_agc( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c534: b510 push {r4, lr} -2000c536: 1c04 adds r4, r0, #0 - int8_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000c538: 2900 cmp r1, #0 -2000c53a: d10f bne.n 2000c55c - { - value = r820t_set_lna_agc(&airspy_conf->r820t_conf_rw, endpoint->setup.index); -2000c53c: 4b08 ldr r3, [pc, #32] ; (2000c560 ) -2000c53e: 7921 ldrb r1, [r4, #4] -2000c540: 6818 ldr r0, [r3, #0] -2000c542: 3048 adds r0, #72 ; 0x48 -2000c544: f000 fdc1 bl 2000d0ca - endpoint->buffer[0] = value; - - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c548: 1c21 adds r1, r4, #0 - int8_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - value = r820t_set_lna_agc(&airspy_conf->r820t_conf_rw, endpoint->setup.index); - endpoint->buffer[0] = value; -2000c54a: 7220 strb r0, [r4, #8] - - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c54c: 3108 adds r1, #8 -2000c54e: 69a0 ldr r0, [r4, #24] -2000c550: 2201 movs r2, #1 -2000c552: f001 fc49 bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000c556: 69e0 ldr r0, [r4, #28] -2000c558: f001 fc53 bl 2000de02 - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_OK; -} -2000c55c: 2000 movs r0, #0 -2000c55e: bd10 pop {r4, pc} -2000c560: 2000ef28 .word 0x2000ef28 - -2000c564 : - return USB_REQUEST_STATUS_OK; -} - -usb_request_status_t usb_vendor_request_set_vga_gain( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c564: b510 push {r4, lr} -2000c566: 1c04 adds r4, r0, #0 - int8_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000c568: 2900 cmp r1, #0 -2000c56a: d10f bne.n 2000c58c - { - value = r820t_set_vga_gain(&airspy_conf->r820t_conf_rw, endpoint->setup.index); -2000c56c: 4b08 ldr r3, [pc, #32] ; (2000c590 ) -2000c56e: 7921 ldrb r1, [r4, #4] -2000c570: 6818 ldr r0, [r3, #0] -2000c572: 3048 adds r0, #72 ; 0x48 -2000c574: f000 fda2 bl 2000d0bc - endpoint->buffer[0] = value; - - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c578: 1c21 adds r1, r4, #0 - int8_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - value = r820t_set_vga_gain(&airspy_conf->r820t_conf_rw, endpoint->setup.index); - endpoint->buffer[0] = value; -2000c57a: 7220 strb r0, [r4, #8] - - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c57c: 3108 adds r1, #8 -2000c57e: 69a0 ldr r0, [r4, #24] -2000c580: 2201 movs r2, #1 -2000c582: f001 fc31 bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000c586: 69e0 ldr r0, [r4, #28] -2000c588: f001 fc3b bl 2000de02 - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_OK; -} -2000c58c: 2000 movs r0, #0 -2000c58e: bd10 pop {r4, pc} -2000c590: 2000ef28 .word 0x2000ef28 - -2000c594 : - return USB_REQUEST_STATUS_OK; -} - -usb_request_status_t usb_vendor_request_set_mixer_gain( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c594: b510 push {r4, lr} -2000c596: 1c04 adds r4, r0, #0 - int8_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000c598: 2900 cmp r1, #0 -2000c59a: d10f bne.n 2000c5bc - { - value = r820t_set_mixer_gain(&airspy_conf->r820t_conf_rw, endpoint->setup.index); -2000c59c: 4b08 ldr r3, [pc, #32] ; (2000c5c0 ) -2000c59e: 7921 ldrb r1, [r4, #4] -2000c5a0: 6818 ldr r0, [r3, #0] -2000c5a2: 3048 adds r0, #72 ; 0x48 -2000c5a4: f000 fd83 bl 2000d0ae - endpoint->buffer[0] = value; - - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c5a8: 1c21 adds r1, r4, #0 - int8_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - value = r820t_set_mixer_gain(&airspy_conf->r820t_conf_rw, endpoint->setup.index); - endpoint->buffer[0] = value; -2000c5aa: 7220 strb r0, [r4, #8] - - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c5ac: 3108 adds r1, #8 -2000c5ae: 69a0 ldr r0, [r4, #24] -2000c5b0: 2201 movs r2, #1 -2000c5b2: f001 fc19 bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000c5b6: 69e0 ldr r0, [r4, #28] -2000c5b8: f001 fc23 bl 2000de02 - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_OK; -} -2000c5bc: 2000 movs r0, #0 -2000c5be: bd10 pop {r4, pc} -2000c5c0: 2000ef28 .word 0x2000ef28 - -2000c5c4 : - } -} - -usb_request_status_t usb_vendor_request_set_lna_gain( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c5c4: b510 push {r4, lr} -2000c5c6: 1c04 adds r4, r0, #0 - int8_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000c5c8: 2900 cmp r1, #0 -2000c5ca: d10f bne.n 2000c5ec - { - value = r820t_set_lna_gain(&airspy_conf->r820t_conf_rw, endpoint->setup.index); -2000c5cc: 4b08 ldr r3, [pc, #32] ; (2000c5f0 ) -2000c5ce: 7921 ldrb r1, [r4, #4] -2000c5d0: 6818 ldr r0, [r3, #0] -2000c5d2: 3048 adds r0, #72 ; 0x48 -2000c5d4: f000 fd64 bl 2000d0a0 - endpoint->buffer[0] = value; - - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c5d8: 1c21 adds r1, r4, #0 - int8_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - value = r820t_set_lna_gain(&airspy_conf->r820t_conf_rw, endpoint->setup.index); - endpoint->buffer[0] = value; -2000c5da: 7220 strb r0, [r4, #8] - - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c5dc: 3108 adds r1, #8 -2000c5de: 69a0 ldr r0, [r4, #24] -2000c5e0: 2201 movs r2, #1 -2000c5e2: f001 fc01 bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000c5e6: 69e0 ldr r0, [r4, #28] -2000c5e8: f001 fc0b bl 2000de02 - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_OK; -} -2000c5ec: 2000 movs r0, #0 -2000c5ee: bd10 pop {r4, pc} -2000c5f0: 2000ef28 .word 0x2000ef28 - -2000c5f4 : -} - -usb_request_status_t usb_vendor_request_set_freq( -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ -2000c5f4: b510 push {r4, lr} -2000c5f6: 1c04 adds r4, r0, #0 - if (stage == USB_TRANSFER_STAGE_SETUP) -2000c5f8: 2900 cmp r1, #0 -2000c5fa: d105 bne.n 2000c608 - { - usb_transfer_schedule_block(endpoint->out, &set_freq_params, sizeof(set_freq_params_t)); -2000c5fc: 4909 ldr r1, [pc, #36] ; (2000c624 ) -2000c5fe: 2204 movs r2, #4 -2000c600: 69c0 ldr r0, [r0, #28] -2000c602: f001 fbf1 bl 2000dde8 - return USB_REQUEST_STATUS_OK; -2000c606: e00b b.n 2000c620 - } else if (stage == USB_TRANSFER_STAGE_DATA) -2000c608: 2901 cmp r1, #1 -2000c60a: d109 bne.n 2000c620 - { - r820t_set_freq(&airspy_conf->r820t_conf_rw, set_freq_params.freq_hz); -2000c60c: 4b06 ldr r3, [pc, #24] ; (2000c628 ) -2000c60e: 4905 ldr r1, [pc, #20] ; (2000c624 ) -2000c610: 6818 ldr r0, [r3, #0] -2000c612: 6809 ldr r1, [r1, #0] -2000c614: 3048 adds r0, #72 ; 0x48 -2000c616: f000 fcef bl 2000cff8 - usb_transfer_schedule_ack(endpoint->in); -2000c61a: 69a0 ldr r0, [r4, #24] -2000c61c: f001 fbf1 bl 2000de02 - return USB_REQUEST_STATUS_OK; - } else - { - return USB_REQUEST_STATUS_OK; - } -} -2000c620: 2000 movs r0, #0 -2000c622: bd10 pop {r4, pc} -2000c624: 2000f388 .word 0x2000f388 -2000c628: 2000ef28 .word 0x2000ef28 - -2000c62c : -} - -usb_request_status_t usb_vendor_request_set_samplerate( -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ -2000c62c: b570 push {r4, r5, r6, lr} -2000c62e: 1c04 adds r4, r0, #0 - endpoint->buffer[0] = 1; - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); - usb_transfer_schedule_ack(endpoint->out); - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_OK; -2000c630: 2000 movs r0, #0 - uint16_t conf_no; - uint32_t conf_hz; - uint32_t freq_hz; - bool conf_found; - - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000c632: 4281 cmp r1, r0 -2000c634: d155 bne.n 2000c6e2 - { - conf_no = endpoint->setup.index; -2000c636: 88a3 ldrh r3, [r4, #4] -2000c638: 4a2a ldr r2, [pc, #168] ; (2000c6e4 ) - if(conf_no < AIRSPY_CONF_NB_MAX) -2000c63a: 2b3f cmp r3, #63 ; 0x3f -2000c63c: d806 bhi.n 2000c64c - { - airspy_conf_nb = airspy_conf->nb_airspy_m0_m4_conf_t; -2000c63e: 6810 ldr r0, [r2, #0] -2000c640: 3076 adds r0, #118 ; 0x76 - if(conf_no > (airspy_conf_nb-1)) -2000c642: 8801 ldrh r1, [r0, #0] - { - return USB_REQUEST_STATUS_STALL; -2000c644: 2001 movs r0, #1 - { - conf_no = endpoint->setup.index; - if(conf_no < AIRSPY_CONF_NB_MAX) - { - airspy_conf_nb = airspy_conf->nb_airspy_m0_m4_conf_t; - if(conf_no > (airspy_conf_nb-1)) -2000c646: 4299 cmp r1, r3 -2000c648: dc2a bgt.n 2000c6a0 -2000c64a: e04a b.n 2000c6e2 - sample_rate_conf_no = conf_no; - } - }else - { - conf_found = false; - conf_hz = (uint32_t)(conf_no) * 1000; -2000c64c: 20fa movs r0, #250 ; 0xfa - - for(i = 0; i < airspy_conf->nb_airspy_m0_m4_conf_t; i++) -2000c64e: 6812 ldr r2, [r2, #0] - sample_rate_conf_no = conf_no; - } - }else - { - conf_found = false; - conf_hz = (uint32_t)(conf_no) * 1000; -2000c650: 0080 lsls r0, r0, #2 -2000c652: 4358 muls r0, r3 - - for(i = 0; i < airspy_conf->nb_airspy_m0_m4_conf_t; i++) -2000c654: 1c13 adds r3, r2, #0 -2000c656: 3376 adds r3, #118 ; 0x76 -2000c658: 881b ldrh r3, [r3, #0] -2000c65a: 4299 cmp r1, r3 -2000c65c: da0c bge.n 2000c678 - { - freq_hz = (airspy_conf->airspy_m0_m4_conf[i].airspy_m0_conf.r820t_if_freq * 4); -2000c65e: 2518 movs r5, #24 -2000c660: 434d muls r5, r1 -2000c662: 6f96 ldr r6, [r2, #120] ; 0x78 -2000c664: 1975 adds r5, r6, r5 -2000c666: 692e ldr r6, [r5, #16] -2000c668: 00b5 lsls r5, r6, #2 - if(freq_hz == conf_hz) -2000c66a: 4285 cmp r5, r0 -2000c66c: d102 bne.n 2000c674 - { - sample_rate_conf_no = i; -2000c66e: 4a1e ldr r2, [pc, #120] ; (2000c6e8 ) -2000c670: 7011 strb r1, [r2, #0] -2000c672: e01a b.n 2000c6aa - }else - { - conf_found = false; - conf_hz = (uint32_t)(conf_no) * 1000; - - for(i = 0; i < airspy_conf->nb_airspy_m0_m4_conf_t; i++) -2000c674: 3101 adds r1, #1 -2000c676: e7f0 b.n 2000c65a - } - } - - if(conf_found == false) - { - for(i = 0; i < airspy_conf->nb_airspy_m0_m4_alt_conf_t; i++) -2000c678: 1c11 adds r1, r2, #0 -2000c67a: 317e adds r1, #126 ; 0x7e -2000c67c: 8809 ldrh r1, [r1, #0] -2000c67e: 2300 movs r3, #0 -2000c680: e000 b.n 2000c684 -2000c682: 3301 adds r3, #1 -2000c684: 428b cmp r3, r1 -2000c686: da0e bge.n 2000c6a6 - { - freq_hz = (airspy_conf->airspy_m0_m4_alt_conf[i].airspy_m0_conf.r820t_if_freq * 4); -2000c688: 1d15 adds r5, r2, #4 -2000c68a: 6fee ldr r6, [r5, #124] ; 0x7c -2000c68c: 2518 movs r5, #24 -2000c68e: 435d muls r5, r3 -2000c690: 1976 adds r6, r6, r5 -2000c692: 6935 ldr r5, [r6, #16] -2000c694: 00ae lsls r6, r5, #2 - if(freq_hz == conf_hz) -2000c696: 4286 cmp r6, r0 -2000c698: d1f3 bne.n 2000c682 - { - sample_rate_conf_no = AIRSPY_SAMPLERATE_CONF_ALT | i; -2000c69a: 2080 movs r0, #128 ; 0x80 -2000c69c: 4241 negs r1, r0 -2000c69e: 430b orrs r3, r1 -2000c6a0: 4e11 ldr r6, [pc, #68] ; (2000c6e8 ) -2000c6a2: 7033 strb r3, [r6, #0] -2000c6a4: e001 b.n 2000c6aa - if(conf_no < AIRSPY_CONF_NB_MAX) - { - airspy_conf_nb = airspy_conf->nb_airspy_m0_m4_conf_t; - if(conf_no > (airspy_conf_nb-1)) - { - return USB_REQUEST_STATUS_STALL; -2000c6a6: 2001 movs r0, #1 -2000c6a8: e01b b.n 2000c6e2 - { - return USB_REQUEST_STATUS_STALL; - } - } - - rx_mode = get_receiver_mode(); -2000c6aa: f7ff fe25 bl 2000c2f8 -2000c6ae: 4d0e ldr r5, [pc, #56] ; (2000c6e8 ) -2000c6b0: 1e06 subs r6, r0, #0 - if(rx_mode == RECEIVER_MODE_RX) -2000c6b2: 2e01 cmp r6, #1 -2000c6b4: d102 bne.n 2000c6bc - { - ADCHS_stop(sample_rate_conf_no); -2000c6b6: 7828 ldrb r0, [r5, #0] -2000c6b8: f7ff fd70 bl 2000c19c - } - - set_samplerate_m4(sample_rate_conf_no); -2000c6bc: 7828 ldrb r0, [r5, #0] -2000c6be: f7ff fd09 bl 2000c0d4 - - if(rx_mode == RECEIVER_MODE_RX) -2000c6c2: 2e01 cmp r6, #1 -2000c6c4: d102 bne.n 2000c6cc - { - ADCHS_start(sample_rate_conf_no); -2000c6c6: 7828 ldrb r0, [r5, #0] -2000c6c8: f7ff fd20 bl 2000c10c - } - - endpoint->buffer[0] = 1; -2000c6cc: 2201 movs r2, #1 - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c6ce: 1c21 adds r1, r4, #0 - if(rx_mode == RECEIVER_MODE_RX) - { - ADCHS_start(sample_rate_conf_no); - } - - endpoint->buffer[0] = 1; -2000c6d0: 7222 strb r2, [r4, #8] - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c6d2: 3108 adds r1, #8 -2000c6d4: 69a0 ldr r0, [r4, #24] -2000c6d6: f001 fb87 bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000c6da: 69e0 ldr r0, [r4, #28] -2000c6dc: f001 fb91 bl 2000de02 - return USB_REQUEST_STATUS_OK; -2000c6e0: 2000 movs r0, #0 - } - return USB_REQUEST_STATUS_OK; -} -2000c6e2: bd70 pop {r4, r5, r6, pc} -2000c6e4: 2000ef28 .word 0x2000ef28 -2000c6e8: 2000f500 .word 0x2000f500 - -2000c6ec : -} - -usb_request_status_t usb_vendor_request_set_packing_command( -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ -2000c6ec: b570 push {r4, r5, r6, lr} -2000c6ee: 1c04 adds r4, r0, #0 - endpoint->buffer[0] = 1; - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); - usb_transfer_schedule_ack(endpoint->out); - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_OK; -2000c6f0: 2000 movs r0, #0 -const usb_transfer_stage_t stage) -{ - receiver_mode_t rx_mode; - uint8_t state; - - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000c6f2: 4281 cmp r1, r0 -2000c6f4: d121 bne.n 2000c73a - { - if(endpoint->setup.index > 1) -2000c6f6: 88a3 ldrh r3, [r4, #4] - { - return USB_REQUEST_STATUS_STALL; -2000c6f8: 2001 movs r0, #1 - receiver_mode_t rx_mode; - uint8_t state; - - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - if(endpoint->setup.index > 1) -2000c6fa: 4283 cmp r3, r0 -2000c6fc: d81d bhi.n 2000c73a - { - return USB_REQUEST_STATUS_STALL; - }else - { - state = endpoint->setup.index; -2000c6fe: b2de uxtb r6, r3 - } - - rx_mode = get_receiver_mode(); -2000c700: f7ff fdfa bl 2000c2f8 -2000c704: 1e05 subs r5, r0, #0 - if(rx_mode == RECEIVER_MODE_RX) -2000c706: 2d01 cmp r5, #1 -2000c708: d103 bne.n 2000c712 - { - ADCHS_stop(sample_rate_conf_no); -2000c70a: 480c ldr r0, [pc, #48] ; (2000c73c ) -2000c70c: 7800 ldrb r0, [r0, #0] -2000c70e: f7ff fd45 bl 2000c19c - } - - set_packing_m4(state); -2000c712: 1c30 adds r0, r6, #0 -2000c714: f7ff fcec bl 2000c0f0 - - if(rx_mode == RECEIVER_MODE_RX) -2000c718: 2d01 cmp r5, #1 -2000c71a: d103 bne.n 2000c724 - { - ADCHS_start(sample_rate_conf_no); -2000c71c: 4907 ldr r1, [pc, #28] ; (2000c73c ) -2000c71e: 7808 ldrb r0, [r1, #0] -2000c720: f7ff fcf4 bl 2000c10c - } - - endpoint->buffer[0] = 1; -2000c724: 2201 movs r2, #1 - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c726: 1c21 adds r1, r4, #0 - if(rx_mode == RECEIVER_MODE_RX) - { - ADCHS_start(sample_rate_conf_no); - } - - endpoint->buffer[0] = 1; -2000c728: 7222 strb r2, [r4, #8] - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c72a: 3108 adds r1, #8 -2000c72c: 69a0 ldr r0, [r4, #24] -2000c72e: f001 fb5b bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000c732: 69e0 ldr r0, [r4, #28] -2000c734: f001 fb65 bl 2000de02 -2000c738: 2000 movs r0, #0 - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_OK; -} -2000c73a: bd70 pop {r4, r5, r6, pc} -2000c73c: 2000f500 .word 0x2000f500 - -2000c740 : - uint32_t serial_no[4]; -} read_partid_serialno_t; - -usb_request_status_t usb_vendor_request_read_partid_serialno( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c740: b570 push {r4, r5, r6, lr} - - length = (uint8_t)sizeof(read_partid_serialno_t); - usb_transfer_schedule_block(endpoint->in, &read_partid_serialno, length); - usb_transfer_schedule_ack(endpoint->out); - } - return USB_REQUEST_STATUS_OK; -2000c742: 2500 movs r5, #0 - uint32_t serial_no[4]; -} read_partid_serialno_t; - -usb_request_status_t usb_vendor_request_read_partid_serialno( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c744: b092 sub sp, #72 ; 0x48 -2000c746: 1c06 adds r6, r0, #0 - uint8_t length; - read_partid_serialno_t read_partid_serialno; - iap_cmd_res_t iap_cmd_res; - - if (stage == USB_TRANSFER_STAGE_SETUP) -2000c748: 42a9 cmp r1, r5 -2000c74a: d126 bne.n 2000c79a - { - /* Read IAP Part Number Identification */ - iap_cmd_res.cmd_param.command_code = IAP_CMD_READ_PART_ID_NO; -2000c74c: ac07 add r4, sp, #28 -2000c74e: 2336 movs r3, #54 ; 0x36 - iap_cmd_call(&iap_cmd_res); -2000c750: 1c20 adds r0, r4, #0 - iap_cmd_res_t iap_cmd_res; - - if (stage == USB_TRANSFER_STAGE_SETUP) - { - /* Read IAP Part Number Identification */ - iap_cmd_res.cmd_param.command_code = IAP_CMD_READ_PART_ID_NO; -2000c752: 7023 strb r3, [r4, #0] - iap_cmd_call(&iap_cmd_res); -2000c754: f000 ffc0 bl 2000d6d8 - if(iap_cmd_res.status_res.status_ret != CMD_SUCCESS) -2000c758: 8b20 ldrh r0, [r4, #24] -2000c75a: 42a8 cmp r0, r5 -2000c75c: d001 beq.n 2000c762 - return USB_REQUEST_STATUS_STALL; -2000c75e: 2501 movs r5, #1 -2000c760: e01b b.n 2000c79a - - read_partid_serialno.part_id[0] = iap_cmd_res.status_res.iap_result[0]; -2000c762: 69e1 ldr r1, [r4, #28] - read_partid_serialno.part_id[1] = iap_cmd_res.status_res.iap_result[1]; -2000c764: 6a22 ldr r2, [r4, #32] - - /* Read IAP Serial Number Identification */ - iap_cmd_res.cmd_param.command_code = IAP_CMD_READ_SERIAL_NO; -2000c766: 233a movs r3, #58 ; 0x3a - iap_cmd_call(&iap_cmd_res); -2000c768: 1c20 adds r0, r4, #0 - iap_cmd_res.cmd_param.command_code = IAP_CMD_READ_PART_ID_NO; - iap_cmd_call(&iap_cmd_res); - if(iap_cmd_res.status_res.status_ret != CMD_SUCCESS) - return USB_REQUEST_STATUS_STALL; - - read_partid_serialno.part_id[0] = iap_cmd_res.status_res.iap_result[0]; -2000c76a: 9101 str r1, [sp, #4] - read_partid_serialno.part_id[1] = iap_cmd_res.status_res.iap_result[1]; -2000c76c: 9202 str r2, [sp, #8] - - /* Read IAP Serial Number Identification */ - iap_cmd_res.cmd_param.command_code = IAP_CMD_READ_SERIAL_NO; -2000c76e: 7023 strb r3, [r4, #0] - iap_cmd_call(&iap_cmd_res); -2000c770: f000 ffb2 bl 2000d6d8 - if(iap_cmd_res.status_res.status_ret != CMD_SUCCESS) -2000c774: 8b20 ldrh r0, [r4, #24] -2000c776: 2800 cmp r0, #0 -2000c778: d1f1 bne.n 2000c75e - return USB_REQUEST_STATUS_STALL; - - read_partid_serialno.serial_no[0] = iap_cmd_res.status_res.iap_result[0]; -2000c77a: 69e1 ldr r1, [r4, #28] - read_partid_serialno.serial_no[1] = iap_cmd_res.status_res.iap_result[1]; -2000c77c: 6a22 ldr r2, [r4, #32] - read_partid_serialno.serial_no[2] = iap_cmd_res.status_res.iap_result[2]; -2000c77e: 6a63 ldr r3, [r4, #36] ; 0x24 - read_partid_serialno.serial_no[3] = iap_cmd_res.status_res.iap_result[3]; -2000c780: 6aa4 ldr r4, [r4, #40] ; 0x28 - iap_cmd_res.cmd_param.command_code = IAP_CMD_READ_SERIAL_NO; - iap_cmd_call(&iap_cmd_res); - if(iap_cmd_res.status_res.status_ret != CMD_SUCCESS) - return USB_REQUEST_STATUS_STALL; - - read_partid_serialno.serial_no[0] = iap_cmd_res.status_res.iap_result[0]; -2000c782: 9103 str r1, [sp, #12] - read_partid_serialno.serial_no[1] = iap_cmd_res.status_res.iap_result[1]; -2000c784: 9204 str r2, [sp, #16] - read_partid_serialno.serial_no[2] = iap_cmd_res.status_res.iap_result[2]; - read_partid_serialno.serial_no[3] = iap_cmd_res.status_res.iap_result[3]; - - length = (uint8_t)sizeof(read_partid_serialno_t); - usb_transfer_schedule_block(endpoint->in, &read_partid_serialno, length); -2000c786: 69b0 ldr r0, [r6, #24] -2000c788: a901 add r1, sp, #4 -2000c78a: 2218 movs r2, #24 - if(iap_cmd_res.status_res.status_ret != CMD_SUCCESS) - return USB_REQUEST_STATUS_STALL; - - read_partid_serialno.serial_no[0] = iap_cmd_res.status_res.iap_result[0]; - read_partid_serialno.serial_no[1] = iap_cmd_res.status_res.iap_result[1]; - read_partid_serialno.serial_no[2] = iap_cmd_res.status_res.iap_result[2]; -2000c78c: 9305 str r3, [sp, #20] - read_partid_serialno.serial_no[3] = iap_cmd_res.status_res.iap_result[3]; -2000c78e: 9406 str r4, [sp, #24] - - length = (uint8_t)sizeof(read_partid_serialno_t); - usb_transfer_schedule_block(endpoint->in, &read_partid_serialno, length); -2000c790: f001 fb2a bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000c794: 69f0 ldr r0, [r6, #28] -2000c796: f001 fb34 bl 2000de02 - } - return USB_REQUEST_STATUS_OK; -} -2000c79a: 1c28 adds r0, r5, #0 -2000c79c: b012 add sp, #72 ; 0x48 -2000c79e: bd70 pop {r4, r5, r6, pc} - -2000c7a0 : - return USB_REQUEST_STATUS_OK; -} - -usb_request_status_t usb_vendor_request_read_version_string( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c7a0: b538 push {r3, r4, r5, lr} -2000c7a2: 1c05 adds r5, r0, #0 - unsigned int i; - int version_string_len; - - if (stage == USB_TRANSFER_STAGE_SETUP) { -2000c7a4: 2900 cmp r1, #0 -2000c7a6: d122 bne.n 2000c7ee - for(i = 0; i < sizeof(spiflash_buffer); i++) - spiflash_buffer[i] = 0; -2000c7a8: 4c12 ldr r4, [pc, #72] ; (2000c7f4 ) -2000c7aa: 2200 movs r2, #0 -2000c7ac: 190b adds r3, r1, r4 -{ - unsigned int i; - int version_string_len; - - if (stage == USB_TRANSFER_STAGE_SETUP) { - for(i = 0; i < sizeof(spiflash_buffer); i++) -2000c7ae: 2080 movs r0, #128 ; 0x80 -2000c7b0: 3101 adds r1, #1 - spiflash_buffer[i] = 0; -2000c7b2: 701a strb r2, [r3, #0] -{ - unsigned int i; - int version_string_len; - - if (stage == USB_TRANSFER_STAGE_SETUP) { - for(i = 0; i < sizeof(spiflash_buffer); i++) -2000c7b4: 0043 lsls r3, r0, #1 -2000c7b6: 4299 cmp r1, r3 -2000c7b8: d1f6 bne.n 2000c7a8 - spiflash_buffer[i] = 0; - - strcpy((char *)spiflash_buffer, (char *)airspy_conf->conf_hw.version); -2000c7ba: 490f ldr r1, [pc, #60] ; (2000c7f8 ) -2000c7bc: 1c20 adds r0, r4, #0 -2000c7be: 6809 ldr r1, [r1, #0] -2000c7c0: 3108 adds r1, #8 -2000c7c2: f002 f8b5 bl 2000e930 - version_string_len = strlen((char *)spiflash_buffer); -2000c7c6: 1c20 adds r0, r4, #0 -2000c7c8: f002 f8ba bl 2000e940 - strcpy((char *)&spiflash_buffer[version_string_len], version_string); -2000c7cc: 490b ldr r1, [pc, #44] ; (2000c7fc ) -2000c7ce: 1900 adds r0, r0, r4 -2000c7d0: f002 f8ae bl 2000e930 - version_string_len = strlen((char *)spiflash_buffer) + 1; -2000c7d4: 1c20 adds r0, r4, #0 -2000c7d6: f002 f8b3 bl 2000e940 - version_string_len = (version_string_len + 3) & ~0x03; /* Round to a multiple of 4 */ -2000c7da: 1d02 adds r2, r0, #4 -2000c7dc: 2003 movs r0, #3 -2000c7de: 4382 bics r2, r0 - - usb_transfer_schedule_block(endpoint->in, spiflash_buffer, version_string_len); -2000c7e0: 1c21 adds r1, r4, #0 -2000c7e2: 69a8 ldr r0, [r5, #24] -2000c7e4: f001 fb00 bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000c7e8: 69e8 ldr r0, [r5, #28] -2000c7ea: f001 fb0a bl 2000de02 - } - return USB_REQUEST_STATUS_OK; -} -2000c7ee: 2000 movs r0, #0 -2000c7f0: bd38 pop {r3, r4, r5, pc} -2000c7f2: 46c0 nop ; (mov r8, r8) -2000c7f4: 2000f400 .word 0x2000f400 -2000c7f8: 2000ef28 .word 0x2000ef28 -2000c7fc: 2000e950 .word 0x2000e950 - -2000c800 : - } -} - -usb_request_status_t usb_vendor_request_read_spiflash( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c800: b5f8 push {r3, r4, r5, r6, r7, lr} -2000c802: 1c05 adds r5, r0, #0 - uint16_t len; - uint8_t* u8_addr_pt; - uint32_t* u32_addr_pt; - uint32_t* u32_dest_pt; - - if (stage == USB_TRANSFER_STAGE_SETUP) -2000c804: 2900 cmp r1, #0 -2000c806: d131 bne.n 2000c86c - { - addr = (endpoint->setup.value << 16) | endpoint->setup.index; - len = endpoint->setup.length; -2000c808: 88c4 ldrh r4, [r0, #6] - uint32_t* u32_addr_pt; - uint32_t* u32_dest_pt; - - if (stage == USB_TRANSFER_STAGE_SETUP) - { - addr = (endpoint->setup.value << 16) | endpoint->setup.index; -2000c80a: 8847 ldrh r7, [r0, #2] -2000c80c: 8882 ldrh r2, [r0, #4] - len = endpoint->setup.length; - - if(len > W25Q80BV_PAGE_LEN) -2000c80e: 2680 movs r6, #128 ; 0x80 - { - return USB_REQUEST_STATUS_STALL; -2000c810: 2001 movs r0, #1 - if (stage == USB_TRANSFER_STAGE_SETUP) - { - addr = (endpoint->setup.value << 16) | endpoint->setup.index; - len = endpoint->setup.length; - - if(len > W25Q80BV_PAGE_LEN) -2000c812: 4086 lsls r6, r0 -2000c814: 42b4 cmp r4, r6 -2000c816: d836 bhi.n 2000c886 - uint32_t* u32_addr_pt; - uint32_t* u32_dest_pt; - - if (stage == USB_TRANSFER_STAGE_SETUP) - { - addr = (endpoint->setup.value << 16) | endpoint->setup.index; -2000c818: 0438 lsls r0, r7, #16 -2000c81a: 4310 orrs r0, r2 - if(len > W25Q80BV_PAGE_LEN) - { - return USB_REQUEST_STATUS_STALL; - } else - { - if((addr + len) > W25Q80BV_NUM_BYTES) -2000c81c: 2380 movs r3, #128 ; 0x80 -2000c81e: 1907 adds r7, r0, r4 -2000c820: 4e19 ldr r6, [pc, #100] ; (2000c888 ) -2000c822: 035a lsls r2, r3, #13 -2000c824: 4297 cmp r7, r2 -2000c826: d917 bls.n 2000c858 - { - if( (len >= 4) && -2000c828: 2c03 cmp r4, #3 -2000c82a: d90d bls.n 2000c848 - ((len & ADDR_ALIGN_32BITS) == 0) && -2000c82c: 2303 movs r3, #3 - return USB_REQUEST_STATUS_STALL; - } else - { - if((addr + len) > W25Q80BV_NUM_BYTES) - { - if( (len >= 4) && -2000c82e: 1c27 adds r7, r4, #0 -2000c830: 401f ands r7, r3 -2000c832: d109 bne.n 2000c848 - ((len & ADDR_ALIGN_32BITS) == 0) && - ((addr & ADDR_ALIGN_32BITS) == 0) -2000c834: 4003 ands r3, r0 - } else - { - if((addr + len) > W25Q80BV_NUM_BYTES) - { - if( (len >= 4) && - ((len & ADDR_ALIGN_32BITS) == 0) && -2000c836: d108 bne.n 2000c84a - ((addr & ADDR_ALIGN_32BITS) == 0) - ) - { - u32_addr_pt = (uint32_t*)addr; - u32_dest_pt = (uint32_t*)&spiflash_buffer[0]; - for(i=0; i<(len/4); i++) -2000c838: 08a1 lsrs r1, r4, #2 - } else { - return USB_REQUEST_STATUS_OK; - } -} - -usb_request_status_t usb_vendor_request_read_spiflash( -2000c83a: 009a lsls r2, r3, #2 - { - u32_addr_pt = (uint32_t*)addr; - u32_dest_pt = (uint32_t*)&spiflash_buffer[0]; - for(i=0; i<(len/4); i++) - { - u32_dest_pt[i] = u32_addr_pt[i]; -2000c83c: 5817 ldr r7, [r2, r0] - ((addr & ADDR_ALIGN_32BITS) == 0) - ) - { - u32_addr_pt = (uint32_t*)addr; - u32_dest_pt = (uint32_t*)&spiflash_buffer[0]; - for(i=0; i<(len/4); i++) -2000c83e: 3301 adds r3, #1 - { - u32_dest_pt[i] = u32_addr_pt[i]; -2000c840: 50b7 str r7, [r6, r2] - ((addr & ADDR_ALIGN_32BITS) == 0) - ) - { - u32_addr_pt = (uint32_t*)addr; - u32_dest_pt = (uint32_t*)&spiflash_buffer[0]; - for(i=0; i<(len/4); i++) -2000c842: 428b cmp r3, r1 -2000c844: d3f9 bcc.n 2000c83a -2000c846: e00b b.n 2000c860 -2000c848: e000 b.n 2000c84c - u32_dest_pt[i] = u32_addr_pt[i]; - } - } else - { - u8_addr_pt = (uint8_t*)addr; - for(i=0; i - { - spiflash_buffer[i] = u8_addr_pt[i]; -2000c850: 5c0a ldrb r2, [r1, r0] -2000c852: 5472 strb r2, [r6, r1] - u32_dest_pt[i] = u32_addr_pt[i]; - } - } else - { - u8_addr_pt = (uint8_t*)addr; - for(i=0; i - spiflash_buffer[i] = u8_addr_pt[i]; - } - } - } else - { - w25q80bv_read(addr, len, &spiflash_buffer[0]); -2000c858: 1c21 adds r1, r4, #0 -2000c85a: 1c32 adds r2, r6, #0 -2000c85c: f000 fef2 bl 2000d644 - } - usb_transfer_schedule_block(endpoint->in, &spiflash_buffer[0], len); -2000c860: 69a8 ldr r0, [r5, #24] -2000c862: 1c31 adds r1, r6, #0 -2000c864: 1c22 adds r2, r4, #0 -2000c866: f001 fabf bl 2000dde8 -2000c86a: e00b b.n 2000c884 - usb_transfer_schedule_ack(endpoint->out); - return USB_REQUEST_STATUS_OK; - } - } else - { - return USB_REQUEST_STATUS_OK; -2000c86c: 2000 movs r0, #0 - w25q80bv_read(addr, len, &spiflash_buffer[0]); - } - usb_transfer_schedule_block(endpoint->in, &spiflash_buffer[0], len); - return USB_REQUEST_STATUS_OK; - } - } else if (stage == USB_TRANSFER_STAGE_DATA) -2000c86e: 2901 cmp r1, #1 -2000c870: d109 bne.n 2000c886 - { - addr = (endpoint->setup.value << 16) | endpoint->setup.index; - len = endpoint->setup.length; - /* This check is redundant but makes me feel better. */ - if(len > W25Q80BV_PAGE_LEN) -2000c872: 88ea ldrh r2, [r5, #6] -2000c874: 2380 movs r3, #128 ; 0x80 - { - return USB_REQUEST_STATUS_STALL; -2000c876: 1c08 adds r0, r1, #0 - } else if (stage == USB_TRANSFER_STAGE_DATA) - { - addr = (endpoint->setup.value << 16) | endpoint->setup.index; - len = endpoint->setup.length; - /* This check is redundant but makes me feel better. */ - if(len > W25Q80BV_PAGE_LEN) -2000c878: 0059 lsls r1, r3, #1 -2000c87a: 428a cmp r2, r1 -2000c87c: d803 bhi.n 2000c886 - { - return USB_REQUEST_STATUS_STALL; - } else - { - usb_transfer_schedule_ack(endpoint->out); -2000c87e: 69e8 ldr r0, [r5, #28] -2000c880: f001 fabf bl 2000de02 - return USB_REQUEST_STATUS_OK; -2000c884: 2000 movs r0, #0 - } - } else - { - return USB_REQUEST_STATUS_OK; - } -} -2000c886: bdf8 pop {r3, r4, r5, r6, r7, pc} -2000c888: 2000f400 .word 0x2000f400 - -2000c88c : - return USB_REQUEST_STATUS_OK; -} - -usb_request_status_t usb_vendor_request_write_spiflash( -usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage) -{ -2000c88c: b570 push {r4, r5, r6, lr} -2000c88e: 1c04 adds r4, r0, #0 -2000c890: 1e0d subs r5, r1, #0 - uint32_t addr = 0; - uint16_t len = 0; - - if (stage == USB_TRANSFER_STAGE_SETUP) -2000c892: d117 bne.n 2000c8c4 - { - addr = (endpoint->setup.value << 16) | endpoint->setup.index; - len = endpoint->setup.length; -2000c894: 88e2 ldrh r2, [r4, #6] - if ((len > W25Q80BV_PAGE_LEN) || (addr > W25Q80BV_NUM_BYTES) - || ((addr + len) > W25Q80BV_NUM_BYTES)) - { - return USB_REQUEST_STATUS_STALL; -2000c896: 2301 movs r3, #1 - - if (stage == USB_TRANSFER_STAGE_SETUP) - { - addr = (endpoint->setup.value << 16) | endpoint->setup.index; - len = endpoint->setup.length; - if ((len > W25Q80BV_PAGE_LEN) || (addr > W25Q80BV_NUM_BYTES) -2000c898: 2680 movs r6, #128 ; 0x80 - uint32_t addr = 0; - uint16_t len = 0; - - if (stage == USB_TRANSFER_STAGE_SETUP) - { - addr = (endpoint->setup.value << 16) | endpoint->setup.index; -2000c89a: 8840 ldrh r0, [r0, #2] -2000c89c: 88a1 ldrh r1, [r4, #4] - len = endpoint->setup.length; - if ((len > W25Q80BV_PAGE_LEN) || (addr > W25Q80BV_NUM_BYTES) -2000c89e: 409e lsls r6, r3 -2000c8a0: 42b2 cmp r2, r6 -2000c8a2: d82a bhi.n 2000c8fa - uint32_t addr = 0; - uint16_t len = 0; - - if (stage == USB_TRANSFER_STAGE_SETUP) - { - addr = (endpoint->setup.value << 16) | endpoint->setup.index; -2000c8a4: 0405 lsls r5, r0, #16 - len = endpoint->setup.length; - if ((len > W25Q80BV_PAGE_LEN) || (addr > W25Q80BV_NUM_BYTES) -2000c8a6: 2080 movs r0, #128 ; 0x80 - uint32_t addr = 0; - uint16_t len = 0; - - if (stage == USB_TRANSFER_STAGE_SETUP) - { - addr = (endpoint->setup.value << 16) | endpoint->setup.index; -2000c8a8: 430d orrs r5, r1 - len = endpoint->setup.length; - if ((len > W25Q80BV_PAGE_LEN) || (addr > W25Q80BV_NUM_BYTES) -2000c8aa: 0341 lsls r1, r0, #13 -2000c8ac: 428d cmp r5, r1 -2000c8ae: d824 bhi.n 2000c8fa - || ((addr + len) > W25Q80BV_NUM_BYTES)) -2000c8b0: 18ae adds r6, r5, r2 -2000c8b2: 428e cmp r6, r1 -2000c8b4: d821 bhi.n 2000c8fa - { - return USB_REQUEST_STATUS_STALL; - } else - { - usb_transfer_schedule_block(endpoint->out, &spiflash_buffer[0], len); -2000c8b6: 4912 ldr r1, [pc, #72] ; (2000c900 ) -2000c8b8: 69e0 ldr r0, [r4, #28] -2000c8ba: f001 fa95 bl 2000dde8 - w25q80bv_setup(); -2000c8be: f000 fd31 bl 2000d324 -2000c8c2: e019 b.n 2000c8f8 - w25q80bv_program(addr, len, &spiflash_buffer[0]); - usb_transfer_schedule_ack(endpoint->in); - return USB_REQUEST_STATUS_OK; - } - } else { - return USB_REQUEST_STATUS_OK; -2000c8c4: 2300 movs r3, #0 - { - usb_transfer_schedule_block(endpoint->out, &spiflash_buffer[0], len); - w25q80bv_setup(); - return USB_REQUEST_STATUS_OK; - } - } else if (stage == USB_TRANSFER_STAGE_DATA) -2000c8c6: 2901 cmp r1, #1 -2000c8c8: d117 bne.n 2000c8fa - { - addr = (endpoint->setup.value << 16) | endpoint->setup.index; - len = endpoint->setup.length; -2000c8ca: 88e1 ldrh r1, [r4, #6] - /* This check is redundant but makes me feel better. */ - if ((len > W25Q80BV_PAGE_LEN) || (addr > W25Q80BV_NUM_BYTES) -2000c8cc: 2680 movs r6, #128 ; 0x80 - || ((addr + len) > W25Q80BV_NUM_BYTES)) - { - return USB_REQUEST_STATUS_STALL; -2000c8ce: 1c2b adds r3, r5, #0 - w25q80bv_setup(); - return USB_REQUEST_STATUS_OK; - } - } else if (stage == USB_TRANSFER_STAGE_DATA) - { - addr = (endpoint->setup.value << 16) | endpoint->setup.index; -2000c8d0: 8840 ldrh r0, [r0, #2] -2000c8d2: 88a2 ldrh r2, [r4, #4] - len = endpoint->setup.length; - /* This check is redundant but makes me feel better. */ - if ((len > W25Q80BV_PAGE_LEN) || (addr > W25Q80BV_NUM_BYTES) -2000c8d4: 0075 lsls r5, r6, #1 -2000c8d6: 42a9 cmp r1, r5 -2000c8d8: d80f bhi.n 2000c8fa - w25q80bv_setup(); - return USB_REQUEST_STATUS_OK; - } - } else if (stage == USB_TRANSFER_STAGE_DATA) - { - addr = (endpoint->setup.value << 16) | endpoint->setup.index; -2000c8da: 0400 lsls r0, r0, #16 -2000c8dc: 4310 orrs r0, r2 - len = endpoint->setup.length; - /* This check is redundant but makes me feel better. */ - if ((len > W25Q80BV_PAGE_LEN) || (addr > W25Q80BV_NUM_BYTES) -2000c8de: 2280 movs r2, #128 ; 0x80 -2000c8e0: 0356 lsls r6, r2, #13 -2000c8e2: 42b0 cmp r0, r6 -2000c8e4: d809 bhi.n 2000c8fa - || ((addr + len) > W25Q80BV_NUM_BYTES)) -2000c8e6: 1845 adds r5, r0, r1 -2000c8e8: 42b5 cmp r5, r6 -2000c8ea: d806 bhi.n 2000c8fa - { - return USB_REQUEST_STATUS_STALL; - } else { - w25q80bv_program(addr, len, &spiflash_buffer[0]); -2000c8ec: 4a04 ldr r2, [pc, #16] ; (2000c900 ) -2000c8ee: f000 fe69 bl 2000d5c4 - usb_transfer_schedule_ack(endpoint->in); -2000c8f2: 69a0 ldr r0, [r4, #24] -2000c8f4: f001 fa85 bl 2000de02 - return USB_REQUEST_STATUS_OK; -2000c8f8: 2300 movs r3, #0 - } - } else { - return USB_REQUEST_STATUS_OK; - } -} -2000c8fa: 1c18 adds r0, r3, #0 -2000c8fc: bd70 pop {r4, r5, r6, pc} -2000c8fe: 46c0 nop ; (mov r8, r8) -2000c900: 2000f400 .word 0x2000f400 - -2000c904 : -} - -usb_request_status_t usb_vendor_request_read_r820t( -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ -2000c904: b570 push {r4, r5, r6, lr} - usb_transfer_schedule_ack(endpoint->out); - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_STALL; - } else { - return USB_REQUEST_STATUS_OK; -2000c906: 2500 movs r5, #0 -} - -usb_request_status_t usb_vendor_request_read_r820t( -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ -2000c908: 1c04 adds r4, r0, #0 -2000c90a: 1e0e subs r6, r1, #0 - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000c90c: 42ae cmp r6, r5 -2000c90e: d114 bne.n 2000c93a - { - if( endpoint->setup.index < 256 ) -2000c910: 8881 ldrh r1, [r0, #4] - endpoint->buffer[0] = value; - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); - usb_transfer_schedule_ack(endpoint->out); - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_STALL; -2000c912: 2501 movs r5, #1 -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - if( endpoint->setup.index < 256 ) -2000c914: 29ff cmp r1, #255 ; 0xff -2000c916: d810 bhi.n 2000c93a - { - const uint8_t value = airspy_r820t_read_single(&airspy_conf->r820t_conf_rw, endpoint->setup.index); -2000c918: 4b09 ldr r3, [pc, #36] ; (2000c940 ) -2000c91a: b2c9 uxtb r1, r1 -2000c91c: 6818 ldr r0, [r3, #0] -2000c91e: 3048 adds r0, #72 ; 0x48 -2000c920: f000 faf4 bl 2000cf0c - endpoint->buffer[0] = value; - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c924: 1c21 adds r1, r4, #0 -2000c926: 1c2a adds r2, r5, #0 - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - if( endpoint->setup.index < 256 ) - { - const uint8_t value = airspy_r820t_read_single(&airspy_conf->r820t_conf_rw, endpoint->setup.index); - endpoint->buffer[0] = value; -2000c928: 7220 strb r0, [r4, #8] - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c92a: 3108 adds r1, #8 -2000c92c: 69a0 ldr r0, [r4, #24] -2000c92e: f001 fa5b bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000c932: 69e0 ldr r0, [r4, #28] -2000c934: f001 fa65 bl 2000de02 - return USB_REQUEST_STATUS_OK; -2000c938: 1c35 adds r5, r6, #0 - } - return USB_REQUEST_STATUS_STALL; - } else { - return USB_REQUEST_STATUS_OK; - } -} -2000c93a: 1c28 adds r0, r5, #0 -2000c93c: bd70 pop {r4, r5, r6, pc} -2000c93e: 46c0 nop ; (mov r8, r8) -2000c940: 2000ef28 .word 0x2000ef28 - -2000c944 : -} - -usb_request_status_t usb_vendor_request_write_r820t( -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ -2000c944: b538 push {r3, r4, r5, lr} -2000c946: 1c04 adds r4, r0, #0 - return USB_REQUEST_STATUS_OK; - } - } - return USB_REQUEST_STATUS_STALL; - } else { - return USB_REQUEST_STATUS_OK; -2000c948: 2000 movs r0, #0 -} - -usb_request_status_t usb_vendor_request_write_r820t( -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ -2000c94a: 1e0d subs r5, r1, #0 - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000c94c: 4285 cmp r5, r0 -2000c94e: d111 bne.n 2000c974 - { - if( endpoint->setup.index < 256 ) -2000c950: 88a1 ldrh r1, [r4, #4] - airspy_r820t_write_single(&airspy_conf->r820t_conf_rw, endpoint->setup.index, endpoint->setup.value); - usb_transfer_schedule_ack(endpoint->in); - return USB_REQUEST_STATUS_OK; - } - } - return USB_REQUEST_STATUS_STALL; -2000c952: 2001 movs r0, #1 -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - if( endpoint->setup.index < 256 ) -2000c954: 29ff cmp r1, #255 ; 0xff -2000c956: d80d bhi.n 2000c974 - { - if( endpoint->setup.value < 256 ) -2000c958: 8862 ldrh r2, [r4, #2] -2000c95a: 2aff cmp r2, #255 ; 0xff -2000c95c: d80a bhi.n 2000c974 - { - airspy_r820t_write_single(&airspy_conf->r820t_conf_rw, endpoint->setup.index, endpoint->setup.value); -2000c95e: 4b06 ldr r3, [pc, #24] ; (2000c978 ) -2000c960: b2c9 uxtb r1, r1 -2000c962: 6818 ldr r0, [r3, #0] -2000c964: b2d2 uxtb r2, r2 -2000c966: 3048 adds r0, #72 ; 0x48 -2000c968: f000 fa8e bl 2000ce88 - usb_transfer_schedule_ack(endpoint->in); -2000c96c: 69a0 ldr r0, [r4, #24] -2000c96e: f001 fa48 bl 2000de02 - return USB_REQUEST_STATUS_OK; -2000c972: 1c28 adds r0, r5, #0 - } - return USB_REQUEST_STATUS_STALL; - } else { - return USB_REQUEST_STATUS_OK; - } -} -2000c974: bd38 pop {r3, r4, r5, pc} -2000c976: 46c0 nop ; (mov r8, r8) -2000c978: 2000ef28 .word 0x2000ef28 - -2000c97c : -} - -usb_request_status_t usb_vendor_request_read_si5351c( -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ -2000c97c: b570 push {r4, r5, r6, lr} - usb_transfer_schedule_ack(endpoint->out); - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_STALL; - } else { - return USB_REQUEST_STATUS_OK; -2000c97e: 2500 movs r5, #0 -} - -usb_request_status_t usb_vendor_request_read_si5351c( -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ -2000c980: 1c04 adds r4, r0, #0 -2000c982: 1e0e subs r6, r1, #0 - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000c984: 42ae cmp r6, r5 -2000c986: d111 bne.n 2000c9ac - { - if( endpoint->setup.index < 256 ) -2000c988: 8880 ldrh r0, [r0, #4] - endpoint->buffer[0] = value; - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); - usb_transfer_schedule_ack(endpoint->out); - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_STALL; -2000c98a: 2501 movs r5, #1 -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - if( endpoint->setup.index < 256 ) -2000c98c: 28ff cmp r0, #255 ; 0xff -2000c98e: d80d bhi.n 2000c9ac - { - const uint8_t value = si5351c_read_single(endpoint->setup.index); -2000c990: b2c0 uxtb r0, r0 -2000c992: f000 f9c0 bl 2000cd16 - endpoint->buffer[0] = value; - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c996: 1c21 adds r1, r4, #0 -2000c998: 1c2a adds r2, r5, #0 - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - if( endpoint->setup.index < 256 ) - { - const uint8_t value = si5351c_read_single(endpoint->setup.index); - endpoint->buffer[0] = value; -2000c99a: 7220 strb r0, [r4, #8] - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000c99c: 3108 adds r1, #8 -2000c99e: 69a0 ldr r0, [r4, #24] -2000c9a0: f001 fa22 bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000c9a4: 69e0 ldr r0, [r4, #28] -2000c9a6: f001 fa2c bl 2000de02 - return USB_REQUEST_STATUS_OK; -2000c9aa: 1c35 adds r5, r6, #0 - } - return USB_REQUEST_STATUS_STALL; - } else { - return USB_REQUEST_STATUS_OK; - } -} -2000c9ac: 1c28 adds r0, r5, #0 -2000c9ae: bd70 pop {r4, r5, r6, pc} - -2000c9b0 : -} - -usb_request_status_t usb_vendor_request_write_si5351c( -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ -2000c9b0: b538 push {r3, r4, r5, lr} -2000c9b2: 1c04 adds r4, r0, #0 - return USB_REQUEST_STATUS_OK; - } - } - return USB_REQUEST_STATUS_STALL; - } else { - return USB_REQUEST_STATUS_OK; -2000c9b4: 2000 movs r0, #0 -} - -usb_request_status_t usb_vendor_request_write_si5351c( -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ -2000c9b6: 1e0d subs r5, r1, #0 - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000c9b8: 4285 cmp r5, r0 -2000c9ba: d10e bne.n 2000c9da - { - if( endpoint->setup.index < 256 ) -2000c9bc: 88a3 ldrh r3, [r4, #4] - si5351c_write_single(endpoint->setup.index, endpoint->setup.value); - usb_transfer_schedule_ack(endpoint->in); - return USB_REQUEST_STATUS_OK; - } - } - return USB_REQUEST_STATUS_STALL; -2000c9be: 2001 movs r0, #1 -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - if( endpoint->setup.index < 256 ) -2000c9c0: 2bff cmp r3, #255 ; 0xff -2000c9c2: d80a bhi.n 2000c9da - { - if( endpoint->setup.value < 256 ) -2000c9c4: 8861 ldrh r1, [r4, #2] -2000c9c6: 29ff cmp r1, #255 ; 0xff -2000c9c8: d807 bhi.n 2000c9da - { - si5351c_write_single(endpoint->setup.index, endpoint->setup.value); -2000c9ca: b2d8 uxtb r0, r3 -2000c9cc: b2c9 uxtb r1, r1 -2000c9ce: f000 f991 bl 2000ccf4 - usb_transfer_schedule_ack(endpoint->in); -2000c9d2: 69a0 ldr r0, [r4, #24] -2000c9d4: f001 fa15 bl 2000de02 - return USB_REQUEST_STATUS_OK; -2000c9d8: 1c28 adds r0, r5, #0 - } - return USB_REQUEST_STATUS_STALL; - } else { - return USB_REQUEST_STATUS_OK; - } -} -2000c9da: bd38 pop {r3, r4, r5, pc} - -2000c9dc : - -usb_request_status_t usb_vendor_request_set_receiver_mode( -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage -) -{ -2000c9dc: b538 push {r3, r4, r5, lr} - default: - return USB_REQUEST_STATUS_STALL; - } - } else - { - return USB_REQUEST_STATUS_OK; -2000c9de: 2300 movs r3, #0 - -usb_request_status_t usb_vendor_request_set_receiver_mode( -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage -) -{ -2000c9e0: 1c05 adds r5, r0, #0 -2000c9e2: 1e0c subs r4, r1, #0 - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000c9e4: 429c cmp r4, r3 -2000c9e6: d10a bne.n 2000c9fe - { - switch( endpoint->setup.value ) -2000c9e8: 8840 ldrh r0, [r0, #2] - case RECEIVER_MODE_RX: - set_receiver_mode(endpoint->setup.value); - usb_transfer_schedule_ack(endpoint->in); - return USB_REQUEST_STATUS_OK; - default: - return USB_REQUEST_STATUS_STALL; -2000c9ea: 2301 movs r3, #1 -const usb_transfer_stage_t stage -) -{ - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - switch( endpoint->setup.value ) -2000c9ec: 4298 cmp r0, r3 -2000c9ee: d806 bhi.n 2000c9fe - { - case RECEIVER_MODE_OFF: - case RECEIVER_MODE_RX: - set_receiver_mode(endpoint->setup.value); -2000c9f0: b2c0 uxtb r0, r0 -2000c9f2: f7ff fc67 bl 2000c2c4 - usb_transfer_schedule_ack(endpoint->in); -2000c9f6: 69a8 ldr r0, [r5, #24] -2000c9f8: f001 fa03 bl 2000de02 - return USB_REQUEST_STATUS_OK; -2000c9fc: 1c23 adds r3, r4, #0 - } - } else - { - return USB_REQUEST_STATUS_OK; - } -} -2000c9fe: 1c18 adds r0, r3, #0 -2000ca00: bd38 pop {r3, r4, r5, pc} - ... - -2000ca04 : -} - -usb_request_status_t usb_vendor_request_write_gpio_command( -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ -2000ca04: b538 push {r3, r4, r5, lr} - return USB_REQUEST_STATUS_OK; - } - } - return USB_REQUEST_STATUS_STALL; - } else { - return USB_REQUEST_STATUS_OK; -2000ca06: 2300 movs r3, #0 - uint32_t port_num; - uint32_t pin_num; - uint16_t index; - uint16_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000ca08: 4299 cmp r1, r3 -2000ca0a: d11b bne.n 2000ca44 - { - index = endpoint->setup.index; -2000ca0c: 8882 ldrh r2, [r0, #4] - } - usb_transfer_schedule_ack(endpoint->in); - return USB_REQUEST_STATUS_OK; - } - } - return USB_REQUEST_STATUS_STALL; -2000ca0e: 2301 movs r3, #1 - uint16_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - index = endpoint->setup.index; - if( index < 256 ) -2000ca10: 2aff cmp r2, #255 ; 0xff -2000ca12: d817 bhi.n 2000ca44 - { - value = endpoint->setup.value; -2000ca14: 8844 ldrh r4, [r0, #2] - if( value < 2 ) -2000ca16: 429c cmp r4, r3 -2000ca18: d814 bhi.n 2000ca44 - { - port_num = index >> 5; - port_num = (GPIO_PORT_BASE + 0x2000 + (port_num * 4)); -2000ca1a: 4d0b ldr r5, [pc, #44] ; (2000ca48 ) - if( index < 256 ) - { - value = endpoint->setup.value; - if( value < 2 ) - { - port_num = index >> 5; -2000ca1c: 0951 lsrs r1, r2, #5 - port_num = (GPIO_PORT_BASE + 0x2000 + (port_num * 4)); -2000ca1e: 1949 adds r1, r1, r5 - - pin_num = index & 0x1F; - pin_num = (1 << pin_num); -2000ca20: 251f movs r5, #31 -2000ca22: 402a ands r2, r5 - { - value = endpoint->setup.value; - if( value < 2 ) - { - port_num = index >> 5; - port_num = (GPIO_PORT_BASE + 0x2000 + (port_num * 4)); -2000ca24: 0089 lsls r1, r1, #2 - - pin_num = index & 0x1F; - pin_num = (1 << pin_num); -2000ca26: 4093 lsls r3, r2 - - if(value == 1) -2000ca28: 2c01 cmp r4, #1 -2000ca2a: d103 bne.n 2000ca34 - .reserved = 0, -}; - -__inline__ void gpio_set(uint32_t gpioport, uint32_t gpios) -{ - GPIO_SET(gpioport) = gpios; -2000ca2c: 2580 movs r5, #128 ; 0x80 -2000ca2e: 00aa lsls r2, r5, #2 -2000ca30: 1889 adds r1, r1, r2 -2000ca32: e002 b.n 2000ca3a -} - -__inline__ void gpio_clear(uint32_t gpioport, uint32_t gpios) -{ - GPIO_CLR(gpioport) = gpios; -2000ca34: 22a0 movs r2, #160 ; 0xa0 -2000ca36: 0094 lsls r4, r2, #2 -2000ca38: 1909 adds r1, r1, r4 -2000ca3a: 600b str r3, [r1, #0] - gpio_set(port_num, pin_num); - }else - { - gpio_clear(port_num, pin_num); - } - usb_transfer_schedule_ack(endpoint->in); -2000ca3c: 6980 ldr r0, [r0, #24] -2000ca3e: f001 f9e0 bl 2000de02 - return USB_REQUEST_STATUS_OK; -2000ca42: 2300 movs r3, #0 - } - return USB_REQUEST_STATUS_STALL; - } else { - return USB_REQUEST_STATUS_OK; - } -} -2000ca44: 1c18 adds r0, r3, #0 -2000ca46: bd38 pop {r3, r4, r5, pc} -2000ca48: 1003d800 .word 0x1003d800 - -2000ca4c : - -usb_request_status_t usb_vendor_request_read_gpio_command( -usb_endpoint_t* const endpoint, -const usb_transfer_stage_t stage) -{ -2000ca4c: b510 push {r4, lr} -2000ca4e: 1c04 adds r4, r0, #0 - usb_transfer_schedule_ack(endpoint->out); - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_STALL; - } else { - return USB_REQUEST_STATUS_OK; -2000ca50: 2000 movs r0, #0 -{ - uint32_t port_num; - uint32_t pin_num; - uint8_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) -2000ca52: 4281 cmp r1, r0 -2000ca54: d122 bne.n 2000ca9c - { - if( endpoint->setup.index < 256 ) -2000ca56: 88a2 ldrh r2, [r4, #4] - endpoint->buffer[0] = value; - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); - usb_transfer_schedule_ack(endpoint->out); - return USB_REQUEST_STATUS_OK; - } - return USB_REQUEST_STATUS_STALL; -2000ca58: 2001 movs r0, #1 - uint32_t pin_num; - uint8_t value; - - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - if( endpoint->setup.index < 256 ) -2000ca5a: 2aff cmp r2, #255 ; 0xff -2000ca5c: d81e bhi.n 2000ca9c - { - port_num = endpoint->setup.index >> 5; - port_num = (GPIO_PORT_BASE + 0x2000 + (port_num * 4)); -2000ca5e: 4910 ldr r1, [pc, #64] ; (2000caa0 ) - - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - if( endpoint->setup.index < 256 ) - { - port_num = endpoint->setup.index >> 5; -2000ca60: 0953 lsrs r3, r2, #5 - port_num = (GPIO_PORT_BASE + 0x2000 + (port_num * 4)); -2000ca62: 185b adds r3, r3, r1 - - pin_num = endpoint->setup.index & 0x1F; - pin_num = (1 << pin_num); -2000ca64: 211f movs r1, #31 -2000ca66: 400a ands r2, r1 - if( stage == USB_TRANSFER_STAGE_SETUP ) - { - if( endpoint->setup.index < 256 ) - { - port_num = endpoint->setup.index >> 5; - port_num = (GPIO_PORT_BASE + 0x2000 + (port_num * 4)); -2000ca68: 009b lsls r3, r3, #2 - - pin_num = endpoint->setup.index & 0x1F; - pin_num = (1 << pin_num); -2000ca6a: 4090 lsls r0, r2 - - /* If GPIO DIR is set to OUT read the GPIO_SET reg else just read GPIO PIN */ - if( (GPIO_DIR(port_num) & pin_num) ) -2000ca6c: 681a ldr r2, [r3, #0] -2000ca6e: 4210 tst r0, r2 -2000ca70: d003 beq.n 2000ca7a - { - value = ((GPIO_SET(port_num) & pin_num) != 0); -2000ca72: 2180 movs r1, #128 ; 0x80 -2000ca74: 008a lsls r2, r1, #2 -2000ca76: 189b adds r3, r3, r2 -2000ca78: e001 b.n 2000ca7e - GPIO_CLR(gpioport) = gpios; -} - -__inline__ uint32_t gpio_get(uint32_t gpioport, uint32_t gpios) -{ - return (GPIO_PIN(gpioport) & gpios) != 0; -2000ca7a: 3301 adds r3, #1 -2000ca7c: 33ff adds r3, #255 ; 0xff -2000ca7e: 681b ldr r3, [r3, #0] - }else - { - value = gpio_get(port_num, pin_num); - } - endpoint->buffer[0] = value; - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000ca80: 1c21 adds r1, r4, #0 - GPIO_CLR(gpioport) = gpios; -} - -__inline__ uint32_t gpio_get(uint32_t gpioport, uint32_t gpios) -{ - return (GPIO_PIN(gpioport) & gpios) != 0; -2000ca82: 4018 ands r0, r3 - if( (GPIO_DIR(port_num) & pin_num) ) - { - value = ((GPIO_SET(port_num) & pin_num) != 0); - }else - { - value = gpio_get(port_num, pin_num); -2000ca84: 1e43 subs r3, r0, #1 -2000ca86: 4198 sbcs r0, r3 - } - endpoint->buffer[0] = value; -2000ca88: 7220 strb r0, [r4, #8] - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000ca8a: 3108 adds r1, #8 -2000ca8c: 2201 movs r2, #1 -2000ca8e: 69a0 ldr r0, [r4, #24] -2000ca90: f001 f9aa bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000ca94: 69e0 ldr r0, [r4, #28] -2000ca96: f001 f9b4 bl 2000de02 - return USB_REQUEST_STATUS_OK; -2000ca9a: 2000 movs r0, #0 - } - return USB_REQUEST_STATUS_STALL; - } else { - return USB_REQUEST_STATUS_OK; - } -} -2000ca9c: bd10 pop {r4, pc} -2000ca9e: 46c0 nop ; (mov r8, r8) -2000caa0: 1003d800 .word 0x1003d800 - -2000caa4 : - .reserved = 0, -}; - -__inline__ void gpio_set(uint32_t gpioport, uint32_t gpios) -{ - GPIO_SET(gpioport) = gpios; -2000caa4: 2380 movs r3, #128 ; 0x80 -2000caa6: 009a lsls r2, r3, #2 -2000caa8: 1880 adds r0, r0, r2 -2000caaa: 6001 str r1, [r0, #0] -} -2000caac: 4770 bx lr - -2000caae : - -__inline__ void gpio_clear(uint32_t gpioport, uint32_t gpios) -{ - GPIO_CLR(gpioport) = gpios; -2000caae: 23a0 movs r3, #160 ; 0xa0 -2000cab0: 009a lsls r2, r3, #2 -2000cab2: 1880 adds r0, r0, r2 -2000cab4: 6001 str r1, [r0, #0] -} -2000cab6: 4770 bx lr - -2000cab8 : -{ - return (GPIO_PIN(gpioport) & gpios) != 0; -} - -void usb_streaming_disable(void) -{ -2000cab8: b508 push {r3, lr} - usb_endpoint_disable(&usb_endpoint_bulk_in); -2000caba: 4803 ldr r0, [pc, #12] ; (2000cac8 ) -2000cabc: f000 fece bl 2000d85c - usb_endpoint_disable(&usb_endpoint_bulk_out); -2000cac0: 4802 ldr r0, [pc, #8] ; (2000cacc ) -2000cac2: f000 fecb bl 2000d85c -} -2000cac6: bd08 pop {r3, pc} -2000cac8: 2000ef00 .word 0x2000ef00 -2000cacc: 2000eea0 .word 0x2000eea0 - -2000cad0 : -usb_request_handler_fn vendor_request_handler[AIRSPY_CMD_MAX+1]; - -void airspy_usb_req_init(void) -{ - /* Init default sample_rate conf */ - sample_rate_conf_no = AIRSPY_SAMPLERATE_DEFAULT_CONF; -2000cad0: 4b1f ldr r3, [pc, #124] ; (2000cb50 ) - - /* Init default value to 100.0MHz */ - set_freq_params.freq_hz = 100000000; -2000cad2: 4920 ldr r1, [pc, #128] ; (2000cb54 ) -2000cad4: 4820 ldr r0, [pc, #128] ; (2000cb58 ) -usb_request_handler_fn vendor_request_handler[AIRSPY_CMD_MAX+1]; - -void airspy_usb_req_init(void) -{ - /* Init default sample_rate conf */ - sample_rate_conf_no = AIRSPY_SAMPLERATE_DEFAULT_CONF; -2000cad6: 2200 movs r2, #0 -2000cad8: 701a strb r2, [r3, #0] - - /* Init default value to 100.0MHz */ - set_freq_params.freq_hz = 100000000; -2000cada: 6008 str r0, [r1, #0] - - /* TODO remove this code, for test => INVALID => RESET */ - vendor_request_handler[AIRSPY_INVALID] = usb_vendor_request_reset; -2000cadc: 4b1f ldr r3, [pc, #124] ; (2000cb5c ) -2000cade: 4a20 ldr r2, [pc, #128] ; (2000cb60 ) - - vendor_request_handler[AIRSPY_RECEIVER_MODE] = usb_vendor_request_set_receiver_mode; -2000cae0: 4820 ldr r0, [pc, #128] ; (2000cb64 ) - - vendor_request_handler[AIRSPY_SI5351C_WRITE] = usb_vendor_request_write_si5351c; -2000cae2: 4921 ldr r1, [pc, #132] ; (2000cb68 ) - - /* Init default value to 100.0MHz */ - set_freq_params.freq_hz = 100000000; - - /* TODO remove this code, for test => INVALID => RESET */ - vendor_request_handler[AIRSPY_INVALID] = usb_vendor_request_reset; -2000cae4: 601a str r2, [r3, #0] - - vendor_request_handler[AIRSPY_RECEIVER_MODE] = usb_vendor_request_set_receiver_mode; -2000cae6: 6058 str r0, [r3, #4] - - vendor_request_handler[AIRSPY_SI5351C_WRITE] = usb_vendor_request_write_si5351c; -2000cae8: 6099 str r1, [r3, #8] - vendor_request_handler[AIRSPY_SI5351C_READ] = usb_vendor_request_read_si5351c; -2000caea: 4a20 ldr r2, [pc, #128] ; (2000cb6c ) - - vendor_request_handler[AIRSPY_R820T_WRITE] = usb_vendor_request_write_r820t; -2000caec: 4820 ldr r0, [pc, #128] ; (2000cb70 ) - vendor_request_handler[AIRSPY_R820T_READ] = usb_vendor_request_read_r820t; -2000caee: 4921 ldr r1, [pc, #132] ; (2000cb74 ) - vendor_request_handler[AIRSPY_INVALID] = usb_vendor_request_reset; - - vendor_request_handler[AIRSPY_RECEIVER_MODE] = usb_vendor_request_set_receiver_mode; - - vendor_request_handler[AIRSPY_SI5351C_WRITE] = usb_vendor_request_write_si5351c; - vendor_request_handler[AIRSPY_SI5351C_READ] = usb_vendor_request_read_si5351c; -2000caf0: 60da str r2, [r3, #12] - - vendor_request_handler[AIRSPY_R820T_WRITE] = usb_vendor_request_write_r820t; -2000caf2: 6118 str r0, [r3, #16] - vendor_request_handler[AIRSPY_R820T_READ] = usb_vendor_request_read_r820t; -2000caf4: 6159 str r1, [r3, #20] - - vendor_request_handler[AIRSPY_SPIFLASH_ERASE] = usb_vendor_request_erase_spiflash; -2000caf6: 4a20 ldr r2, [pc, #128] ; (2000cb78 ) - vendor_request_handler[AIRSPY_SPIFLASH_WRITE] = usb_vendor_request_write_spiflash; -2000caf8: 4820 ldr r0, [pc, #128] ; (2000cb7c ) - vendor_request_handler[AIRSPY_SPIFLASH_READ] = usb_vendor_request_read_spiflash; -2000cafa: 4921 ldr r1, [pc, #132] ; (2000cb80 ) - vendor_request_handler[AIRSPY_SI5351C_READ] = usb_vendor_request_read_si5351c; - - vendor_request_handler[AIRSPY_R820T_WRITE] = usb_vendor_request_write_r820t; - vendor_request_handler[AIRSPY_R820T_READ] = usb_vendor_request_read_r820t; - - vendor_request_handler[AIRSPY_SPIFLASH_ERASE] = usb_vendor_request_erase_spiflash; -2000cafc: 619a str r2, [r3, #24] - vendor_request_handler[AIRSPY_SPIFLASH_WRITE] = usb_vendor_request_write_spiflash; -2000cafe: 61d8 str r0, [r3, #28] - vendor_request_handler[AIRSPY_SPIFLASH_READ] = usb_vendor_request_read_spiflash; -2000cb00: 6219 str r1, [r3, #32] - - vendor_request_handler[AIRSPY_BOARD_ID_READ] = usb_vendor_request_read_board_id; -2000cb02: 4a20 ldr r2, [pc, #128] ; (2000cb84 ) - vendor_request_handler[AIRSPY_VERSION_STRING_READ] = usb_vendor_request_read_version_string; -2000cb04: 4820 ldr r0, [pc, #128] ; (2000cb88 ) - vendor_request_handler[AIRSPY_BOARD_PARTID_SERIALNO_READ] = usb_vendor_request_read_partid_serialno; -2000cb06: 4921 ldr r1, [pc, #132] ; (2000cb8c ) - - vendor_request_handler[AIRSPY_SPIFLASH_ERASE] = usb_vendor_request_erase_spiflash; - vendor_request_handler[AIRSPY_SPIFLASH_WRITE] = usb_vendor_request_write_spiflash; - vendor_request_handler[AIRSPY_SPIFLASH_READ] = usb_vendor_request_read_spiflash; - - vendor_request_handler[AIRSPY_BOARD_ID_READ] = usb_vendor_request_read_board_id; -2000cb08: 625a str r2, [r3, #36] ; 0x24 - vendor_request_handler[AIRSPY_VERSION_STRING_READ] = usb_vendor_request_read_version_string; -2000cb0a: 6298 str r0, [r3, #40] ; 0x28 - vendor_request_handler[AIRSPY_BOARD_PARTID_SERIALNO_READ] = usb_vendor_request_read_partid_serialno; -2000cb0c: 62d9 str r1, [r3, #44] ; 0x2c - - vendor_request_handler[AIRSPY_SET_SAMPLERATE] = usb_vendor_request_set_samplerate; -2000cb0e: 4a20 ldr r2, [pc, #128] ; (2000cb90 ) - - vendor_request_handler[AIRSPY_SET_FREQ] = usb_vendor_request_set_freq; -2000cb10: 4820 ldr r0, [pc, #128] ; (2000cb94 ) - - vendor_request_handler[AIRSPY_SET_LNA_GAIN] = usb_vendor_request_set_lna_gain; -2000cb12: 4921 ldr r1, [pc, #132] ; (2000cb98 ) - - vendor_request_handler[AIRSPY_BOARD_ID_READ] = usb_vendor_request_read_board_id; - vendor_request_handler[AIRSPY_VERSION_STRING_READ] = usb_vendor_request_read_version_string; - vendor_request_handler[AIRSPY_BOARD_PARTID_SERIALNO_READ] = usb_vendor_request_read_partid_serialno; - - vendor_request_handler[AIRSPY_SET_SAMPLERATE] = usb_vendor_request_set_samplerate; -2000cb14: 631a str r2, [r3, #48] ; 0x30 - - vendor_request_handler[AIRSPY_SET_FREQ] = usb_vendor_request_set_freq; -2000cb16: 6358 str r0, [r3, #52] ; 0x34 - - vendor_request_handler[AIRSPY_SET_LNA_GAIN] = usb_vendor_request_set_lna_gain; -2000cb18: 6399 str r1, [r3, #56] ; 0x38 - vendor_request_handler[AIRSPY_SET_MIXER_GAIN] = usb_vendor_request_set_mixer_gain; -2000cb1a: 4a20 ldr r2, [pc, #128] ; (2000cb9c ) - vendor_request_handler[AIRSPY_SET_VGA_GAIN] = usb_vendor_request_set_vga_gain; -2000cb1c: 4820 ldr r0, [pc, #128] ; (2000cba0 ) - - vendor_request_handler[AIRSPY_SET_LNA_AGC] = usb_vendor_request_set_lna_agc; -2000cb1e: 4921 ldr r1, [pc, #132] ; (2000cba4 ) - vendor_request_handler[AIRSPY_SET_SAMPLERATE] = usb_vendor_request_set_samplerate; - - vendor_request_handler[AIRSPY_SET_FREQ] = usb_vendor_request_set_freq; - - vendor_request_handler[AIRSPY_SET_LNA_GAIN] = usb_vendor_request_set_lna_gain; - vendor_request_handler[AIRSPY_SET_MIXER_GAIN] = usb_vendor_request_set_mixer_gain; -2000cb20: 63da str r2, [r3, #60] ; 0x3c - vendor_request_handler[AIRSPY_SET_VGA_GAIN] = usb_vendor_request_set_vga_gain; - - vendor_request_handler[AIRSPY_SET_LNA_AGC] = usb_vendor_request_set_lna_agc; - vendor_request_handler[AIRSPY_SET_MIXER_AGC] = usb_vendor_request_set_mixer_agc; -2000cb22: 4a21 ldr r2, [pc, #132] ; (2000cba8 ) - - vendor_request_handler[AIRSPY_SET_FREQ] = usb_vendor_request_set_freq; - - vendor_request_handler[AIRSPY_SET_LNA_GAIN] = usb_vendor_request_set_lna_gain; - vendor_request_handler[AIRSPY_SET_MIXER_GAIN] = usb_vendor_request_set_mixer_gain; - vendor_request_handler[AIRSPY_SET_VGA_GAIN] = usb_vendor_request_set_vga_gain; -2000cb24: 6418 str r0, [r3, #64] ; 0x40 - - vendor_request_handler[AIRSPY_SET_LNA_AGC] = usb_vendor_request_set_lna_agc; -2000cb26: 6459 str r1, [r3, #68] ; 0x44 - vendor_request_handler[AIRSPY_SET_MIXER_AGC] = usb_vendor_request_set_mixer_agc; - - vendor_request_handler[AIRSPY_MS_VENDOR_CMD] = usb_vendor_request_ms_vendor_command; -2000cb28: 4820 ldr r0, [pc, #128] ; (2000cbac ) - - vendor_request_handler[AIRSPY_SET_RF_BIAS_CMD] = usb_vendor_request_set_rf_bias_command; -2000cb2a: 4921 ldr r1, [pc, #132] ; (2000cbb0 ) - vendor_request_handler[AIRSPY_SET_LNA_GAIN] = usb_vendor_request_set_lna_gain; - vendor_request_handler[AIRSPY_SET_MIXER_GAIN] = usb_vendor_request_set_mixer_gain; - vendor_request_handler[AIRSPY_SET_VGA_GAIN] = usb_vendor_request_set_vga_gain; - - vendor_request_handler[AIRSPY_SET_LNA_AGC] = usb_vendor_request_set_lna_agc; - vendor_request_handler[AIRSPY_SET_MIXER_AGC] = usb_vendor_request_set_mixer_agc; -2000cb2c: 649a str r2, [r3, #72] ; 0x48 - - vendor_request_handler[AIRSPY_MS_VENDOR_CMD] = usb_vendor_request_ms_vendor_command; - - vendor_request_handler[AIRSPY_SET_RF_BIAS_CMD] = usb_vendor_request_set_rf_bias_command; - - vendor_request_handler[AIRSPY_GPIO_WRITE] = usb_vendor_request_write_gpio_command; -2000cb2e: 4a21 ldr r2, [pc, #132] ; (2000cbb4 ) - vendor_request_handler[AIRSPY_SET_VGA_GAIN] = usb_vendor_request_set_vga_gain; - - vendor_request_handler[AIRSPY_SET_LNA_AGC] = usb_vendor_request_set_lna_agc; - vendor_request_handler[AIRSPY_SET_MIXER_AGC] = usb_vendor_request_set_mixer_agc; - - vendor_request_handler[AIRSPY_MS_VENDOR_CMD] = usb_vendor_request_ms_vendor_command; -2000cb30: 64d8 str r0, [r3, #76] ; 0x4c - - vendor_request_handler[AIRSPY_SET_RF_BIAS_CMD] = usb_vendor_request_set_rf_bias_command; -2000cb32: 6519 str r1, [r3, #80] ; 0x50 - - vendor_request_handler[AIRSPY_GPIO_WRITE] = usb_vendor_request_write_gpio_command; - vendor_request_handler[AIRSPY_GPIO_READ] = usb_vendor_request_read_gpio_command; -2000cb34: 4820 ldr r0, [pc, #128] ; (2000cbb8 ) - - vendor_request_handler[AIRSPY_GPIODIR_WRITE] = usb_vendor_request_gpiodir_write_command; -2000cb36: 4921 ldr r1, [pc, #132] ; (2000cbbc ) - - vendor_request_handler[AIRSPY_MS_VENDOR_CMD] = usb_vendor_request_ms_vendor_command; - - vendor_request_handler[AIRSPY_SET_RF_BIAS_CMD] = usb_vendor_request_set_rf_bias_command; - - vendor_request_handler[AIRSPY_GPIO_WRITE] = usb_vendor_request_write_gpio_command; -2000cb38: 655a str r2, [r3, #84] ; 0x54 - vendor_request_handler[AIRSPY_GPIO_READ] = usb_vendor_request_read_gpio_command; - - vendor_request_handler[AIRSPY_GPIODIR_WRITE] = usb_vendor_request_gpiodir_write_command; - vendor_request_handler[AIRSPY_GPIODIR_READ] = usb_vendor_request_gpiodir_read_command; -2000cb3a: 4a21 ldr r2, [pc, #132] ; (2000cbc0 ) - vendor_request_handler[AIRSPY_MS_VENDOR_CMD] = usb_vendor_request_ms_vendor_command; - - vendor_request_handler[AIRSPY_SET_RF_BIAS_CMD] = usb_vendor_request_set_rf_bias_command; - - vendor_request_handler[AIRSPY_GPIO_WRITE] = usb_vendor_request_write_gpio_command; - vendor_request_handler[AIRSPY_GPIO_READ] = usb_vendor_request_read_gpio_command; -2000cb3c: 6598 str r0, [r3, #88] ; 0x58 - - vendor_request_handler[AIRSPY_GPIODIR_WRITE] = usb_vendor_request_gpiodir_write_command; -2000cb3e: 65d9 str r1, [r3, #92] ; 0x5c - vendor_request_handler[AIRSPY_GPIODIR_READ] = usb_vendor_request_gpiodir_read_command; -2000cb40: 661a str r2, [r3, #96] ; 0x60 - - vendor_request_handler[AIRSPY_GET_SAMPLERATES] = usb_vendor_request_get_samplerates_command; -2000cb42: 4820 ldr r0, [pc, #128] ; (2000cbc4 ) - vendor_request_handler[AIRSPY_SET_PACKING] = usb_vendor_request_set_packing_command; -2000cb44: 4920 ldr r1, [pc, #128] ; (2000cbc8 ) - - vendor_request_handler[AIRSPY_SPIFLASH_ERASE_SECTOR] = usb_vendor_request_erase_sector_spiflash; -2000cb46: 4a21 ldr r2, [pc, #132] ; (2000cbcc ) - vendor_request_handler[AIRSPY_GPIO_READ] = usb_vendor_request_read_gpio_command; - - vendor_request_handler[AIRSPY_GPIODIR_WRITE] = usb_vendor_request_gpiodir_write_command; - vendor_request_handler[AIRSPY_GPIODIR_READ] = usb_vendor_request_gpiodir_read_command; - - vendor_request_handler[AIRSPY_GET_SAMPLERATES] = usb_vendor_request_get_samplerates_command; -2000cb48: 6658 str r0, [r3, #100] ; 0x64 - vendor_request_handler[AIRSPY_SET_PACKING] = usb_vendor_request_set_packing_command; -2000cb4a: 6699 str r1, [r3, #104] ; 0x68 - - vendor_request_handler[AIRSPY_SPIFLASH_ERASE_SECTOR] = usb_vendor_request_erase_sector_spiflash; -2000cb4c: 66da str r2, [r3, #108] ; 0x6c -} -2000cb4e: 4770 bx lr -2000cb50: 2000f500 .word 0x2000f500 -2000cb54: 2000f388 .word 0x2000f388 -2000cb58: 05f5e100 .word 0x05f5e100 -2000cb5c: 2000f390 .word 0x2000f390 -2000cb60: 2000c329 .word 0x2000c329 -2000cb64: 2000c9dd .word 0x2000c9dd -2000cb68: 2000c9b1 .word 0x2000c9b1 -2000cb6c: 2000c97d .word 0x2000c97d -2000cb70: 2000c945 .word 0x2000c945 -2000cb74: 2000c905 .word 0x2000c905 -2000cb78: 2000c3a5 .word 0x2000c3a5 -2000cb7c: 2000c88d .word 0x2000c88d -2000cb80: 2000c801 .word 0x2000c801 -2000cb84: 2000c4c1 .word 0x2000c4c1 -2000cb88: 2000c7a1 .word 0x2000c7a1 -2000cb8c: 2000c741 .word 0x2000c741 -2000cb90: 2000c62d .word 0x2000c62d -2000cb94: 2000c5f5 .word 0x2000c5f5 -2000cb98: 2000c5c5 .word 0x2000c5c5 -2000cb9c: 2000c595 .word 0x2000c595 -2000cba0: 2000c565 .word 0x2000c565 -2000cba4: 2000c535 .word 0x2000c535 -2000cba8: 2000c505 .word 0x2000c505 -2000cbac: 2000c479 .word 0x2000c479 -2000cbb0: 2000c4e1 .word 0x2000c4e1 -2000cbb4: 2000ca05 .word 0x2000ca05 -2000cbb8: 2000ca4d .word 0x2000ca4d -2000cbbc: 2000c361 .word 0x2000c361 -2000cbc0: 2000c42d .word 0x2000c42d -2000cbc4: 2000c3c1 .word 0x2000c3c1 -2000cbc8: 2000c6ed .word 0x2000c6ed -2000cbcc: 2000c337 .word 0x2000c337 - -2000cbd0 : -}; - -static const uint8_t htoa[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; - -void usb_descriptor_fill_string_serial_number(usb_descriptor_serial_number_t serial_number) -{ -2000cbd0: b5f0 push {r4, r5, r6, r7, lr} - for(i=0; i<2; i++) - { - data_u32 = serial_number.sn_32b[i]; - - data_u8 = (data_u32 & 0xFF000000) >> 24; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cbd2: 4b2d ldr r3, [pc, #180] ; (2000cc88 ) - j = 0; - for(i=0; i<2; i++) - { - data_u32 = serial_number.sn_32b[i]; - - data_u8 = (data_u32 & 0xFF000000) >> 24; -2000cbd4: 0e05 lsrs r5, r0, #24 - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cbd6: 092c lsrs r4, r5, #4 -2000cbd8: 5d1e ldrb r6, [r3, r4] - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cbda: 240f movs r4, #15 -2000cbdc: 4025 ands r5, r4 - for(i=0; i<2; i++) - { - data_u32 = serial_number.sn_32b[i]; - - data_u8 = (data_u32 & 0xFF000000) >> 24; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cbde: 4a2b ldr r2, [pc, #172] ; (2000cc8c ) - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cbe0: 5d5f ldrb r7, [r3, r5] - j+=2; - - data_u8 = (data_u32 & 0x00FF0000) >> 16; -2000cbe2: 25ff movs r5, #255 ; 0xff - for(i=0; i<2; i++) - { - data_u32 = serial_number.sn_32b[i]; - - data_u8 = (data_u32 & 0xFF000000) >> 24; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cbe4: 7596 strb r6, [r2, #22] - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cbe6: 7617 strb r7, [r2, #24] - j+=2; - - data_u8 = (data_u32 & 0x00FF0000) >> 16; -2000cbe8: 042e lsls r6, r5, #16 -2000cbea: 1c07 adds r7, r0, #0 -2000cbec: 4037 ands r7, r6 -2000cbee: 0c3d lsrs r5, r7, #16 - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cbf0: 092f lsrs r7, r5, #4 -2000cbf2: 5ddf ldrb r7, [r3, r7] - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cbf4: 4025 ands r5, r4 -2000cbf6: 5d5d ldrb r5, [r3, r5] - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; - j+=2; - - data_u8 = (data_u32 & 0x00FF0000) >> 16; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cbf8: 7697 strb r7, [r2, #26] - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; - j+=2; - - data_u8 = (data_u32 & 0x0000FF00) >> 8; -2000cbfa: 27ff movs r7, #255 ; 0xff - j+=2; - - data_u8 = (data_u32 & 0x00FF0000) >> 16; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cbfc: 7715 strb r5, [r2, #28] - j+=2; - - data_u8 = (data_u32 & 0x0000FF00) >> 8; -2000cbfe: 023d lsls r5, r7, #8 -2000cc00: 4005 ands r5, r0 -2000cc02: 0a2f lsrs r7, r5, #8 - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cc04: 093d lsrs r5, r7, #4 -2000cc06: 5d5d ldrb r5, [r3, r5] - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc08: 4027 ands r7, r4 -2000cc0a: 46bc mov ip, r7 - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; - j+=2; - - data_u8 = (data_u32 & 0x0000FF00) >> 8; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cc0c: 7795 strb r5, [r2, #30] - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc0e: 4665 mov r5, ip -2000cc10: 5d5d ldrb r5, [r3, r5] -2000cc12: 1c57 adds r7, r2, #1 -2000cc14: 77fd strb r5, [r7, #31] - j+=2; - - data_u8 = (data_u32 & 0x000000FF); - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cc16: b2c7 uxtb r7, r0 -2000cc18: 093d lsrs r5, r7, #4 -2000cc1a: 5d5d ldrb r5, [r3, r5] - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc1c: 4020 ands r0, r4 -2000cc1e: 5c18 ldrb r0, [r3, r0] - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; - j+=2; - - data_u8 = (data_u32 & 0x000000FF); - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cc20: 1cd7 adds r7, r2, #3 -2000cc22: 77fd strb r5, [r7, #31] - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc24: 1d57 adds r7, r2, #5 -2000cc26: 77f8 strb r0, [r7, #31] - j = 0; - for(i=0; i<2; i++) - { - data_u32 = serial_number.sn_32b[i]; - - data_u8 = (data_u32 & 0xFF000000) >> 24; -2000cc28: 0e08 lsrs r0, r1, #24 - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cc2a: 0905 lsrs r5, r0, #4 -2000cc2c: 5d5d ldrb r5, [r3, r5] -2000cc2e: 1dd7 adds r7, r2, #7 - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc30: 4020 ands r0, r4 -2000cc32: 5c18 ldrb r0, [r3, r0] - for(i=0; i<2; i++) - { - data_u32 = serial_number.sn_32b[i]; - - data_u8 = (data_u32 & 0xFF000000) >> 24; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cc34: 77fd strb r5, [r7, #31] - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; - j+=2; - - data_u8 = (data_u32 & 0x00FF0000) >> 16; -2000cc36: 400e ands r6, r1 - data_u32 = serial_number.sn_32b[i]; - - data_u8 = (data_u32 & 0xFF000000) >> 24; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc38: 1c17 adds r7, r2, #0 - j+=2; - - data_u8 = (data_u32 & 0x00FF0000) >> 16; -2000cc3a: 0c35 lsrs r5, r6, #16 - data_u32 = serial_number.sn_32b[i]; - - data_u8 = (data_u32 & 0xFF000000) >> 24; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc3c: 3728 adds r7, #40 ; 0x28 -2000cc3e: 7038 strb r0, [r7, #0] - j+=2; - - data_u8 = (data_u32 & 0x00FF0000) >> 16; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cc40: 092f lsrs r7, r5, #4 -2000cc42: 5dd8 ldrb r0, [r3, r7] -2000cc44: 1c16 adds r6, r2, #0 -2000cc46: 362a adds r6, #42 ; 0x2a -2000cc48: 7030 strb r0, [r6, #0] - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc4a: 4025 ands r5, r4 - j+=2; - - data_u8 = (data_u32 & 0x0000FF00) >> 8; -2000cc4c: 26ff movs r6, #255 ; 0xff - j+=2; - - data_u8 = (data_u32 & 0x00FF0000) >> 16; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc4e: 5d5d ldrb r5, [r3, r5] -2000cc50: 1c17 adds r7, r2, #0 - j+=2; - - data_u8 = (data_u32 & 0x0000FF00) >> 8; -2000cc52: 0230 lsls r0, r6, #8 -2000cc54: 4008 ands r0, r1 - j+=2; - - data_u8 = (data_u32 & 0x00FF0000) >> 16; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc56: 372c adds r7, #44 ; 0x2c -2000cc58: 703d strb r5, [r7, #0] - j+=2; - - data_u8 = (data_u32 & 0x0000FF00) >> 8; -2000cc5a: 0a07 lsrs r7, r0, #8 - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cc5c: 093e lsrs r6, r7, #4 -2000cc5e: 5d98 ldrb r0, [r3, r6] -2000cc60: 1c15 adds r5, r2, #0 - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc62: 4027 ands r7, r4 -2000cc64: 5ddf ldrb r7, [r3, r7] - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; - j+=2; - - data_u8 = (data_u32 & 0x0000FF00) >> 8; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cc66: 352e adds r5, #46 ; 0x2e - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc68: 1c16 adds r6, r2, #0 - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; - j+=2; - - data_u8 = (data_u32 & 0x0000FF00) >> 8; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cc6a: 7028 strb r0, [r5, #0] - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc6c: 3630 adds r6, #48 ; 0x30 - j+=2; - - data_u8 = (data_u32 & 0x000000FF); - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cc6e: b2cd uxtb r5, r1 - j+=2; - - data_u8 = (data_u32 & 0x0000FF00) >> 8; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc70: 7037 strb r7, [r6, #0] - j+=2; - - data_u8 = (data_u32 & 0x000000FF); - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc72: 400c ands r4, r1 - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; - j+=2; - - data_u8 = (data_u32 & 0x000000FF); - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cc74: 092e lsrs r6, r5, #4 -2000cc76: 5d9f ldrb r7, [r3, r6] -2000cc78: 1c10 adds r0, r2, #0 - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc7a: 5d19 ldrb r1, [r3, r4] - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; - j+=2; - - data_u8 = (data_u32 & 0x000000FF); - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cc7c: 3032 adds r0, #50 ; 0x32 - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc7e: 3234 adds r2, #52 ; 0x34 - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; - j+=2; - - data_u8 = (data_u32 & 0x000000FF); - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0xF0) >> 4]; -2000cc80: 7007 strb r7, [r0, #0] - j+=2; - usb_descriptor_string_serial_number[USB_DESCRIPTOR_SN_POS + j] = htoa[(data_u8 & 0x0F)]; -2000cc82: 7011 strb r1, [r2, #0] - j+=2; - } -} -2000cc84: bdf0 pop {r4, r5, r6, r7, pc} -2000cc86: 46c0 nop ; (mov r8, r8) -2000cc88: 2000e9a0 .word 0x2000e9a0 -2000cc8c: 2000ecd7 .word 0x2000ecd7 - -2000cc90 : - -void delay(uint32_t duration) -{ - uint32_t i; - - for (i = 0; i < duration; i++) -2000cc90: 2300 movs r3, #0 -2000cc92: 4283 cmp r3, r0 -2000cc94: d002 beq.n 2000cc9c - __asm__("nop"); -2000cc96: 46c0 nop ; (mov r8, r8) - -void delay(uint32_t duration) -{ - uint32_t i; - - for (i = 0; i < duration; i++) -2000cc98: 3301 adds r3, #1 -2000cc9a: e7fa b.n 2000cc92 - __asm__("nop"); -} -2000cc9c: 4770 bx lr - ... - -2000cca0 : - -void cpu_reset(void) -{ - RESET_CTRL0 = RESET_CTRL0_CORE_RST; -2000cca0: 4b01 ldr r3, [pc, #4] ; (2000cca8 ) -2000cca2: 2201 movs r2, #1 -2000cca4: 601a str r2, [r3, #0] -2000cca6: e7fe b.n 2000cca6 -2000cca8: 40053100 .word 0x40053100 - -2000ccac : - /* Wait after PowerOn (stabilization of LDO & Internal Init of R820T) */ - delay(WAIT_R820T_POWER_ON_DELAY); -} - -void enable_biast_power(void) -{ -2000ccac: b508 push {r3, lr} - gpio_set(PORT_EN_BIAST, PIN_EN_BIAST); -2000ccae: 2180 movs r1, #128 ; 0x80 -2000ccb0: 4802 ldr r0, [pc, #8] ; (2000ccbc ) -2000ccb2: 0189 lsls r1, r1, #6 -2000ccb4: f7ff fef6 bl 2000caa4 -} -2000ccb8: bd08 pop {r3, pc} -2000ccba: 46c0 nop ; (mov r8, r8) -2000ccbc: 400f6004 .word 0x400f6004 - -2000ccc0 : - -void disable_biast_power(void) -{ -2000ccc0: b508 push {r3, lr} - gpio_clear(PORT_EN_BIAST, PIN_EN_BIAST); -2000ccc2: 2180 movs r1, #128 ; 0x80 -2000ccc4: 4802 ldr r0, [pc, #8] ; (2000ccd0 ) -2000ccc6: 0189 lsls r1, r1, #6 -2000ccc8: f7ff fef1 bl 2000caae -} -2000cccc: bd08 pop {r3, pc} -2000ccce: 46c0 nop ; (mov r8, r8) -2000ccd0: 400f6004 .word 0x400f6004 - -2000ccd4 : -/* Code Compatible with CortexM0, M3, M4 (R4 & R5 are modified for ARCH 6M) */ -__attribute__((naked)) -void hard_fault_handler(void) -{ -#if defined(__ARM_ARCH_6M__) - __asm__("MOVS R4, #4"); -2000ccd4: 2404 movs r4, #4 - __asm__("MOV R5, LR"); -2000ccd6: 4675 mov r5, lr - __asm__("TST R4, R5"); -2000ccd8: 422c tst r4, r5 - __asm__("BEQ _MSP"); -2000ccda: d002 beq.n 2000cce2 <_MSP> - __asm__("MRS R0, PSP"); -2000ccdc: f3ef 8009 mrs r0, PSP - __asm__("B hard_fault_handler_c"); -2000cce0: e002 b.n 2000cce8 - -2000cce2 <_MSP>: - __asm__("_MSP:"); - __asm__("MRS R0, MSP"); -2000cce2: f3ef 8008 mrs r0, MSP - __asm__("B hard_fault_handler_c"); -2000cce6: e7ff b.n 2000cce8 - -2000cce8 : -volatile hard_fault_stack_t* hard_fault_stack_pt; - -__attribute__((used)) void hard_fault_handler_c(uint32_t* args) -{ - /* hard_fault_stack_pt contains registers saved before the hard fault */ - hard_fault_stack_pt = (hard_fault_stack_t*)args; -2000cce8: 4b01 ldr r3, [pc, #4] ; (2000ccf0 ) -2000ccea: 6018 str r0, [r3, #0] - if( SCB->CFSR & CSCB_CFSR_BFSR_PRECISERR ) { - } - } - } - */ - __asm("BKPT #0\n") ; // Break into the debugger -2000ccec: be00 bkpt 0x0000 -2000ccee: e7fe b.n 2000ccee -2000ccf0: 2000f740 .word 0x2000f740 - -2000ccf4 : -} - - -/* write to single register */ -void si5351c_write_single(uint8_t reg, uint8_t val) -{ -2000ccf4: b538 push {r3, r4, r5, lr} -2000ccf6: 1c0c adds r4, r1, #0 -2000ccf8: 1c05 adds r5, r0, #0 - i2c0_tx_start(); -2000ccfa: f001 fa9d bl 2000e238 - i2c0_tx_byte(SI5351C_I2C_ADDR | I2C_WRITE); -2000ccfe: 20c0 movs r0, #192 ; 0xc0 -2000cd00: f001 fada bl 2000e2b8 - i2c0_tx_byte(reg); -2000cd04: 1c28 adds r0, r5, #0 -2000cd06: f001 fad7 bl 2000e2b8 - i2c0_tx_byte(val); -2000cd0a: 1c20 adds r0, r4, #0 -2000cd0c: f001 fad4 bl 2000e2b8 - i2c0_stop(); -2000cd10: f001 fb72 bl 2000e3f8 -} -2000cd14: bd38 pop {r3, r4, r5, pc} - -2000cd16 : - -/* read single register */ -uint8_t si5351c_read_single(uint8_t reg) -{ -2000cd16: b510 push {r4, lr} -2000cd18: 1c04 adds r4, r0, #0 - uint8_t val; - - /* set register address with write */ - i2c0_tx_start(); -2000cd1a: f001 fa8d bl 2000e238 - i2c0_tx_byte(SI5351C_I2C_ADDR | I2C_WRITE); -2000cd1e: 20c0 movs r0, #192 ; 0xc0 -2000cd20: f001 faca bl 2000e2b8 - i2c0_tx_byte(reg); -2000cd24: 1c20 adds r0, r4, #0 -2000cd26: f001 fac7 bl 2000e2b8 - - /* read the value */ - i2c0_tx_start(); -2000cd2a: f001 fa85 bl 2000e238 - i2c0_tx_byte(SI5351C_I2C_ADDR | I2C_READ); -2000cd2e: 20c1 movs r0, #193 ; 0xc1 -2000cd30: f001 fac2 bl 2000e2b8 - val = i2c0_rx_byte(); -2000cd34: f001 fb0c bl 2000e350 -2000cd38: 1c04 adds r4, r0, #0 - i2c0_stop(); -2000cd3a: f001 fb5d bl 2000e3f8 - - return val; -} -2000cd3e: 1c20 adds r0, r4, #0 -2000cd40: bd10 pop {r4, pc} - ... - -2000cd44 : - r820t_write_reg(priv, 0x0B, b); -} - -/* write to single register but do not update priv (return 0 if success) */ -static void airspy_r820t_write_direct(uint8_t reg, uint8_t val) -{ -2000cd44: b538 push {r3, r4, r5, lr} - - port_num = PORT_EN_R820T; - pin_num = PIN_EN_R820T; - - /* GPIO DIR is set to OUT read the GPIO_SET reg */ - value = ((GPIO_SET(port_num) & pin_num) != 0); -2000cd46: 4b0c ldr r3, [pc, #48] ; (2000cd78 ) - r820t_write_reg(priv, 0x0B, b); -} - -/* write to single register but do not update priv (return 0 if success) */ -static void airspy_r820t_write_direct(uint8_t reg, uint8_t val) -{ -2000cd48: 1c05 adds r5, r0, #0 - - port_num = PORT_EN_R820T; - pin_num = PIN_EN_R820T; - - /* GPIO DIR is set to OUT read the GPIO_SET reg */ - value = ((GPIO_SET(port_num) & pin_num) != 0); -2000cd4a: 6818 ldr r0, [r3, #0] - r820t_write_reg(priv, 0x0B, b); -} - -/* write to single register but do not update priv (return 0 if success) */ -static void airspy_r820t_write_direct(uint8_t reg, uint8_t val) -{ -2000cd4c: 1c0c adds r4, r1, #0 - port_num = PORT_EN_R820T; - pin_num = PIN_EN_R820T; - - /* GPIO DIR is set to OUT read the GPIO_SET reg */ - value = ((GPIO_SET(port_num) & pin_num) != 0); - if(value == 1) -2000cd4e: 0602 lsls r2, r0, #24 -2000cd50: d510 bpl.n 2000cd74 - { - if(r820t_state_standby == 0) -2000cd52: 490a ldr r1, [pc, #40] ; (2000cd7c ) -2000cd54: 780a ldrb r2, [r1, #0] -2000cd56: 2a00 cmp r2, #0 -2000cd58: d10c bne.n 2000cd74 -/* write to single register but do not update priv (return 0 if success) */ -static void airspy_r820t_write_direct(uint8_t reg, uint8_t val) -{ - if(r820t_is_power_enabled() == true) - { - i2c1_tx_start(); -2000cd5a: f001 fa8d bl 2000e278 - i2c1_tx_byte(R820T_I2C_ADDR | I2C_WRITE); -2000cd5e: 2034 movs r0, #52 ; 0x34 -2000cd60: f001 fad0 bl 2000e304 - i2c1_tx_byte(reg); -2000cd64: 1c28 adds r0, r5, #0 -2000cd66: f001 facd bl 2000e304 - i2c1_tx_byte(val); -2000cd6a: 1c20 adds r0, r4, #0 -2000cd6c: f001 faca bl 2000e304 - i2c1_stop(); -2000cd70: f001 fb54 bl 2000e41c - } -} -2000cd74: bd38 pop {r3, r4, r5, pc} -2000cd76: 46c0 nop ; (mov r8, r8) -2000cd78: 400f6204 .word 0x400f6204 -2000cd7c: 2000ef2c .word 0x2000ef2c - -2000cd80 : - uint32_t freq_mhz_fix; - - if(freq_mhz < FREQ_50MHZ) - { - /* Frequency Less than 50MHz */ - return FREQ_TO_IDX_0_TO_49MHZ; -2000cd80: 2100 movs r1, #0 - -int r820t_freq_get_idx(uint32_t freq_mhz) -{ - uint32_t freq_mhz_fix; - - if(freq_mhz < FREQ_50MHZ) -2000cd82: 2831 cmp r0, #49 ; 0x31 -2000cd84: d906 bls.n 2000cd94 - }else - { - /* Frequency Between 50 to 649MHz use table */ - /* Fix the frequency for the table */ - freq_mhz_fix = freq_mhz - FREQ_50MHZ; - if(freq_mhz_fix < FREQ_TO_IDX_SIZE) -2000cd86: 4a04 ldr r2, [pc, #16] ; (2000cd98 ) - return FREQ_TO_IDX_0_TO_49MHZ; - }else - { - /* Frequency Between 50 to 649MHz use table */ - /* Fix the frequency for the table */ - freq_mhz_fix = freq_mhz - FREQ_50MHZ; -2000cd88: 3832 subs r0, #50 ; 0x32 - - return freq_to_idx[freq_mhz_fix]; - }else - { - /* Frequency Between 650 to 1800MHz */ - return FREQ_TO_IDX_650_TO_1800MHZ; -2000cd8a: 2114 movs r1, #20 - }else - { - /* Frequency Between 50 to 649MHz use table */ - /* Fix the frequency for the table */ - freq_mhz_fix = freq_mhz - FREQ_50MHZ; - if(freq_mhz_fix < FREQ_TO_IDX_SIZE) -2000cd8c: 4290 cmp r0, r2 -2000cd8e: d801 bhi.n 2000cd94 - { - - return freq_to_idx[freq_mhz_fix]; -2000cd90: 4b02 ldr r3, [pc, #8] ; (2000cd9c ) -2000cd92: 5c19 ldrb r1, [r3, r0] - { - /* Frequency Between 650 to 1800MHz */ - return FREQ_TO_IDX_650_TO_1800MHZ; - } - } -} -2000cd94: 1c08 adds r0, r1, #0 -2000cd96: 4770 bx lr -2000cd98: 00000257 .word 0x00000257 -2000cd9c: 2000e9c4 .word 0x2000e9c4 - -2000cda0 : - -/* - * Write regs 5 to 32 (R820T_INIT_NB_REGS values) using data parameter and write last reg to 0 - */ -void airspy_r820t_write_init(const uint8_t* data) -{ -2000cda0: b538 push {r3, r4, r5, lr} - - port_num = PORT_EN_R820T; - pin_num = PIN_EN_R820T; - - /* GPIO DIR is set to OUT read the GPIO_SET reg */ - value = ((GPIO_SET(port_num) & pin_num) != 0); -2000cda2: 4b0e ldr r3, [pc, #56] ; (2000cddc ) - -/* - * Write regs 5 to 32 (R820T_INIT_NB_REGS values) using data parameter and write last reg to 0 - */ -void airspy_r820t_write_init(const uint8_t* data) -{ -2000cda4: 1c05 adds r5, r0, #0 - - port_num = PORT_EN_R820T; - pin_num = PIN_EN_R820T; - - /* GPIO DIR is set to OUT read the GPIO_SET reg */ - value = ((GPIO_SET(port_num) & pin_num) != 0); -2000cda6: 6818 ldr r0, [r3, #0] - if(value == 1) -2000cda8: 0602 lsls r2, r0, #24 -2000cdaa: d516 bpl.n 2000cdda - { - if(r820t_state_standby == 0) -2000cdac: 490c ldr r1, [pc, #48] ; (2000cde0 ) -2000cdae: 780c ldrb r4, [r1, #0] -2000cdb0: 2c00 cmp r4, #0 -2000cdb2: d112 bne.n 2000cdda -{ - uint_fast8_t i; - - if(r820t_is_power_enabled() == true) - { - i2c1_tx_start(); -2000cdb4: f001 fa60 bl 2000e278 - i2c1_tx_byte(R820T_I2C_ADDR | I2C_WRITE); -2000cdb8: 2034 movs r0, #52 ; 0x34 -2000cdba: f001 faa3 bl 2000e304 - i2c1_tx_byte(REG_SHADOW_START); /* Start reg */ -2000cdbe: 2005 movs r0, #5 -2000cdc0: f001 faa0 bl 2000e304 - - for (i = 0; i < R820T_INIT_NB_REGS; i++) - i2c1_tx_byte(data[i]); -2000cdc4: 5d28 ldrb r0, [r5, r4] - { - i2c1_tx_start(); - i2c1_tx_byte(R820T_I2C_ADDR | I2C_WRITE); - i2c1_tx_byte(REG_SHADOW_START); /* Start reg */ - - for (i = 0; i < R820T_INIT_NB_REGS; i++) -2000cdc6: 3401 adds r4, #1 - i2c1_tx_byte(data[i]); -2000cdc8: f001 fa9c bl 2000e304 - { - i2c1_tx_start(); - i2c1_tx_byte(R820T_I2C_ADDR | I2C_WRITE); - i2c1_tx_byte(REG_SHADOW_START); /* Start reg */ - - for (i = 0; i < R820T_INIT_NB_REGS; i++) -2000cdcc: 2c1b cmp r4, #27 -2000cdce: d1f9 bne.n 2000cdc4 - i2c1_tx_byte(data[i]); - - i2c1_tx_byte(0); /* Set last reg to 0 (errata r820t) */ -2000cdd0: 2000 movs r0, #0 -2000cdd2: f001 fa97 bl 2000e304 - - i2c1_stop(); -2000cdd6: f001 fb21 bl 2000e41c - } -} -2000cdda: bd38 pop {r3, r4, r5, pc} -2000cddc: 400f6204 .word 0x400f6204 -2000cde0: 2000ef2c .word 0x2000ef2c - -2000cde4 : -{ - return (lut[byte & 0xf] << 4) | lut[byte >> 4]; -} - -void airspy_r820t_read(r820t_priv_t *priv, uint8_t* const data, const uint8_t data_count) -{ -2000cde4: b5f8 push {r3, r4, r5, r6, r7, lr} - - port_num = PORT_EN_R820T; - pin_num = PIN_EN_R820T; - - /* GPIO DIR is set to OUT read the GPIO_SET reg */ - value = ((GPIO_SET(port_num) & pin_num) != 0); -2000cde6: 4b25 ldr r3, [pc, #148] ; (2000ce7c ) -{ - return (lut[byte & 0xf] << 4) | lut[byte >> 4]; -} - -void airspy_r820t_read(r820t_priv_t *priv, uint8_t* const data, const uint8_t data_count) -{ -2000cde8: 1c16 adds r6, r2, #0 - - port_num = PORT_EN_R820T; - pin_num = PIN_EN_R820T; - - /* GPIO DIR is set to OUT read the GPIO_SET reg */ - value = ((GPIO_SET(port_num) & pin_num) != 0); -2000cdea: 681a ldr r2, [r3, #0] -2000cdec: 2480 movs r4, #128 ; 0x80 -{ - return (lut[byte & 0xf] << 4) | lut[byte >> 4]; -} - -void airspy_r820t_read(r820t_priv_t *priv, uint8_t* const data, const uint8_t data_count) -{ -2000cdee: 1c0d adds r5, r1, #0 - - port_num = PORT_EN_R820T; - pin_num = PIN_EN_R820T; - - /* GPIO DIR is set to OUT read the GPIO_SET reg */ - value = ((GPIO_SET(port_num) & pin_num) != 0); -2000cdf0: 4014 ands r4, r2 - if(value == 1) -2000cdf2: d00c beq.n 2000ce0e - { - if(r820t_state_standby == 0) -2000cdf4: 4922 ldr r1, [pc, #136] ; (2000ce80 ) -2000cdf6: 2400 movs r4, #0 -2000cdf8: 780f ldrb r7, [r1, #0] -2000cdfa: 2f00 cmp r7, #0 -2000cdfc: d107 bne.n 2000ce0e -2000cdfe: e00c b.n 2000ce1a - -static int r820t_read_cache_reg(r820t_priv_t *priv, int reg) -{ - reg -= REG_SHADOW_START; - - if (reg >= 0 && reg < NUM_REGS) -2000ce00: 1f67 subs r7, r4, #5 -2000ce02: 2f1d cmp r7, #29 -2000ce04: d806 bhi.n 2000ce14 -static uint8_t r82xx_bitrev(uint8_t byte) -{ - return (lut[byte & 0xf] << 4) | lut[byte >> 4]; -} - -void airspy_r820t_read(r820t_priv_t *priv, uint8_t* const data, const uint8_t data_count) -2000ce06: 1902 adds r2, r0, r4 -static int r820t_read_cache_reg(r820t_priv_t *priv, int reg) -{ - reg -= REG_SHADOW_START; - - if (reg >= 0 && reg < NUM_REGS) - return priv->regs[reg]; -2000ce08: 79d3 ldrb r3, [r2, #7] - }else - { - /* Data cannot be read when R820T is OFF, just read cache */ - for(i=0; i -2000ce12: e032 b.n 2000ce7a - reg -= REG_SHADOW_START; - - if (reg >= 0 && reg < NUM_REGS) - return priv->regs[reg]; - else - return -1; -2000ce14: 2101 movs r1, #1 -2000ce16: 424b negs r3, r1 -2000ce18: e7f7 b.n 2000ce0a - uint32_t val; - - if(r820t_is_power_enabled() == true) - { - /* read the value */ - i2c1_tx_start(); -2000ce1a: f001 fa2d bl 2000e278 - i2c1_tx_byte(R820T_I2C_ADDR | I2C_READ); -2000ce1e: 2035 movs r0, #53 ; 0x35 -2000ce20: f001 fa70 bl 2000e304 -2000ce24: 4c17 ldr r4, [pc, #92] ; (2000ce84 ) - - if(data_count > 1) -2000ce26: 2e01 cmp r6, #1 -2000ce28: d80e bhi.n 2000ce48 - val = i2c1_rx_byte(0); /* NACK last byte */ - data[i] = r82xx_bitrev(val); /* Swap data bits as they are received LSB to MSB */ - - }else - { - val = i2c1_rx_byte(0); /* NACK last byte */ -2000ce2a: 1c38 adds r0, r7, #0 -2000ce2c: f001 fab6 bl 2000e39c - const uint8_t lut[16] = { 0x0, 0x8, 0x4, 0xc, 0x2, 0xa, 0x6, 0xe, - 0x1, 0x9, 0x5, 0xd, 0x3, 0xb, 0x7, 0xf }; - -static uint8_t r82xx_bitrev(uint8_t byte) -{ - return (lut[byte & 0xf] << 4) | lut[byte >> 4]; -2000ce30: 260f movs r6, #15 -2000ce32: 4006 ands r6, r0 -2000ce34: 0907 lsrs r7, r0, #4 -2000ce36: 5da2 ldrb r2, [r4, r6] -2000ce38: b2f8 uxtb r0, r7 -2000ce3a: 5c24 ldrb r4, [r4, r0] -2000ce3c: 0111 lsls r1, r2, #4 -2000ce3e: 4321 orrs r1, r4 - data[i] = r82xx_bitrev(val); /* Swap data bits as they are received LSB to MSB */ - - }else - { - val = i2c1_rx_byte(0); /* NACK last byte */ - data[0] = r82xx_bitrev(val); /* Swap data bits as they are received LSB to MSB */ -2000ce40: 7029 strb r1, [r5, #0] - } - - i2c1_stop(); -2000ce42: f001 faeb bl 2000e41c -2000ce46: e018 b.n 2000ce7a - { - /* read the value */ - i2c1_tx_start(); - i2c1_tx_byte(R820T_I2C_ADDR | I2C_READ); - - if(data_count > 1) -2000ce48: 1c2f adds r7, r5, #0 - { - for(i = 0; i < (data_count-1); i++) -2000ce4a: 1e73 subs r3, r6, #1 -static uint8_t r82xx_bitrev(uint8_t byte) -{ - return (lut[byte & 0xf] << 4) | lut[byte >> 4]; -} - -void airspy_r820t_read(r820t_priv_t *priv, uint8_t* const data, const uint8_t data_count) -2000ce4c: 1b78 subs r0, r7, r5 - i2c1_tx_start(); - i2c1_tx_byte(R820T_I2C_ADDR | I2C_READ); - - if(data_count > 1) - { - for(i = 0; i < (data_count-1); i++) -2000ce4e: 4298 cmp r0, r3 -2000ce50: da0d bge.n 2000ce6e - { - val = i2c1_rx_byte(1); /* ACK each byte */ -2000ce52: 2001 movs r0, #1 -2000ce54: f001 faa2 bl 2000e39c - const uint8_t lut[16] = { 0x0, 0x8, 0x4, 0xc, 0x2, 0xa, 0x6, 0xe, - 0x1, 0x9, 0x5, 0xd, 0x3, 0xb, 0x7, 0xf }; - -static uint8_t r82xx_bitrev(uint8_t byte) -{ - return (lut[byte & 0xf] << 4) | lut[byte >> 4]; -2000ce58: 230f movs r3, #15 -2000ce5a: 4003 ands r3, r0 -2000ce5c: 5ce2 ldrb r2, [r4, r3] -2000ce5e: 0900 lsrs r0, r0, #4 -2000ce60: b2c3 uxtb r3, r0 -2000ce62: 0111 lsls r1, r2, #4 -2000ce64: 5ce2 ldrb r2, [r4, r3] -2000ce66: 4311 orrs r1, r2 - if(data_count > 1) - { - for(i = 0; i < (data_count-1); i++) - { - val = i2c1_rx_byte(1); /* ACK each byte */ - data[i] = r82xx_bitrev(val); /* Swap data bits as they are received LSB to MSB */ -2000ce68: 7039 strb r1, [r7, #0] -2000ce6a: 3701 adds r7, #1 -2000ce6c: e7ed b.n 2000ce4a - } - - val = i2c1_rx_byte(0); /* NACK last byte */ -2000ce6e: 2000 movs r0, #0 - data[i] = r82xx_bitrev(val); /* Swap data bits as they are received LSB to MSB */ -2000ce70: 19ad adds r5, r5, r6 - { - val = i2c1_rx_byte(1); /* ACK each byte */ - data[i] = r82xx_bitrev(val); /* Swap data bits as they are received LSB to MSB */ - } - - val = i2c1_rx_byte(0); /* NACK last byte */ -2000ce72: f001 fa93 bl 2000e39c - data[i] = r82xx_bitrev(val); /* Swap data bits as they are received LSB to MSB */ -2000ce76: 3d01 subs r5, #1 -2000ce78: e7da b.n 2000ce30 - { - data[i] = r820t_read_cache_reg(priv, i); - } - } - -} -2000ce7a: bdf8 pop {r3, r4, r5, r6, r7, pc} -2000ce7c: 400f6204 .word 0x400f6204 -2000ce80: 2000ef2c .word 0x2000ef2c -2000ce84: 2000ec5b .word 0x2000ec5b - -2000ce88 : - - port_num = PORT_EN_R820T; - pin_num = PIN_EN_R820T; - - /* GPIO DIR is set to OUT read the GPIO_SET reg */ - value = ((GPIO_SET(port_num) & pin_num) != 0); -2000ce88: 4b0e ldr r3, [pc, #56] ; (2000cec4 ) - -} - -/* write to single register (return 0 if success) */ -void airspy_r820t_write_single(r820t_priv_t *priv, uint8_t reg, uint8_t val) -{ -2000ce8a: b570 push {r4, r5, r6, lr} -2000ce8c: 1c06 adds r6, r0, #0 - - port_num = PORT_EN_R820T; - pin_num = PIN_EN_R820T; - - /* GPIO DIR is set to OUT read the GPIO_SET reg */ - value = ((GPIO_SET(port_num) & pin_num) != 0); -2000ce8e: 6818 ldr r0, [r3, #0] - -} - -/* write to single register (return 0 if success) */ -void airspy_r820t_write_single(r820t_priv_t *priv, uint8_t reg, uint8_t val) -{ -2000ce90: 1c0d adds r5, r1, #0 -2000ce92: 1c14 adds r4, r2, #0 - port_num = PORT_EN_R820T; - pin_num = PIN_EN_R820T; - - /* GPIO DIR is set to OUT read the GPIO_SET reg */ - value = ((GPIO_SET(port_num) & pin_num) != 0); - if(value == 1) -2000ce94: 0602 lsls r2, r0, #24 -2000ce96: d503 bpl.n 2000cea0 - { - if(r820t_state_standby == 0) -2000ce98: 490b ldr r1, [pc, #44] ; (2000cec8 ) -2000ce9a: 780a ldrb r2, [r1, #0] -2000ce9c: 2a00 cmp r2, #0 -2000ce9e: d002 beq.n 2000cea6 - i2c1_tx_byte(R820T_I2C_ADDR | I2C_WRITE); - i2c1_tx_byte(reg); - i2c1_tx_byte(val); - i2c1_stop(); - } - priv->regs[reg - REG_SHADOW_START] = val; -2000cea0: 1976 adds r6, r6, r5 -2000cea2: 71f4 strb r4, [r6, #7] -} -2000cea4: bd70 pop {r4, r5, r6, pc} -/* write to single register (return 0 if success) */ -void airspy_r820t_write_single(r820t_priv_t *priv, uint8_t reg, uint8_t val) -{ - if(r820t_is_power_enabled() == true) - { - i2c1_tx_start(); -2000cea6: f001 f9e7 bl 2000e278 - i2c1_tx_byte(R820T_I2C_ADDR | I2C_WRITE); -2000ceaa: 2034 movs r0, #52 ; 0x34 -2000ceac: f001 fa2a bl 2000e304 - i2c1_tx_byte(reg); -2000ceb0: 1c28 adds r0, r5, #0 -2000ceb2: f001 fa27 bl 2000e304 - i2c1_tx_byte(val); -2000ceb6: 1c20 adds r0, r4, #0 -2000ceb8: f001 fa24 bl 2000e304 - i2c1_stop(); -2000cebc: f001 faae bl 2000e41c -2000cec0: e7ee b.n 2000cea0 -2000cec2: 46c0 nop ; (mov r8, r8) -2000cec4: 400f6204 .word 0x400f6204 -2000cec8: 2000ef2c .word 0x2000ef2c - -2000cecc : - val = r820t_read_data[reg]; - return val; -} - -static int r820t_write_reg(r820t_priv_t *priv, uint8_t reg, uint8_t val) -{ -2000cecc: b508 push {r3, lr} - return 0; -} - -static int r820t_read_cache_reg(r820t_priv_t *priv, int reg) -{ - reg -= REG_SHADOW_START; -2000cece: 1f4b subs r3, r1, #5 - - if (reg >= 0 && reg < NUM_REGS) -2000ced0: 2b1d cmp r3, #29 -2000ced2: d802 bhi.n 2000ceda - return priv->regs[reg]; -2000ced4: 18c3 adds r3, r0, r3 -2000ced6: 7b1b ldrb r3, [r3, #12] -2000ced8: e001 b.n 2000cede - else - return -1; -2000ceda: 2301 movs r3, #1 -2000cedc: 425b negs r3, r3 - return val; -} - -static int r820t_write_reg(r820t_priv_t *priv, uint8_t reg, uint8_t val) -{ - if (r820t_read_cache_reg(priv, reg) == val) -2000cede: 4293 cmp r3, r2 -2000cee0: d001 beq.n 2000cee6 - return 0; - airspy_r820t_write_single(priv, reg, val); -2000cee2: f7ff ffd1 bl 2000ce88 - return 0; -} -2000cee6: 2000 movs r0, #0 -2000cee8: bd08 pop {r3, pc} - -2000ceea : - else - return -1; -} - -static int r820t_write_reg_mask(r820t_priv_t *priv, uint8_t reg, uint8_t val, uint8_t bit_mask) -{ -2000ceea: b510 push {r4, lr} - return 0; -} - -static int r820t_read_cache_reg(r820t_priv_t *priv, int reg) -{ - reg -= REG_SHADOW_START; -2000ceec: 1f4c subs r4, r1, #5 - - if (reg >= 0 && reg < NUM_REGS) -2000ceee: 2c1d cmp r4, #29 -2000cef0: d808 bhi.n 2000cf04 - return priv->regs[reg]; -2000cef2: 1904 adds r4, r0, r4 - int rc = r820t_read_cache_reg(priv, reg); - - if (rc < 0) - return rc; - - val = (rc & ~bit_mask) | (val & bit_mask); -2000cef4: 7b24 ldrb r4, [r4, #12] -2000cef6: 439c bics r4, r3 -2000cef8: 4013 ands r3, r2 - - return r820t_write_reg(priv, reg, val); -2000cefa: 1c22 adds r2, r4, #0 -2000cefc: 431a orrs r2, r3 -2000cefe: f7ff ffe5 bl 2000cecc -2000cf02: e001 b.n 2000cf08 - -static int r820t_read_cache_reg(r820t_priv_t *priv, int reg) -{ - reg -= REG_SHADOW_START; - - if (reg >= 0 && reg < NUM_REGS) -2000cf04: 2001 movs r0, #1 -2000cf06: 4240 negs r0, r0 - return rc; - - val = (rc & ~bit_mask) | (val & bit_mask); - - return r820t_write_reg(priv, reg, val); -} -2000cf08: bd10 pop {r4, pc} - ... - -2000cf0c : - priv->regs[reg - REG_SHADOW_START] = val; -} - -/* read single register */ -uint8_t airspy_r820t_read_single(r820t_priv_t *priv, uint8_t reg) -{ -2000cf0c: b538 push {r3, r4, r5, lr} - uint8_t val; - - /* read the value */ - airspy_r820t_read(priv, r820t_read_data, reg+1); -2000cf0e: 4d04 ldr r5, [pc, #16] ; (2000cf20 ) -2000cf10: 1c4a adds r2, r1, #1 - priv->regs[reg - REG_SHADOW_START] = val; -} - -/* read single register */ -uint8_t airspy_r820t_read_single(r820t_priv_t *priv, uint8_t reg) -{ -2000cf12: 1c0c adds r4, r1, #0 - uint8_t val; - - /* read the value */ - airspy_r820t_read(priv, r820t_read_data, reg+1); -2000cf14: b2d2 uxtb r2, r2 -2000cf16: 1c29 adds r1, r5, #0 -2000cf18: f7ff ff64 bl 2000cde4 - val = r820t_read_data[reg]; - return val; -2000cf1c: 5d28 ldrb r0, [r5, r4] -} -2000cf1e: bd38 pop {r3, r4, r5, pc} -2000cf20: 2000f744 .word 0x2000f744 - -2000cf24 : - - return rc; -} - -int r820t_set_pll(r820t_priv_t *priv, uint32_t freq) -{ -2000cf24: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} - const uint32_t vco_min = 1770000000; - const uint32_t vco_max = 3900000000; - uint32_t pll_ref = (priv->xtal_freq >> 1); -2000cf26: 6805 ldr r5, [r0, #0] - - return rc; -} - -int r820t_set_pll(r820t_priv_t *priv, uint32_t freq) -{ -2000cf28: 1c04 adds r4, r0, #0 -2000cf2a: 1c0e adds r6, r1, #0 - uint8_t ni; - uint8_t si; - uint8_t nint; - - /* Calculate divider */ - for (div_num = 0; div_num < 5; div_num++) -2000cf2c: 2300 movs r3, #0 - { - vco_exact = freq << (div_num + 1); -2000cf2e: 1c5f adds r7, r3, #1 -2000cf30: 1c31 adds r1, r6, #0 - if (vco_exact >= vco_min && vco_exact <= vco_max) -2000cf32: 4a2f ldr r2, [pc, #188] ; (2000cff0 ) - uint8_t nint; - - /* Calculate divider */ - for (div_num = 0; div_num < 5; div_num++) - { - vco_exact = freq << (div_num + 1); -2000cf34: 40b9 lsls r1, r7 - if (vco_exact >= vco_min && vco_exact <= vco_max) -2000cf36: 1888 adds r0, r1, r2 -2000cf38: 492e ldr r1, [pc, #184] ; (2000cff4 ) -2000cf3a: 4288 cmp r0, r1 -2000cf3c: d903 bls.n 2000cf46 - uint8_t ni; - uint8_t si; - uint8_t nint; - - /* Calculate divider */ - for (div_num = 0; div_num < 5; div_num++) -2000cf3e: 1e3b subs r3, r7, #0 -2000cf40: 2b05 cmp r3, #5 -2000cf42: d1f4 bne.n 2000cf2e -2000cf44: e000 b.n 2000cf48 - { - vco_exact = freq << (div_num + 1); - if (vco_exact >= vco_min && vco_exact <= vco_max) -2000cf46: 1c1f adds r7, r3, #0 - nint -= 13; - ni = (nint >> 2); - si = nint - (ni << 2); - - /* Set the phase splitter */ - rc = r820t_write_reg_mask(priv, 0x10, (uint8_t) (div_num << 5), 0xe0); -2000cf48: 017a lsls r2, r7, #5 -2000cf4a: b2d2 uxtb r2, r2 -2000cf4c: 1c20 adds r0, r4, #0 -2000cf4e: 2110 movs r1, #16 -2000cf50: 23e0 movs r3, #224 ; 0xe0 -2000cf52: f7ff ffca bl 2000ceea - if(rc < 0) -2000cf56: 2800 cmp r0, #0 -2000cf58: db48 blt.n 2000cfec - { - break; - } - } - - vco_exact = freq << (div_num + 1); -2000cf5a: 3701 adds r7, #1 - nint = (uint8_t) ((vco_exact + (pll_ref >> 16)) / pll_ref_2x); -2000cf5c: 0c69 lsrs r1, r5, #17 - -int r820t_set_pll(r820t_priv_t *priv, uint32_t freq) -{ - const uint32_t vco_min = 1770000000; - const uint32_t vco_max = 3900000000; - uint32_t pll_ref = (priv->xtal_freq >> 1); -2000cf5e: 0868 lsrs r0, r5, #1 - { - break; - } - } - - vco_exact = freq << (div_num + 1); -2000cf60: 40be lsls r6, r7 - -int r820t_set_pll(r820t_priv_t *priv, uint32_t freq) -{ - const uint32_t vco_min = 1770000000; - const uint32_t vco_max = 3900000000; - uint32_t pll_ref = (priv->xtal_freq >> 1); -2000cf62: 9001 str r0, [sp, #4] - break; - } - } - - vco_exact = freq << (div_num + 1); - nint = (uint8_t) ((vco_exact + (pll_ref >> 16)) / pll_ref_2x); -2000cf64: 9100 str r1, [sp, #0] -2000cf66: 1870 adds r0, r6, r1 -2000cf68: 1c29 adds r1, r5, #0 -2000cf6a: f001 fbcd bl 2000e708 <__aeabi_uidiv> - vco_frac = vco_exact - pll_ref_2x * nint; - - nint -= 13; -2000cf6e: 1c03 adds r3, r0, #0 -2000cf70: 3b0d subs r3, #13 -2000cf72: b2da uxtb r2, r3 - break; - } - } - - vco_exact = freq << (div_num + 1); - nint = (uint8_t) ((vco_exact + (pll_ref >> 16)) / pll_ref_2x); -2000cf74: 1c07 adds r7, r0, #0 - vco_frac = vco_exact - pll_ref_2x * nint; - - nint -= 13; - ni = (nint >> 2); -2000cf76: 0890 lsrs r0, r2, #2 - si = nint - (ni << 2); -2000cf78: 0081 lsls r1, r0, #2 -2000cf7a: 1a53 subs r3, r2, r1 - rc = r820t_write_reg_mask(priv, 0x10, (uint8_t) (div_num << 5), 0xe0); - if(rc < 0) - return rc; - - /* Set the rough VCO frequency */ - rc = r820t_write_reg(priv, 0x14, (uint8_t) (ni + (si << 6))); -2000cf7c: 019a lsls r2, r3, #6 -2000cf7e: 1880 adds r0, r0, r2 -2000cf80: b2c2 uxtb r2, r0 -2000cf82: 2114 movs r1, #20 -2000cf84: 1c20 adds r0, r4, #0 -2000cf86: f7ff ffa1 bl 2000cecc - if(rc < 0) -2000cf8a: 2800 cmp r0, #0 -2000cf8c: db2e blt.n 2000cfec - } - } - - vco_exact = freq << (div_num + 1); - nint = (uint8_t) ((vco_exact + (pll_ref >> 16)) / pll_ref_2x); - vco_frac = vco_exact - pll_ref_2x * nint; -2000cf8e: b2ff uxtb r7, r7 -2000cf90: 437d muls r5, r7 -2000cf92: 1b76 subs r6, r6, r5 - /* Set the rough VCO frequency */ - rc = r820t_write_reg(priv, 0x14, (uint8_t) (ni + (si << 6))); - if(rc < 0) - return rc; - - if (vco_frac == 0) -2000cf94: d104 bne.n 2000cfa0 - { - /* Disable frac pll */ - rc = r820t_write_reg_mask(priv, 0x12, 0x08, 0x08); -2000cf96: 2208 movs r2, #8 -2000cf98: 1c20 adds r0, r4, #0 -2000cf9a: 2112 movs r1, #18 -2000cf9c: 1c13 adds r3, r2, #0 -2000cf9e: e023 b.n 2000cfe8 - if(rc < 0) - return rc; - } - else - { - vco_frac += pll_ref >> 16; -2000cfa0: 9d00 ldr r5, [sp, #0] - sdm = 0; -2000cfa2: 2700 movs r7, #0 - if(rc < 0) - return rc; - } - else - { - vco_frac += pll_ref >> 16; -2000cfa4: 1976 adds r6, r6, r5 - sdm = 0; - for(n_sdm = 0; n_sdm < 16; n_sdm++) -2000cfa6: 1c3b adds r3, r7, #0 - { - con_frac = pll_ref >> n_sdm; -2000cfa8: 9a01 ldr r2, [sp, #4] -2000cfaa: 40da lsrs r2, r3 - if (vco_frac >= con_frac) -2000cfac: 4296 cmp r6, r2 -2000cfae: d306 bcc.n 2000cfbe - { - sdm |= (uint16_t) (0x8000 >> n_sdm); -2000cfb0: 2180 movs r1, #128 ; 0x80 -2000cfb2: 0208 lsls r0, r1, #8 -2000cfb4: 4118 asrs r0, r3 -2000cfb6: 4307 orrs r7, r0 -2000cfb8: b2bf uxth r7, r7 - vco_frac -= con_frac; -2000cfba: 1ab6 subs r6, r6, r2 - if (vco_frac == 0) -2000cfbc: d002 beq.n 2000cfc4 - } - else - { - vco_frac += pll_ref >> 16; - sdm = 0; - for(n_sdm = 0; n_sdm < 16; n_sdm++) -2000cfbe: 3301 adds r3, #1 -2000cfc0: 2b10 cmp r3, #16 -2000cfc2: d1f1 bne.n 2000cfa8 - if (actual_freq != freq) - { - fprintf(stderr,"Tunning delta: %d Hz", delta); - } -*/ - rc = r820t_write_reg(priv, 0x15, (uint8_t)(sdm & 0xff)); -2000cfc4: b2fa uxtb r2, r7 -2000cfc6: 1c20 adds r0, r4, #0 -2000cfc8: 2115 movs r1, #21 -2000cfca: f7ff ff7f bl 2000cecc - if (rc < 0) -2000cfce: 2800 cmp r0, #0 -2000cfd0: db0c blt.n 2000cfec - return rc; - - rc = r820t_write_reg(priv, 0x16, (uint8_t)(sdm >> 8)); -2000cfd2: 0a3a lsrs r2, r7, #8 -2000cfd4: 1c20 adds r0, r4, #0 -2000cfd6: 2116 movs r1, #22 -2000cfd8: f7ff ff78 bl 2000cecc - if (rc < 0) -2000cfdc: 2800 cmp r0, #0 -2000cfde: db05 blt.n 2000cfec - return rc; - - /* Enable frac pll */ - rc = r820t_write_reg_mask(priv, 0x12, 0x00, 0x08); -2000cfe0: 1c20 adds r0, r4, #0 -2000cfe2: 2112 movs r1, #18 -2000cfe4: 2200 movs r2, #0 -2000cfe6: 2308 movs r3, #8 -2000cfe8: f7ff ff7f bl 2000ceea - if (rc < 0) - return rc; - } - return rc; -} -2000cfec: bdfe pop {r1, r2, r3, r4, r5, r6, r7, pc} -2000cfee: 46c0 nop ; (mov r8, r8) -2000cff0: 967ff180 .word 0x967ff180 -2000cff4: 7ef53880 .word 0x7ef53880 - -2000cff8 : - -int r820t_set_freq(r820t_priv_t *priv, uint32_t freq) -{ -2000cff8: b5f8 push {r3, r4, r5, r6, r7, lr} - int freq_idx; - int rc = 0; - - /* Get the proper frequency range in MHz instead of Hz */ - /* Fast divide freq by 1000000 */ - freq = (uint32_t)((uint64_t)freq * 4295 >> 32); -2000cffa: 4b26 ldr r3, [pc, #152] ; (2000d094 ) -2000cffc: 4a24 ldr r2, [pc, #144] ; (2000d090 ) - } - return rc; -} - -int r820t_set_freq(r820t_priv_t *priv, uint32_t freq) -{ -2000cffe: 1c04 adds r4, r0, #0 -2000d000: 1c0d adds r5, r1, #0 - int rc; - uint32_t lo_freq = freq + priv->if_freq; -2000d002: 6887 ldr r7, [r0, #8] - int freq_idx; - int rc = 0; - - /* Get the proper frequency range in MHz instead of Hz */ - /* Fast divide freq by 1000000 */ - freq = (uint32_t)((uint64_t)freq * 4295 >> 32); -2000d004: 1c08 adds r0, r1, #0 -2000d006: 2100 movs r1, #0 -2000d008: f001 fbce bl 2000e7a8 <__aeabi_lmul> - - freq_idx = r820t_freq_get_idx(freq); -2000d00c: 1c08 adds r0, r1, #0 -2000d00e: f7ff feb7 bl 2000cd80 - range = &freq_ranges[freq_idx]; -2000d012: 2603 movs r6, #3 -2000d014: 4370 muls r0, r6 -2000d016: 4920 ldr r1, [pc, #128] ; (2000d098 ) -#ifdef OPTIM_SET_MUX - if(freq_idx != r820t_set_mux_freq_idx) - { -#endif - /* Open Drain */ - rc = r820t_write_reg_mask(priv, 0x17, range->open_d, 0x08); -2000d018: 2308 movs r3, #8 - /* Get the proper frequency range in MHz instead of Hz */ - /* Fast divide freq by 1000000 */ - freq = (uint32_t)((uint64_t)freq * 4295 >> 32); - - freq_idx = r820t_freq_get_idx(freq); - range = &freq_ranges[freq_idx]; -2000d01a: 180e adds r6, r1, r0 -#ifdef OPTIM_SET_MUX - if(freq_idx != r820t_set_mux_freq_idx) - { -#endif - /* Open Drain */ - rc = r820t_write_reg_mask(priv, 0x17, range->open_d, 0x08); -2000d01c: 7832 ldrb r2, [r6, #0] -2000d01e: 1c20 adds r0, r4, #0 -2000d020: 2117 movs r1, #23 -2000d022: f7ff ff62 bl 2000ceea - if (rc < 0) -2000d026: 2800 cmp r0, #0 -2000d028: db2e blt.n 2000d088 - return rc; - - /* RF_MUX,Polymux */ - rc = r820t_write_reg_mask(priv, 0x1a, range->rf_mux_ploy, 0xc3); -2000d02a: 7872 ldrb r2, [r6, #1] -2000d02c: 1c20 adds r0, r4, #0 -2000d02e: 211a movs r1, #26 -2000d030: 23c3 movs r3, #195 ; 0xc3 -2000d032: f7ff ff5a bl 2000ceea - if (rc < 0) -2000d036: 2800 cmp r0, #0 -2000d038: db26 blt.n 2000d088 - return rc; - - /* TF BAND */ - rc = r820t_write_reg(priv, 0x1b, range->tf_c); -2000d03a: 78b2 ldrb r2, [r6, #2] -2000d03c: 1c20 adds r0, r4, #0 -2000d03e: 211b movs r1, #27 -2000d040: f7ff ff44 bl 2000cecc - if (rc < 0) -2000d044: 2800 cmp r0, #0 -2000d046: db1f blt.n 2000d088 - return rc; - - /* XTAL CAP & Drive */ - rc = r820t_write_reg_mask(priv, 0x10, 0x08, 0x0b); -2000d048: 1c20 adds r0, r4, #0 -2000d04a: 2110 movs r1, #16 -2000d04c: 2208 movs r2, #8 -2000d04e: 230b movs r3, #11 -2000d050: f7ff ff4b bl 2000ceea - if (rc < 0) -2000d054: 2800 cmp r0, #0 -2000d056: db17 blt.n 2000d088 - return rc; - - rc = r820t_write_reg_mask(priv, 0x08, 0x00, 0x3f); -2000d058: 1c20 adds r0, r4, #0 -2000d05a: 2108 movs r1, #8 -2000d05c: 2200 movs r2, #0 -2000d05e: 233f movs r3, #63 ; 0x3f -2000d060: f7ff ff43 bl 2000ceea - if (rc < 0) -2000d064: 2800 cmp r0, #0 -2000d066: db0f blt.n 2000d088 - return rc; - - rc = r820t_write_reg_mask(priv, 0x09, 0x00, 0x3f); -2000d068: 1c20 adds r0, r4, #0 -2000d06a: 2109 movs r1, #9 -2000d06c: 2200 movs r2, #0 -2000d06e: 233f movs r3, #63 ; 0x3f -2000d070: f7ff ff3b bl 2000ceea -{ - int rc; - uint32_t lo_freq = freq + priv->if_freq; - - rc = r820t_set_tf(priv, freq); - if (rc < 0) -2000d074: 2800 cmp r0, #0 -2000d076: db07 blt.n 2000d088 -} - -int r820t_set_freq(r820t_priv_t *priv, uint32_t freq) -{ - int rc; - uint32_t lo_freq = freq + priv->if_freq; -2000d078: 19e9 adds r1, r5, r7 - - rc = r820t_set_tf(priv, freq); - if (rc < 0) - return rc; - - rc = r820t_set_pll(priv, lo_freq); -2000d07a: 1c20 adds r0, r4, #0 -2000d07c: f7ff ff52 bl 2000cf24 - if (rc < 0) -2000d080: 2800 cmp r0, #0 -2000d082: db01 blt.n 2000d088 - return rc; - - priv->freq = freq; -2000d084: 6065 str r5, [r4, #4] - - return 0; -2000d086: 2000 movs r0, #0 -} -2000d088: bdf8 pop {r3, r4, r5, r6, r7, pc} -2000d08a: 46c0 nop ; (mov r8, r8) -2000d08c: 46c0 nop ; (mov r8, r8) -2000d08e: 46c0 nop ; (mov r8, r8) -2000d090: 000010c7 .word 0x000010c7 -2000d094: 00000000 .word 0x00000000 -2000d098: 2000ec1c .word 0x2000ec1c -2000d09c: 46c0 nop ; (mov r8, r8) -2000d09e: 46c0 nop ; (mov r8, r8) - -2000d0a0 : - -int r820t_set_lna_gain(r820t_priv_t *priv, uint8_t gain_index) -{ -2000d0a0: b508 push {r3, lr} -2000d0a2: 1c0a adds r2, r1, #0 - return r820t_write_reg_mask(priv, 0x05, gain_index, 0x0f); -2000d0a4: 230f movs r3, #15 -2000d0a6: 2105 movs r1, #5 -2000d0a8: f7ff ff1f bl 2000ceea -} -2000d0ac: bd08 pop {r3, pc} - -2000d0ae : - -int r820t_set_mixer_gain(r820t_priv_t *priv, uint8_t gain_index) -{ -2000d0ae: b508 push {r3, lr} -2000d0b0: 1c0a adds r2, r1, #0 - return r820t_write_reg_mask(priv, 0x07, gain_index, 0x0f); -2000d0b2: 230f movs r3, #15 -2000d0b4: 2107 movs r1, #7 -2000d0b6: f7ff ff18 bl 2000ceea -} -2000d0ba: bd08 pop {r3, pc} - -2000d0bc : - -int r820t_set_vga_gain(r820t_priv_t *priv, uint8_t gain_index) -{ -2000d0bc: b508 push {r3, lr} -2000d0be: 1c0a adds r2, r1, #0 - return r820t_write_reg_mask(priv, 0x0c, gain_index, 0x0f); -2000d0c0: 230f movs r3, #15 -2000d0c2: 210c movs r1, #12 -2000d0c4: f7ff ff11 bl 2000ceea -} -2000d0c8: bd08 pop {r3, pc} - -2000d0ca : - -int r820t_set_lna_agc(r820t_priv_t *priv, uint8_t value) -{ -2000d0ca: b508 push {r3, lr} - value = value != 0 ? 0x00 : 0x10; -2000d0cc: 424a negs r2, r1 -2000d0ce: 414a adcs r2, r1 -2000d0d0: 0112 lsls r2, r2, #4 - return r820t_write_reg_mask(priv, 0x05, value, 0x10); -2000d0d2: 2105 movs r1, #5 -2000d0d4: 2310 movs r3, #16 -2000d0d6: f7ff ff08 bl 2000ceea -} -2000d0da: bd08 pop {r3, pc} - -2000d0dc : - -int r820t_set_mixer_agc(r820t_priv_t *priv, uint8_t value) -{ -2000d0dc: b508 push {r3, lr} -2000d0de: 1e0a subs r2, r1, #0 - value = value != 0 ? 0x10 : 0x00; -2000d0e0: d000 beq.n 2000d0e4 -2000d0e2: 2210 movs r2, #16 - return r820t_write_reg_mask(priv, 0x07, value, 0x10); -2000d0e4: 2107 movs r1, #7 -2000d0e6: 2310 movs r3, #16 -2000d0e8: f7ff feff bl 2000ceea -} -2000d0ec: bd08 pop {r3, pc} - ... - -2000d0f0 : -"inspired by Mauro Carvalho Chehab calibration technique" -https://stuff.mit.edu/afs/sipb/contrib/linux/drivers/media/tuners/r820t.c -part of r820t_set_tv_standard() -*/ -int r820t_calibrate(r820t_priv_t *priv) -{ -2000d0f0: b537 push {r0, r1, r2, r4, r5, lr} -2000d0f2: 1c04 adds r4, r0, #0 -2000d0f4: 2505 movs r5, #5 - uint8_t data[5]; - - for (i = 0; i < 5; i++) - { - /* Set filt_cap */ - rc = r820t_write_reg_mask(priv, 0x0b, 0x08, 0x60); -2000d0f6: 1c20 adds r0, r4, #0 -2000d0f8: 210b movs r1, #11 -2000d0fa: 2208 movs r2, #8 -2000d0fc: 2360 movs r3, #96 ; 0x60 -2000d0fe: f7ff fef4 bl 2000ceea - if (rc < 0) -2000d102: 2800 cmp r0, #0 -2000d104: db43 blt.n 2000d18e - return rc; - - /* set cali clk =on */ - rc = r820t_write_reg_mask(priv, 0x0f, 0x04, 0x04); -2000d106: 2204 movs r2, #4 -2000d108: 1c20 adds r0, r4, #0 -2000d10a: 210f movs r1, #15 -2000d10c: 1c13 adds r3, r2, #0 -2000d10e: f7ff feec bl 2000ceea - if (rc < 0) -2000d112: 2800 cmp r0, #0 -2000d114: db3b blt.n 2000d18e - return rc; - - /* X'tal cap 0pF for PLL */ - rc = r820t_write_reg_mask(priv, 0x10, 0x00, 0x03); -2000d116: 1c20 adds r0, r4, #0 -2000d118: 2110 movs r1, #16 -2000d11a: 2200 movs r2, #0 -2000d11c: 2303 movs r3, #3 -2000d11e: f7ff fee4 bl 2000ceea - if (rc < 0) -2000d122: 2800 cmp r0, #0 -2000d124: db33 blt.n 2000d18e - return rc; - - rc = r820t_set_pll(priv, CALIBRATION_LO * 1000); -2000d126: 1c20 adds r0, r4, #0 -2000d128: 4919 ldr r1, [pc, #100] ; (2000d190 ) -2000d12a: f7ff fefb bl 2000cf24 - if (rc < 0) -2000d12e: 2800 cmp r0, #0 -2000d130: db2d blt.n 2000d18e - return rc; - - /* Start Trigger */ - rc = r820t_write_reg_mask(priv, 0x0b, 0x10, 0x10); -2000d132: 2210 movs r2, #16 -2000d134: 1c20 adds r0, r4, #0 -2000d136: 210b movs r1, #11 -2000d138: 1c13 adds r3, r2, #0 -2000d13a: f7ff fed6 bl 2000ceea - if (rc < 0) -2000d13e: 2800 cmp r0, #0 -2000d140: db25 blt.n 2000d18e - return rc; - - delay(10000); -2000d142: 4814 ldr r0, [pc, #80] ; (2000d194 ) -2000d144: f7ff fda4 bl 2000cc90 - - /* Stop Trigger */ - rc = r820t_write_reg_mask(priv, 0x0b, 0x00, 0x10); -2000d148: 1c20 adds r0, r4, #0 -2000d14a: 210b movs r1, #11 -2000d14c: 2200 movs r2, #0 -2000d14e: 2310 movs r3, #16 -2000d150: f7ff fecb bl 2000ceea - if (rc < 0) -2000d154: 2800 cmp r0, #0 -2000d156: db1a blt.n 2000d18e - return rc; - - /* set cali clk =off */ - rc = r820t_write_reg_mask(priv, 0x0f, 0x00, 0x04); -2000d158: 1c20 adds r0, r4, #0 -2000d15a: 210f movs r1, #15 -2000d15c: 2200 movs r2, #0 -2000d15e: 2304 movs r3, #4 -2000d160: f7ff fec3 bl 2000ceea - if (rc < 0) -2000d164: 2800 cmp r0, #0 -2000d166: db12 blt.n 2000d18e -} - -static int r820t_read(r820t_priv_t *priv, uint8_t *val, int len) -{ - /* reg not used and assumed to be always 0 because start from reg0 to reg0+len */ - airspy_r820t_read(priv, val, len); -2000d168: 1c20 adds r0, r4, #0 -2000d16a: 2205 movs r2, #5 -2000d16c: 4669 mov r1, sp -2000d16e: f7ff fe39 bl 2000cde4 - /* Check if calibration worked */ - rc = r820t_read(priv, data, sizeof(data)); - if (rc < 0) - return rc; - - cal_code = data[4] & 0x0f; -2000d172: 466b mov r3, sp -2000d174: 791a ldrb r2, [r3, #4] -2000d176: 200f movs r0, #15 -2000d178: 4010 ands r0, r2 - if (cal_code && cal_code != 0x0f) -2000d17a: d001 beq.n 2000d180 -2000d17c: 280f cmp r0, #15 -2000d17e: d105 bne.n 2000d18c -2000d180: 3d01 subs r5, #1 -int r820t_calibrate(r820t_priv_t *priv) -{ - int i, rc, cal_code; - uint8_t data[5]; - - for (i = 0; i < 5; i++) -2000d182: 2d00 cmp r5, #0 -2000d184: d1b7 bne.n 2000d0f6 - cal_code = data[4] & 0x0f; - if (cal_code && cal_code != 0x0f) - return 0; - } - - return -1; -2000d186: 2101 movs r1, #1 -2000d188: 4248 negs r0, r1 -2000d18a: e000 b.n 2000d18e - if (rc < 0) - return rc; - - cal_code = data[4] & 0x0f; - if (cal_code && cal_code != 0x0f) - return 0; -2000d18c: 2000 movs r0, #0 - } - - return -1; -} -2000d18e: bd3e pop {r1, r2, r3, r4, r5, pc} -2000d190: 053ec600 .word 0x053ec600 -2000d194: 00002710 .word 0x00002710 - -2000d198 : - -int r820t_init(r820t_priv_t *priv, const uint32_t if_freq) -{ -2000d198: b538 push {r3, r4, r5, lr} - int rc; - uint32_t saved_freq; - - r820t_state_standby = 0; -2000d19a: 4b0e ldr r3, [pc, #56] ; (2000d1d4 ) - - return -1; -} - -int r820t_init(r820t_priv_t *priv, const uint32_t if_freq) -{ -2000d19c: 1c04 adds r4, r0, #0 - int rc; - uint32_t saved_freq; - - r820t_state_standby = 0; -2000d19e: 2200 movs r2, #0 - priv->if_freq = if_freq; -2000d1a0: 6081 str r1, [r0, #8] - /* Initialize registers */ - airspy_r820t_write_init(priv->regs); -2000d1a2: 300c adds r0, #12 -int r820t_init(r820t_priv_t *priv, const uint32_t if_freq) -{ - int rc; - uint32_t saved_freq; - - r820t_state_standby = 0; -2000d1a4: 701a strb r2, [r3, #0] - priv->if_freq = if_freq; - /* Initialize registers */ - airspy_r820t_write_init(priv->regs); -2000d1a6: f7ff fdfb bl 2000cda0 - - r820t_set_freq(priv, priv->freq); -2000d1aa: 6861 ldr r1, [r4, #4] -2000d1ac: 1c20 adds r0, r4, #0 -2000d1ae: f7ff ff23 bl 2000cff8 - - /* Calibrate the IF filter */ - saved_freq = priv->freq; - rc = r820t_calibrate(priv); -2000d1b2: 1c20 adds r0, r4, #0 - airspy_r820t_write_init(priv->regs); - - r820t_set_freq(priv, priv->freq); - - /* Calibrate the IF filter */ - saved_freq = priv->freq; -2000d1b4: 6865 ldr r5, [r4, #4] - rc = r820t_calibrate(priv); -2000d1b6: f7ff ff9b bl 2000d0f0 - priv->freq = saved_freq; -2000d1ba: 6065 str r5, [r4, #4] - if (rc < 0) -2000d1bc: 2800 cmp r0, #0 -2000d1be: da03 bge.n 2000d1c8 - { - saved_freq = priv->freq; - r820t_calibrate(priv); -2000d1c0: 1c20 adds r0, r4, #0 -2000d1c2: f7ff ff95 bl 2000d0f0 - priv->freq = saved_freq; -2000d1c6: 6065 str r5, [r4, #4] - } - - /* Restore freq as it has been modified by r820t_calibrate() */ - rc = r820t_set_freq(priv, priv->freq); -2000d1c8: 1c29 adds r1, r5, #0 -2000d1ca: 1c20 adds r0, r4, #0 -2000d1cc: f7ff ff14 bl 2000cff8 - return rc; -} -2000d1d0: bd38 pop {r3, r4, r5, pc} -2000d1d2: 46c0 nop ; (mov r8, r8) -2000d1d4: 2000ef2c .word 0x2000ef2c - -2000d1d8 : - /* Enter in Standby mode */ - r820t_standby(); -} - -void r820t_set_if_bandwidth(r820t_priv_t *priv, uint8_t bw) -{ -2000d1d8: b5f0 push {r4, r5, r6, r7, lr} - const uint8_t modes[] = { 0xE0, 0x80, 0x60, 0x00 }; -2000d1da: 4f11 ldr r7, [pc, #68] ; (2000d220 ) - /* Enter in Standby mode */ - r820t_standby(); -} - -void r820t_set_if_bandwidth(r820t_priv_t *priv, uint8_t bw) -{ -2000d1dc: b087 sub sp, #28 - const uint8_t modes[] = { 0xE0, 0x80, 0x60, 0x00 }; -2000d1de: ae01 add r6, sp, #4 - /* Enter in Standby mode */ - r820t_standby(); -} - -void r820t_set_if_bandwidth(r820t_priv_t *priv, uint8_t bw) -{ -2000d1e0: 1c04 adds r4, r0, #0 -2000d1e2: 1c0d adds r5, r1, #0 - const uint8_t modes[] = { 0xE0, 0x80, 0x60, 0x00 }; -2000d1e4: 1c30 adds r0, r6, #0 -2000d1e6: 1c39 adds r1, r7, #0 -2000d1e8: 2204 movs r2, #4 -2000d1ea: f001 faff bl 2000e7ec - const uint8_t opt[] = { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; -2000d1ee: 1d39 adds r1, r7, #4 -2000d1f0: a802 add r0, sp, #8 -2000d1f2: 2210 movs r2, #16 -2000d1f4: f001 fafa bl 2000e7ec - uint8_t a = 0xB0 | opt[bw & 0x0F]; - uint8_t b = 0x0F | modes[bw >> 4]; -2000d1f8: 200f movs r0, #15 -2000d1fa: 092b lsrs r3, r5, #4 - -void r820t_set_if_bandwidth(r820t_priv_t *priv, uint8_t bw) -{ - const uint8_t modes[] = { 0xE0, 0x80, 0x60, 0x00 }; - const uint8_t opt[] = { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; - uint8_t a = 0xB0 | opt[bw & 0x0F]; -2000d1fc: a902 add r1, sp, #8 -2000d1fe: 4005 ands r5, r0 - uint8_t b = 0x0F | modes[bw >> 4]; -2000d200: 5cf6 ldrb r6, [r6, r3] - -void r820t_set_if_bandwidth(r820t_priv_t *priv, uint8_t bw) -{ - const uint8_t modes[] = { 0xE0, 0x80, 0x60, 0x00 }; - const uint8_t opt[] = { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; - uint8_t a = 0xB0 | opt[bw & 0x0F]; -2000d202: 5d4a ldrb r2, [r1, r5] -2000d204: 25b0 movs r5, #176 ; 0xb0 - uint8_t b = 0x0F | modes[bw >> 4]; -2000d206: 4306 orrs r6, r0 - r820t_write_reg(priv, 0x0A, a); -2000d208: 432a orrs r2, r5 -2000d20a: 1c20 adds r0, r4, #0 -2000d20c: 210a movs r1, #10 -2000d20e: f7ff fe5d bl 2000cecc - r820t_write_reg(priv, 0x0B, b); -2000d212: 1c20 adds r0, r4, #0 -2000d214: 210b movs r1, #11 -2000d216: 1c32 adds r2, r6, #0 -2000d218: f7ff fe58 bl 2000cecc -} -2000d21c: b007 add sp, #28 -2000d21e: bdf0 pop {r4, r5, r6, r7, pc} -2000d220: 2000e9b0 .word 0x2000e9b0 - -2000d224 : - i2c1_stop(); - } -} - -int r820t_standby(void) -{ -2000d224: b508 push {r3, lr} - airspy_r820t_write_direct(0x05, 0xA0); -2000d226: 2005 movs r0, #5 -2000d228: 21a0 movs r1, #160 ; 0xa0 -2000d22a: f7ff fd8b bl 2000cd44 - airspy_r820t_write_direct(0x06, 0xD0); -2000d22e: 2006 movs r0, #6 -2000d230: 21d0 movs r1, #208 ; 0xd0 -2000d232: f7ff fd87 bl 2000cd44 - airspy_r820t_write_direct(0x07, 0x00); -2000d236: 2007 movs r0, #7 -2000d238: 2100 movs r1, #0 -2000d23a: f7ff fd83 bl 2000cd44 - airspy_r820t_write_direct(0x08, 0x40); -2000d23e: 2008 movs r0, #8 -2000d240: 2140 movs r1, #64 ; 0x40 -2000d242: f7ff fd7f bl 2000cd44 - airspy_r820t_write_direct(0x09, 0xC0); -2000d246: 2009 movs r0, #9 -2000d248: 21c0 movs r1, #192 ; 0xc0 -2000d24a: f7ff fd7b bl 2000cd44 - airspy_r820t_write_direct(0x0a, 0x70); -2000d24e: 200a movs r0, #10 -2000d250: 2170 movs r1, #112 ; 0x70 -2000d252: f7ff fd77 bl 2000cd44 - airspy_r820t_write_direct(0x0c, 0xA0); -2000d256: 200c movs r0, #12 -2000d258: 21a0 movs r1, #160 ; 0xa0 -2000d25a: f7ff fd73 bl 2000cd44 - airspy_r820t_write_direct(0x0f, 0x2A); -2000d25e: 200f movs r0, #15 -2000d260: 212a movs r1, #42 ; 0x2a -2000d262: f7ff fd6f bl 2000cd44 - airspy_r820t_write_direct(0x11, 0x03); -2000d266: 2011 movs r0, #17 -2000d268: 2103 movs r1, #3 -2000d26a: f7ff fd6b bl 2000cd44 - airspy_r820t_write_direct(0x17, 0xF4); -2000d26e: 2017 movs r0, #23 -2000d270: 21f4 movs r1, #244 ; 0xf4 -2000d272: f7ff fd67 bl 2000cd44 - airspy_r820t_write_direct(0x19, 0x0C); -2000d276: 2019 movs r0, #25 -2000d278: 210c movs r1, #12 -2000d27a: f7ff fd63 bl 2000cd44 - r820t_state_standby = 1; -2000d27e: 4b02 ldr r3, [pc, #8] ; (2000d288 ) -2000d280: 2201 movs r2, #1 - - return 0; -} -2000d282: 2000 movs r0, #0 - airspy_r820t_write_direct(0x0c, 0xA0); - airspy_r820t_write_direct(0x0f, 0x2A); - airspy_r820t_write_direct(0x11, 0x03); - airspy_r820t_write_direct(0x17, 0xF4); - airspy_r820t_write_direct(0x19, 0x0C); - r820t_state_standby = 1; -2000d284: 701a strb r2, [r3, #0] - - return 0; -} -2000d286: bd08 pop {r3, pc} -2000d288: 2000ef2c .word 0x2000ef2c - -2000d28c : - rc = r820t_set_freq(priv, priv->freq); - return rc; -} - -void r820t_startup(r820t_priv_t *priv) -{ -2000d28c: b508 push {r3, lr} - r820t_state_standby = 0; -2000d28e: 4b04 ldr r3, [pc, #16] ; (2000d2a0 ) -2000d290: 2200 movs r2, #0 - /* Initialize registers */ - airspy_r820t_write_init(priv->regs); -2000d292: 300c adds r0, #12 - return rc; -} - -void r820t_startup(r820t_priv_t *priv) -{ - r820t_state_standby = 0; -2000d294: 701a strb r2, [r3, #0] - /* Initialize registers */ - airspy_r820t_write_init(priv->regs); -2000d296: f7ff fd83 bl 2000cda0 - /* Enter in Standby mode */ - r820t_standby(); -2000d29a: f7ff ffc3 bl 2000d224 -} -2000d29e: bd08 pop {r3, pc} -2000d2a0: 2000ef2c .word 0x2000ef2c - -2000d2a4 : - device_id = w25q80bv_get_device_id(); - } -} - -uint8_t w25q80bv_get_status(void) -{ -2000d2a4: b570 push {r4, r5, r6, lr} - uint8_t value; - - gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d2a6: 4d0b ldr r5, [pc, #44] ; (2000d2d4 ) -2000d2a8: 2480 movs r4, #128 ; 0x80 -2000d2aa: 0124 lsls r4, r4, #4 -2000d2ac: 1c28 adds r0, r5, #0 -2000d2ae: 1c21 adds r1, r4, #0 -2000d2b0: f7ff fbfd bl 2000caae - ssp_transfer(SSP0_NUM, W25Q80BV_READ_STATUS1); -2000d2b4: 2105 movs r1, #5 -2000d2b6: 2000 movs r0, #0 -2000d2b8: f001 f922 bl 2000e500 - value = ssp_transfer(SSP0_NUM, 0xFF); -2000d2bc: 21ff movs r1, #255 ; 0xff -2000d2be: 2000 movs r0, #0 -2000d2c0: f001 f91e bl 2000e500 - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d2c4: 1c21 adds r1, r4, #0 -{ - uint8_t value; - - gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); - ssp_transfer(SSP0_NUM, W25Q80BV_READ_STATUS1); - value = ssp_transfer(SSP0_NUM, 0xFF); -2000d2c6: 1c06 adds r6, r0, #0 - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d2c8: 1c28 adds r0, r5, #0 -2000d2ca: f7ff fbeb bl 2000caa4 - - return value; -2000d2ce: b2f0 uxtb r0, r6 -} -2000d2d0: bd70 pop {r4, r5, r6, pc} -2000d2d2: 46c0 nop ; (mov r8, r8) -2000d2d4: 400f6014 .word 0x400f6014 - -2000d2d8 : - -/* Release power down / Device ID */ -uint8_t w25q80bv_get_device_id(void) -{ -2000d2d8: b570 push {r4, r5, r6, lr} - uint8_t value; - - gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d2da: 4d11 ldr r5, [pc, #68] ; (2000d320 ) -2000d2dc: 2480 movs r4, #128 ; 0x80 -2000d2de: 0124 lsls r4, r4, #4 -2000d2e0: 1c28 adds r0, r5, #0 -2000d2e2: 1c21 adds r1, r4, #0 -2000d2e4: f7ff fbe3 bl 2000caae - ssp_transfer(SSP0_NUM, W25Q80BV_DEVICE_ID); -2000d2e8: 21ab movs r1, #171 ; 0xab -2000d2ea: 2000 movs r0, #0 -2000d2ec: f001 f908 bl 2000e500 - - /* Read 3 dummy bytes */ - value = ssp_transfer(SSP0_NUM, 0xFF); -2000d2f0: 21ff movs r1, #255 ; 0xff -2000d2f2: 2000 movs r0, #0 -2000d2f4: f001 f904 bl 2000e500 - value = ssp_transfer(SSP0_NUM, 0xFF); -2000d2f8: 21ff movs r1, #255 ; 0xff -2000d2fa: 2000 movs r0, #0 -2000d2fc: f001 f900 bl 2000e500 - value = ssp_transfer(SSP0_NUM, 0xFF); -2000d300: 21ff movs r1, #255 ; 0xff -2000d302: 2000 movs r0, #0 -2000d304: f001 f8fc bl 2000e500 - /* Read Device ID shall return 0x13 for W25Q80BV */ - value = ssp_transfer(SSP0_NUM, 0xFF); -2000d308: 21ff movs r1, #255 ; 0xff -2000d30a: 2000 movs r0, #0 -2000d30c: f001 f8f8 bl 2000e500 - - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d310: 1c21 adds r1, r4, #0 - /* Read 3 dummy bytes */ - value = ssp_transfer(SSP0_NUM, 0xFF); - value = ssp_transfer(SSP0_NUM, 0xFF); - value = ssp_transfer(SSP0_NUM, 0xFF); - /* Read Device ID shall return 0x13 for W25Q80BV */ - value = ssp_transfer(SSP0_NUM, 0xFF); -2000d312: 1c06 adds r6, r0, #0 - - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d314: 1c28 adds r0, r5, #0 -2000d316: f7ff fbc5 bl 2000caa4 - - return value; -2000d31a: b2f0 uxtb r0, r6 -} -2000d31c: bd70 pop {r4, r5, r6, pc} -2000d31e: 46c0 nop ; (mov r8, r8) -2000d320: 400f6014 .word 0x400f6014 - -2000d324 : -* Set up pins for GPIO and SPI control, configure SSP0 peripheral for SPI. -* SSP0_SSEL is controlled by GPIO in order to handle various transfer lengths. -*/ - -void w25q80bv_setup(void) -{ -2000d324: b5f0 push {r4, r5, r6, r7, lr} - const uint8_t serial_clock_rate = 2; - const uint8_t clock_prescale_rate = 2; - - /* Reset SPIFI peripheral before to Erase/Write SPIFI memory through SPI */ - RESET_CTRL1 = RESET_CTRL1_SPIFI_RST; -2000d326: 2280 movs r2, #128 ; 0x80 -2000d328: 4b31 ldr r3, [pc, #196] ; (2000d3f0 ) -2000d32a: 0390 lsls r0, r2, #14 -* Set up pins for GPIO and SPI control, configure SSP0 peripheral for SPI. -* SSP0_SSEL is controlled by GPIO in order to handle various transfer lengths. -*/ - -void w25q80bv_setup(void) -{ -2000d32c: b087 sub sp, #28 - const uint8_t serial_clock_rate = 2; - const uint8_t clock_prescale_rate = 2; - - /* Reset SPIFI peripheral before to Erase/Write SPIFI memory through SPI */ - RESET_CTRL1 = RESET_CTRL1_SPIFI_RST; -2000d32e: 6018 str r0, [r3, #0] - - /* Init SPIFI GPIO to Normal GPIO */ - scu_pinmux(P3_3, (SCU_SSP_IO | SCU_CONF_FUNCTION2)); // P3_3 SPIFI_SCK => SSP0_SCK -2000d330: 21f2 movs r1, #242 ; 0xf2 -2000d332: 4830 ldr r0, [pc, #192] ; (2000d3f4 ) -2000d334: f000 ff48 bl 2000e1c8 - scu_pinmux(P3_4, (SCU_GPIO_FAST | SCU_CONF_FUNCTION0)); // P3_4 SPIFI SPIFI_SIO3 IO3 => GPIO1[14] -2000d338: 482f ldr r0, [pc, #188] ; (2000d3f8 ) -2000d33a: 21f0 movs r1, #240 ; 0xf0 -2000d33c: f000 ff44 bl 2000e1c8 - scu_pinmux(P3_5, (SCU_GPIO_FAST | SCU_CONF_FUNCTION0)); // P3_5 SPIFI SPIFI_SIO2 IO2 => GPIO1[15] -2000d340: 482e ldr r0, [pc, #184] ; (2000d3fc ) -2000d342: 21f0 movs r1, #240 ; 0xf0 -2000d344: f000 ff40 bl 2000e1c8 - scu_pinmux(P3_6, (SCU_GPIO_FAST | SCU_CONF_FUNCTION0)); // P3_6 SPIFI SPIFI_MISO IO1 => GPIO0[6] -2000d348: 482d ldr r0, [pc, #180] ; (2000d400 ) -2000d34a: 21f0 movs r1, #240 ; 0xf0 -2000d34c: f000 ff3c bl 2000e1c8 - scu_pinmux(P3_7, (SCU_GPIO_FAST | SCU_CONF_FUNCTION4)); // P3_7 SPIFI SPIFI_MOSI IO0 => GPIO5[10] -2000d350: 482c ldr r0, [pc, #176] ; (2000d404 ) -2000d352: 21f4 movs r1, #244 ; 0xf4 -2000d354: f000 ff38 bl 2000e1c8 - scu_pinmux(P3_8, (SCU_GPIO_FAST | SCU_CONF_FUNCTION4)); // P3_8 SPIFI SPIFI_CS => GPIO5[11] -2000d358: 482b ldr r0, [pc, #172] ; (2000d408 ) -2000d35a: 21f4 movs r1, #244 ; 0xf4 -2000d35c: f000 ff34 bl 2000e1c8 - - /* configure SSP pins */ - scu_pinmux(SCU_SSP0_MISO, (SCU_SSP_IO | SCU_CONF_FUNCTION5)); -2000d360: 4827 ldr r0, [pc, #156] ; (2000d400 ) -2000d362: 21f5 movs r1, #245 ; 0xf5 -2000d364: f000 ff30 bl 2000e1c8 - scu_pinmux(SCU_SSP0_MOSI, (SCU_SSP_IO | SCU_CONF_FUNCTION5)); -2000d368: 4826 ldr r0, [pc, #152] ; (2000d404 ) -2000d36a: 21f5 movs r1, #245 ; 0xf5 -2000d36c: f000 ff2c bl 2000e1c8 - scu_pinmux(SCU_SSP0_SCK, (SCU_SSP_IO | SCU_CONF_FUNCTION2)); -2000d370: 4820 ldr r0, [pc, #128] ; (2000d3f4 ) -2000d372: 21f2 movs r1, #242 ; 0xf2 -2000d374: f000 ff28 bl 2000e1c8 - - /* configure GPIO pins */ - scu_pinmux(SCU_FLASH_HOLD, SCU_GPIO_FAST); -2000d378: 481f ldr r0, [pc, #124] ; (2000d3f8 ) -2000d37a: 21f0 movs r1, #240 ; 0xf0 -2000d37c: f000 ff24 bl 2000e1c8 - scu_pinmux(SCU_FLASH_WP, SCU_GPIO_FAST); - scu_pinmux(SCU_SSP0_SSEL, (SCU_GPIO_FAST | SCU_CONF_FUNCTION4)); - - /* drive SSEL, HOLD, and WP pins high */ - gpio_set(PORT_FLASH, (PIN_FLASH_HOLD | PIN_FLASH_WP)); -2000d380: 4d22 ldr r5, [pc, #136] ; (2000d40c ) - scu_pinmux(SCU_SSP0_MOSI, (SCU_SSP_IO | SCU_CONF_FUNCTION5)); - scu_pinmux(SCU_SSP0_SCK, (SCU_SSP_IO | SCU_CONF_FUNCTION2)); - - /* configure GPIO pins */ - scu_pinmux(SCU_FLASH_HOLD, SCU_GPIO_FAST); - scu_pinmux(SCU_FLASH_WP, SCU_GPIO_FAST); -2000d382: 481e ldr r0, [pc, #120] ; (2000d3fc ) -2000d384: 21f0 movs r1, #240 ; 0xf0 - scu_pinmux(SCU_SSP0_SSEL, (SCU_GPIO_FAST | SCU_CONF_FUNCTION4)); - - /* drive SSEL, HOLD, and WP pins high */ - gpio_set(PORT_FLASH, (PIN_FLASH_HOLD | PIN_FLASH_WP)); -2000d386: 27c0 movs r7, #192 ; 0xc0 - scu_pinmux(SCU_SSP0_MOSI, (SCU_SSP_IO | SCU_CONF_FUNCTION5)); - scu_pinmux(SCU_SSP0_SCK, (SCU_SSP_IO | SCU_CONF_FUNCTION2)); - - /* configure GPIO pins */ - scu_pinmux(SCU_FLASH_HOLD, SCU_GPIO_FAST); - scu_pinmux(SCU_FLASH_WP, SCU_GPIO_FAST); -2000d388: f000 ff1e bl 2000e1c8 - scu_pinmux(SCU_SSP0_SSEL, (SCU_GPIO_FAST | SCU_CONF_FUNCTION4)); - - /* drive SSEL, HOLD, and WP pins high */ - gpio_set(PORT_FLASH, (PIN_FLASH_HOLD | PIN_FLASH_WP)); - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d38c: 4c20 ldr r4, [pc, #128] ; (2000d410 ) - scu_pinmux(SCU_SSP0_SCK, (SCU_SSP_IO | SCU_CONF_FUNCTION2)); - - /* configure GPIO pins */ - scu_pinmux(SCU_FLASH_HOLD, SCU_GPIO_FAST); - scu_pinmux(SCU_FLASH_WP, SCU_GPIO_FAST); - scu_pinmux(SCU_SSP0_SSEL, (SCU_GPIO_FAST | SCU_CONF_FUNCTION4)); -2000d38e: 481e ldr r0, [pc, #120] ; (2000d408 ) -2000d390: 21f4 movs r1, #244 ; 0xf4 - - /* drive SSEL, HOLD, and WP pins high */ - gpio_set(PORT_FLASH, (PIN_FLASH_HOLD | PIN_FLASH_WP)); -2000d392: 023f lsls r7, r7, #8 - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d394: 2680 movs r6, #128 ; 0x80 - scu_pinmux(SCU_SSP0_SCK, (SCU_SSP_IO | SCU_CONF_FUNCTION2)); - - /* configure GPIO pins */ - scu_pinmux(SCU_FLASH_HOLD, SCU_GPIO_FAST); - scu_pinmux(SCU_FLASH_WP, SCU_GPIO_FAST); - scu_pinmux(SCU_SSP0_SSEL, (SCU_GPIO_FAST | SCU_CONF_FUNCTION4)); -2000d396: f000 ff17 bl 2000e1c8 - - /* drive SSEL, HOLD, and WP pins high */ - gpio_set(PORT_FLASH, (PIN_FLASH_HOLD | PIN_FLASH_WP)); - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d39a: 0136 lsls r6, r6, #4 - scu_pinmux(SCU_FLASH_HOLD, SCU_GPIO_FAST); - scu_pinmux(SCU_FLASH_WP, SCU_GPIO_FAST); - scu_pinmux(SCU_SSP0_SSEL, (SCU_GPIO_FAST | SCU_CONF_FUNCTION4)); - - /* drive SSEL, HOLD, and WP pins high */ - gpio_set(PORT_FLASH, (PIN_FLASH_HOLD | PIN_FLASH_WP)); -2000d39c: 1c28 adds r0, r5, #0 -2000d39e: 1c39 adds r1, r7, #0 -2000d3a0: f7ff fb80 bl 2000caa4 - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d3a4: 1c31 adds r1, r6, #0 -2000d3a6: 1c20 adds r0, r4, #0 -2000d3a8: f7ff fb7c bl 2000caa4 - - /* Set GPIO pins as outputs. */ - GPIO1_DIR |= (PIN_FLASH_HOLD | PIN_FLASH_WP); -2000d3ac: 6829 ldr r1, [r5, #0] - GPIO5_DIR |= PIN_SSP0_SSEL; - - /* initialize SSP0 */ - ssp_init(SSP0_NUM, -2000d3ae: 2002 movs r0, #2 - /* drive SSEL, HOLD, and WP pins high */ - gpio_set(PORT_FLASH, (PIN_FLASH_HOLD | PIN_FLASH_WP)); - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); - - /* Set GPIO pins as outputs. */ - GPIO1_DIR |= (PIN_FLASH_HOLD | PIN_FLASH_WP); -2000d3b0: 430f orrs r7, r1 -2000d3b2: 602f str r7, [r5, #0] - GPIO5_DIR |= PIN_SSP0_SSEL; -2000d3b4: 6822 ldr r2, [r4, #0] - - /* initialize SSP0 */ - ssp_init(SSP0_NUM, -2000d3b6: 2500 movs r5, #0 - gpio_set(PORT_FLASH, (PIN_FLASH_HOLD | PIN_FLASH_WP)); - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); - - /* Set GPIO pins as outputs. */ - GPIO1_DIR |= (PIN_FLASH_HOLD | PIN_FLASH_WP); - GPIO5_DIR |= PIN_SSP0_SSEL; -2000d3b8: 4316 orrs r6, r2 -2000d3ba: 6026 str r6, [r4, #0] - - /* initialize SSP0 */ - ssp_init(SSP0_NUM, -2000d3bc: 1c2b adds r3, r5, #0 -2000d3be: 9000 str r0, [sp, #0] -2000d3c0: 9001 str r0, [sp, #4] -2000d3c2: 9502 str r5, [sp, #8] -2000d3c4: 9503 str r5, [sp, #12] -2000d3c6: 9504 str r5, [sp, #16] -2000d3c8: 1c28 adds r0, r5, #0 -2000d3ca: 2107 movs r1, #7 -2000d3cc: 1c2a adds r2, r5, #0 -2000d3ce: f001 f837 bl 2000e440 - clock_prescale_rate, - SSP_MODE_NORMAL, - SSP_MASTER, - SSP_SLAVE_OUT_ENABLE); - - device_id = 0; -2000d3d2: 4b10 ldr r3, [pc, #64] ; (2000d414 ) -2000d3d4: 701d strb r5, [r3, #0] -2000d3d6: 1c1f adds r7, r3, #0 - - while(1) - { - if(device_id == W25Q80BV_DEVICE_ID_RES) -2000d3d8: 783c ldrb r4, [r7, #0] -2000d3da: 2c13 cmp r4, #19 -2000d3dc: d005 beq.n 2000d3ea - break; - - if(device_id == S25FL032P_DEVICE_ID_RES) -2000d3de: 2c15 cmp r4, #21 -2000d3e0: d003 beq.n 2000d3ea - break; - - device_id = w25q80bv_get_device_id(); -2000d3e2: f7ff ff79 bl 2000d2d8 -2000d3e6: 7038 strb r0, [r7, #0] - } -2000d3e8: e7f6 b.n 2000d3d8 -} -2000d3ea: b007 add sp, #28 -2000d3ec: bdf0 pop {r4, r5, r6, r7, pc} -2000d3ee: 46c0 nop ; (mov r8, r8) -2000d3f0: 40053104 .word 0x40053104 -2000d3f4: 4008618c .word 0x4008618c -2000d3f8: 40086190 .word 0x40086190 -2000d3fc: 40086194 .word 0x40086194 -2000d400: 40086198 .word 0x40086198 -2000d404: 4008619c .word 0x4008619c -2000d408: 400861a0 .word 0x400861a0 -2000d40c: 400f6004 .word 0x400f6004 -2000d410: 400f6014 .word 0x400f6014 -2000d414: 2000f764 .word 0x2000f764 - -2000d418 : -{ - int i; - uint8_t value; - uint32_t addr; - - gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d418: 2180 movs r1, #128 ; 0x80 - - return value; -} - -void w25q80bv_get_unique_id(w25q80bv_unique_id_t* unique_id) -{ -2000d41a: b538 push {r3, r4, r5, lr} - int i; - uint8_t value; - uint32_t addr; - - gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d41c: 0109 lsls r1, r1, #4 - - return value; -} - -void w25q80bv_get_unique_id(w25q80bv_unique_id_t* unique_id) -{ -2000d41e: 1c05 adds r5, r0, #0 - int i; - uint8_t value; - uint32_t addr; - - gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d420: 4820 ldr r0, [pc, #128] ; (2000d4a4 ) -2000d422: f7ff fb44 bl 2000caae - - if(device_id == W25Q80BV_DEVICE_ID_RES) -2000d426: 4b20 ldr r3, [pc, #128] ; (2000d4a8 ) -2000d428: 7818 ldrb r0, [r3, #0] -2000d42a: 2813 cmp r0, #19 -2000d42c: d119 bne.n 2000d462 - { - ssp_transfer(SSP0_NUM, W25Q80BV_UNIQUE_ID); -2000d42e: 2000 movs r0, #0 -2000d430: 214b movs r1, #75 ; 0x4b -2000d432: f001 f865 bl 2000e500 -2000d436: 2404 movs r4, #4 - - /* Read 4 dummy bytes */ - for(i=0; i<4; i++) - value = ssp_transfer(SSP0_NUM, 0xFF); -2000d438: 2000 movs r0, #0 -2000d43a: 21ff movs r1, #255 ; 0xff -2000d43c: 3c01 subs r4, #1 -2000d43e: f001 f85f bl 2000e500 - if(device_id == W25Q80BV_DEVICE_ID_RES) - { - ssp_transfer(SSP0_NUM, W25Q80BV_UNIQUE_ID); - - /* Read 4 dummy bytes */ - for(i=0; i<4; i++) -2000d442: 2c00 cmp r4, #0 -2000d444: d1f8 bne.n 2000d438 - value = ssp_transfer(SSP0_NUM, 0xFF); - - /* Read Unique ID 64bits (8*8) */ - for(i=0; i<8; i++) - { - value = ssp_transfer(SSP0_NUM, 0xFF); -2000d446: 2000 movs r0, #0 -2000d448: 21ff movs r1, #255 ; 0xff -2000d44a: f001 f859 bl 2000e500 -2000d44e: 5528 strb r0, [r5, r4] - /* Read 4 dummy bytes */ - for(i=0; i<4; i++) - value = ssp_transfer(SSP0_NUM, 0xFF); - - /* Read Unique ID 64bits (8*8) */ - for(i=0; i<8; i++) -2000d450: 3401 adds r4, #1 -2000d452: 2c08 cmp r4, #8 -2000d454: d1f7 bne.n 2000d446 - { - value = ssp_transfer(SSP0_NUM, 0xFF); - unique_id->id_8b[i] = value; - } - } - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d456: 2280 movs r2, #128 ; 0x80 -2000d458: 4812 ldr r0, [pc, #72] ; (2000d4a4 ) -2000d45a: 0111 lsls r1, r2, #4 -2000d45c: f7ff fb22 bl 2000caa4 -} -2000d460: bd38 pop {r3, r4, r5, pc} - for(i=0; i<8; i++) - { - value = ssp_transfer(SSP0_NUM, 0xFF); - unique_id->id_8b[i] = value; - } - }else if(device_id == S25FL032P_DEVICE_ID_RES) -2000d462: 2815 cmp r0, #21 -2000d464: d1f7 bne.n 2000d456 - { - addr = S25FL032P_OTP_SN1_ADDR; - ssp_transfer(SSP0_NUM, S25FL032P_READ_OTP); -2000d466: 214b movs r1, #75 ; 0x4b -2000d468: 2000 movs r0, #0 -2000d46a: f001 f849 bl 2000e500 - ssp_transfer(SSP0_NUM, (addr & 0xFF0000) >> 16); -2000d46e: 2000 movs r0, #0 -2000d470: 1c01 adds r1, r0, #0 -2000d472: f001 f845 bl 2000e500 - ssp_transfer(SSP0_NUM, (addr & 0xFF00) >> 8); -2000d476: 2101 movs r1, #1 -2000d478: 2000 movs r0, #0 -2000d47a: f001 f841 bl 2000e500 - ssp_transfer(SSP0_NUM, addr & 0xFF); -2000d47e: 2102 movs r1, #2 -2000d480: 2000 movs r0, #0 -2000d482: f001 f83d bl 2000e500 - ssp_transfer(SSP0_NUM, 0xFF); /* Dummy byte */ -2000d486: 2000 movs r0, #0 -2000d488: 21ff movs r1, #255 ; 0xff -2000d48a: f001 f839 bl 2000e500 - - /* Read Unique ID 64bits (8*8) */ - for(i=0; i<8; i++) -2000d48e: 2400 movs r4, #0 - { - value = ssp_transfer(SSP0_NUM, 0xFF); -2000d490: 2000 movs r0, #0 -2000d492: 21ff movs r1, #255 ; 0xff -2000d494: f001 f834 bl 2000e500 -2000d498: 5528 strb r0, [r5, r4] - ssp_transfer(SSP0_NUM, (addr & 0xFF00) >> 8); - ssp_transfer(SSP0_NUM, addr & 0xFF); - ssp_transfer(SSP0_NUM, 0xFF); /* Dummy byte */ - - /* Read Unique ID 64bits (8*8) */ - for(i=0; i<8; i++) -2000d49a: 3401 adds r4, #1 -2000d49c: 2c08 cmp r4, #8 -2000d49e: d1f7 bne.n 2000d490 -2000d4a0: e7d9 b.n 2000d456 -2000d4a2: 46c0 nop ; (mov r8, r8) -2000d4a4: 400f6014 .word 0x400f6014 -2000d4a8: 2000f764 .word 0x2000f764 - -2000d4ac : - } - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -} - -void w25q80bv_wait_while_busy(void) -{ -2000d4ac: b508 push {r3, lr} - while (w25q80bv_get_status() & W25Q80BV_STATUS_BUSY); -2000d4ae: f7ff fef9 bl 2000d2a4 -2000d4b2: 07c3 lsls r3, r0, #31 -2000d4b4: d4fb bmi.n 2000d4ae -} -2000d4b6: bd08 pop {r3, pc} - -2000d4b8 : - -void w25q80bv_write_enable(void) -{ -2000d4b8: b538 push {r3, r4, r5, lr} - w25q80bv_wait_while_busy(); - gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d4ba: 4d09 ldr r5, [pc, #36] ; (2000d4e0 ) -2000d4bc: 2480 movs r4, #128 ; 0x80 -2000d4be: 0124 lsls r4, r4, #4 - while (w25q80bv_get_status() & W25Q80BV_STATUS_BUSY); -} - -void w25q80bv_write_enable(void) -{ - w25q80bv_wait_while_busy(); -2000d4c0: f7ff fff4 bl 2000d4ac - gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d4c4: 1c28 adds r0, r5, #0 -2000d4c6: 1c21 adds r1, r4, #0 -2000d4c8: f7ff faf1 bl 2000caae - ssp_transfer(SSP0_NUM, W25Q80BV_WRITE_ENABLE); -2000d4cc: 2106 movs r1, #6 -2000d4ce: 2000 movs r0, #0 -2000d4d0: f001 f816 bl 2000e500 - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d4d4: 1c28 adds r0, r5, #0 -2000d4d6: 1c21 adds r1, r4, #0 -2000d4d8: f7ff fae4 bl 2000caa4 -} -2000d4dc: bd38 pop {r3, r4, r5, pc} -2000d4de: 46c0 nop ; (mov r8, r8) -2000d4e0: 400f6014 .word 0x400f6014 - -2000d4e4 : - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -} - -/* 64KB sector erase */ -void w25q80bv_sector_erase(const uint32_t addr) -{ -2000d4e4: b538 push {r3, r4, r5, lr} - device_id = 0; -2000d4e6: 4d17 ldr r5, [pc, #92] ; (2000d544 ) -2000d4e8: 2300 movs r3, #0 - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -} - -/* 64KB sector erase */ -void w25q80bv_sector_erase(const uint32_t addr) -{ -2000d4ea: 1c04 adds r4, r0, #0 - device_id = 0; -2000d4ec: 702b strb r3, [r5, #0] - while(1) - { - if(device_id == W25Q80BV_DEVICE_ID_RES) -2000d4ee: 7828 ldrb r0, [r5, #0] -2000d4f0: 2813 cmp r0, #19 -2000d4f2: d005 beq.n 2000d500 - break; - - if(device_id == S25FL032P_DEVICE_ID_RES) -2000d4f4: 2815 cmp r0, #21 -2000d4f6: d003 beq.n 2000d500 - break; - - device_id = w25q80bv_get_device_id(); -2000d4f8: f7ff feee bl 2000d2d8 -2000d4fc: 7028 strb r0, [r5, #0] - } -2000d4fe: e7f6 b.n 2000d4ee - - w25q80bv_write_enable(); -2000d500: f7ff ffda bl 2000d4b8 - w25q80bv_wait_while_busy(); -2000d504: f7ff ffd2 bl 2000d4ac - gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d508: 2180 movs r1, #128 ; 0x80 -2000d50a: 480f ldr r0, [pc, #60] ; (2000d548 ) -2000d50c: 0109 lsls r1, r1, #4 -2000d50e: f7ff face bl 2000caae - ssp_transfer(SSP0_NUM, W25Q80BV_SECTOR_ERASE); -2000d512: 21d8 movs r1, #216 ; 0xd8 -2000d514: 2000 movs r0, #0 -2000d516: f000 fff3 bl 2000e500 - ssp_transfer(SSP0_NUM, (addr & 0xFF0000) >> 16); -2000d51a: 0222 lsls r2, r4, #8 -2000d51c: 0e11 lsrs r1, r2, #24 - ssp_transfer(SSP0_NUM, (addr & 0xFF00) >> 8); -2000d51e: 0425 lsls r5, r4, #16 - - w25q80bv_write_enable(); - w25q80bv_wait_while_busy(); - gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); - ssp_transfer(SSP0_NUM, W25Q80BV_SECTOR_ERASE); - ssp_transfer(SSP0_NUM, (addr & 0xFF0000) >> 16); -2000d520: 2000 movs r0, #0 -2000d522: f000 ffed bl 2000e500 - ssp_transfer(SSP0_NUM, (addr & 0xFF00) >> 8); -2000d526: 0e29 lsrs r1, r5, #24 -2000d528: 2000 movs r0, #0 -2000d52a: f000 ffe9 bl 2000e500 - ssp_transfer(SSP0_NUM, addr & 0xFF); -2000d52e: b2e1 uxtb r1, r4 -2000d530: 2000 movs r0, #0 - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d532: 2480 movs r4, #128 ; 0x80 - w25q80bv_wait_while_busy(); - gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); - ssp_transfer(SSP0_NUM, W25Q80BV_SECTOR_ERASE); - ssp_transfer(SSP0_NUM, (addr & 0xFF0000) >> 16); - ssp_transfer(SSP0_NUM, (addr & 0xFF00) >> 8); - ssp_transfer(SSP0_NUM, addr & 0xFF); -2000d534: f000 ffe4 bl 2000e500 - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d538: 4803 ldr r0, [pc, #12] ; (2000d548 ) -2000d53a: 0121 lsls r1, r4, #4 -2000d53c: f7ff fab2 bl 2000caa4 -} -2000d540: bd38 pop {r3, r4, r5, pc} -2000d542: 46c0 nop ; (mov r8, r8) -2000d544: 2000f764 .word 0x2000f764 -2000d548: 400f6014 .word 0x400f6014 - -2000d54c : - -/* write up to 256 byte page or partial page */ -void w25q80bv_page_program(const uint32_t addr, const uint16_t len, const uint8_t* data) -{ -2000d54c: b5f8 push {r3, r4, r5, r6, r7, lr} - int i; - - /* do nothing if asked to write beyond a page boundary */ - if (((addr & 0xFF) + len) > W25Q80BV_PAGE_LEN) -2000d54e: b2c7 uxtb r7, r0 - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -} - -/* write up to 256 byte page or partial page */ -void w25q80bv_page_program(const uint32_t addr, const uint16_t len, const uint8_t* data) -{ -2000d550: 1c16 adds r6, r2, #0 - int i; - - /* do nothing if asked to write beyond a page boundary */ - if (((addr & 0xFF) + len) > W25Q80BV_PAGE_LEN) -2000d552: 2380 movs r3, #128 ; 0x80 -2000d554: 19ca adds r2, r1, r7 - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -} - -/* write up to 256 byte page or partial page */ -void w25q80bv_page_program(const uint32_t addr, const uint16_t len, const uint8_t* data) -{ -2000d556: 1c04 adds r4, r0, #0 -2000d558: 1c0d adds r5, r1, #0 - int i; - - /* do nothing if asked to write beyond a page boundary */ - if (((addr & 0xFF) + len) > W25Q80BV_PAGE_LEN) -2000d55a: 0058 lsls r0, r3, #1 -2000d55c: 4282 cmp r2, r0 -2000d55e: d82e bhi.n 2000d5be - return; - - /* do nothing if we would overflow the flash */ - if (addr > (W25Q80BV_NUM_BYTES - len)) -2000d560: 2180 movs r1, #128 ; 0x80 -2000d562: 034a lsls r2, r1, #13 -2000d564: 1b53 subs r3, r2, r5 -2000d566: 429c cmp r4, r3 -2000d568: d829 bhi.n 2000d5be - return; - - w25q80bv_write_enable(); -2000d56a: f7ff ffa5 bl 2000d4b8 - w25q80bv_wait_while_busy(); -2000d56e: f7ff ff9d bl 2000d4ac - - gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d572: 2180 movs r1, #128 ; 0x80 -2000d574: 4812 ldr r0, [pc, #72] ; (2000d5c0 ) -2000d576: 0109 lsls r1, r1, #4 -2000d578: f7ff fa99 bl 2000caae - ssp_transfer(SSP0_NUM, W25Q80BV_PAGE_PROGRAM); -2000d57c: 2102 movs r1, #2 -2000d57e: 2000 movs r0, #0 -2000d580: f000 ffbe bl 2000e500 - ssp_transfer(SSP0_NUM, (addr & 0xFF0000) >> 16); -2000d584: 0220 lsls r0, r4, #8 -2000d586: 0e01 lsrs r1, r0, #24 - ssp_transfer(SSP0_NUM, (addr & 0xFF00) >> 8); -2000d588: 0424 lsls r4, r4, #16 - w25q80bv_write_enable(); - w25q80bv_wait_while_busy(); - - gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); - ssp_transfer(SSP0_NUM, W25Q80BV_PAGE_PROGRAM); - ssp_transfer(SSP0_NUM, (addr & 0xFF0000) >> 16); -2000d58a: 2000 movs r0, #0 -2000d58c: f000 ffb8 bl 2000e500 - ssp_transfer(SSP0_NUM, (addr & 0xFF00) >> 8); -2000d590: 0e21 lsrs r1, r4, #24 -2000d592: 2000 movs r0, #0 -2000d594: f000 ffb4 bl 2000e500 - ssp_transfer(SSP0_NUM, addr & 0xFF); -2000d598: b2b9 uxth r1, r7 -2000d59a: 2000 movs r0, #0 -2000d59c: f000 ffb0 bl 2000e500 - for (i = 0; i < len; i++) -2000d5a0: 1c34 adds r4, r6, #0 - ssp_transfer(SSP0_NUM, addr & 0xFF); - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -} - -/* write up to 256 byte page or partial page */ -void w25q80bv_page_program(const uint32_t addr, const uint16_t len, const uint8_t* data) -2000d5a2: 1ba7 subs r7, r4, r6 - gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); - ssp_transfer(SSP0_NUM, W25Q80BV_PAGE_PROGRAM); - ssp_transfer(SSP0_NUM, (addr & 0xFF0000) >> 16); - ssp_transfer(SSP0_NUM, (addr & 0xFF00) >> 8); - ssp_transfer(SSP0_NUM, addr & 0xFF); - for (i = 0; i < len; i++) -2000d5a4: 42af cmp r7, r5 -2000d5a6: da05 bge.n 2000d5b4 - ssp_transfer(SSP0_NUM, data[i]); -2000d5a8: 7821 ldrb r1, [r4, #0] -2000d5aa: 2000 movs r0, #0 -2000d5ac: f000 ffa8 bl 2000e500 -2000d5b0: 3401 adds r4, #1 -2000d5b2: e7f6 b.n 2000d5a2 - - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d5b4: 2580 movs r5, #128 ; 0x80 -2000d5b6: 4802 ldr r0, [pc, #8] ; (2000d5c0 ) -2000d5b8: 0129 lsls r1, r5, #4 -2000d5ba: f7ff fa73 bl 2000caa4 -} -2000d5be: bdf8 pop {r3, r4, r5, r6, r7, pc} -2000d5c0: 400f6014 .word 0x400f6014 - -2000d5c4 : - -/* write an arbitrary number of bytes */ -void w25q80bv_program(uint32_t addr, uint32_t len, const uint8_t* data) -{ -2000d5c4: b5f8 push {r3, r4, r5, r6, r7, lr} -2000d5c6: 1c04 adds r4, r0, #0 -2000d5c8: 1c0d adds r5, r1, #0 -2000d5ca: 1c17 adds r7, r2, #0 - break; - - if(device_id == S25FL032P_DEVICE_ID_RES) - break; - - device_id = w25q80bv_get_device_id(); -2000d5cc: f7ff fe84 bl 2000d2d8 - uint8_t device_id; - - device_id = 0; - while(1) - { - if(device_id == W25Q80BV_DEVICE_ID_RES) -2000d5d0: 2813 cmp r0, #19 -2000d5d2: d001 beq.n 2000d5d8 - break; - - if(device_id == S25FL032P_DEVICE_ID_RES) -2000d5d4: 2815 cmp r0, #21 -2000d5d6: d1f9 bne.n 2000d5cc - - device_id = w25q80bv_get_device_id(); - } - - /* do nothing if we would overflow the flash */ - if ((len > W25Q80BV_NUM_BYTES) || (addr > W25Q80BV_NUM_BYTES) -2000d5d8: 2380 movs r3, #128 ; 0x80 -2000d5da: 0358 lsls r0, r3, #13 -2000d5dc: 4285 cmp r5, r0 -2000d5de: d82f bhi.n 2000d640 -2000d5e0: 4284 cmp r4, r0 -2000d5e2: d82d bhi.n 2000d640 - || ((addr + len) > W25Q80BV_NUM_BYTES)) -2000d5e4: 192a adds r2, r5, r4 -2000d5e6: 4282 cmp r2, r0 -2000d5e8: d82a bhi.n 2000d640 - return; - - /* handle start not at page boundary */ - first_block_len = W25Q80BV_PAGE_LEN - (addr % W25Q80BV_PAGE_LEN); -2000d5ea: 2680 movs r6, #128 ; 0x80 -2000d5ec: 0073 lsls r3, r6, #1 -2000d5ee: b2e1 uxtb r1, r4 -2000d5f0: 1a58 subs r0, r3, r1 -2000d5f2: b286 uxth r6, r0 - if (len < first_block_len) -2000d5f4: 42b5 cmp r5, r6 -2000d5f6: d202 bcs.n 2000d5fe - first_block_len = len; -2000d5f8: b2ae uxth r6, r5 - if (first_block_len) { -2000d5fa: 2e00 cmp r6, #0 -2000d5fc: d007 beq.n 2000d60e - w25q80bv_page_program(addr, first_block_len, data); -2000d5fe: 1c20 adds r0, r4, #0 -2000d600: 1c3a adds r2, r7, #0 -2000d602: 1c31 adds r1, r6, #0 -2000d604: f7ff ffa2 bl 2000d54c - addr += first_block_len; -2000d608: 19a4 adds r4, r4, r6 - data += first_block_len; -2000d60a: 19bf adds r7, r7, r6 - len -= first_block_len; -2000d60c: 1bad subs r5, r5, r6 - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -} - -/* write an arbitrary number of bytes */ -void w25q80bv_program(uint32_t addr, uint32_t len, const uint8_t* data) -{ -2000d60e: 1c26 adds r6, r4, #0 - - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -} - -/* write an arbitrary number of bytes */ -void w25q80bv_program(uint32_t addr, uint32_t len, const uint8_t* data) -2000d610: 1b3a subs r2, r7, r4 -2000d612: 1961 adds r1, r4, r5 -2000d614: 1992 adds r2, r2, r6 - data += first_block_len; - len -= first_block_len; - } - - /* one page at a time on boundaries */ - while (len >= W25Q80BV_PAGE_LEN) { -2000d616: 1b8b subs r3, r1, r6 -2000d618: 2bff cmp r3, #255 ; 0xff -2000d61a: d907 bls.n 2000d62c - w25q80bv_page_program(addr, W25Q80BV_PAGE_LEN, data); -2000d61c: 2180 movs r1, #128 ; 0x80 -2000d61e: 1c30 adds r0, r6, #0 -2000d620: 0049 lsls r1, r1, #1 - addr += W25Q80BV_PAGE_LEN; -2000d622: 3601 adds r6, #1 - len -= first_block_len; - } - - /* one page at a time on boundaries */ - while (len >= W25Q80BV_PAGE_LEN) { - w25q80bv_page_program(addr, W25Q80BV_PAGE_LEN, data); -2000d624: f7ff ff92 bl 2000d54c - addr += W25Q80BV_PAGE_LEN; -2000d628: 36ff adds r6, #255 ; 0xff -2000d62a: e7f1 b.n 2000d610 - - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -} - -/* write an arbitrary number of bytes */ -void w25q80bv_program(uint32_t addr, uint32_t len, const uint8_t* data) -2000d62c: 0a28 lsrs r0, r5, #8 -2000d62e: 0206 lsls r6, r0, #8 -2000d630: b2ed uxtb r5, r5 -2000d632: 1930 adds r0, r6, r4 -2000d634: 19ba adds r2, r7, r6 - data += W25Q80BV_PAGE_LEN; - len -= W25Q80BV_PAGE_LEN; - } - - /* handle end not at page boundary */ - if (len) { -2000d636: 2d00 cmp r5, #0 -2000d638: d002 beq.n 2000d640 - w25q80bv_page_program(addr, len, data); -2000d63a: b2a9 uxth r1, r5 -2000d63c: f7ff ff86 bl 2000d54c - } -} -2000d640: bdf8 pop {r3, r4, r5, r6, r7, pc} - ... - -2000d644 : - -/* read data */ -void w25q80bv_read(uint32_t addr, uint32_t len, uint8_t* const data) -{ -2000d644: b5f8 push {r3, r4, r5, r6, r7, lr} - uint32_t i; - - /* do nothing if we would overflow the flash */ - if ((len > W25Q80BV_NUM_BYTES) || (addr > W25Q80BV_NUM_BYTES) -2000d646: 2380 movs r3, #128 ; 0x80 - } -} - -/* read data */ -void w25q80bv_read(uint32_t addr, uint32_t len, uint8_t* const data) -{ -2000d648: 1c05 adds r5, r0, #0 -2000d64a: 1c0e adds r6, r1, #0 -2000d64c: 1c14 adds r4, r2, #0 - uint32_t i; - - /* do nothing if we would overflow the flash */ - if ((len > W25Q80BV_NUM_BYTES) || (addr > W25Q80BV_NUM_BYTES) -2000d64e: 0358 lsls r0, r3, #13 -2000d650: 4281 cmp r1, r0 -2000d652: d831 bhi.n 2000d6b8 -2000d654: 4285 cmp r5, r0 -2000d656: d82f bhi.n 2000d6b8 - || ((addr + len) > W25Q80BV_NUM_BYTES)) -2000d658: 194a adds r2, r1, r5 -2000d65a: 4282 cmp r2, r0 -2000d65c: d82c bhi.n 2000d6b8 - return; - - w25q80bv_wait_while_busy(); -2000d65e: f7ff ff25 bl 2000d4ac - - gpio_clear(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d662: 2180 movs r1, #128 ; 0x80 -2000d664: 4815 ldr r0, [pc, #84] ; (2000d6bc ) -2000d666: 0109 lsls r1, r1, #4 -2000d668: f7ff fa21 bl 2000caae - ssp_transfer(SSP0_NUM, W25Q80BV_FAST_READ); -2000d66c: 210b movs r1, #11 -2000d66e: 2000 movs r0, #0 -2000d670: f000 ff46 bl 2000e500 - ssp_transfer(SSP0_NUM, (addr >> 16) & 0xFF); -2000d674: 0c29 lsrs r1, r5, #16 -2000d676: 2000 movs r0, #0 -2000d678: f000 ff42 bl 2000e500 - ssp_transfer(SSP0_NUM, (addr >> 8) & 0xFF); -2000d67c: 27ff movs r7, #255 ; 0xff -2000d67e: 0a29 lsrs r1, r5, #8 -2000d680: 4039 ands r1, r7 -2000d682: 2000 movs r0, #0 -2000d684: f000 ff3c bl 2000e500 - ssp_transfer(SSP0_NUM, (addr >> 0) & 0xFF); -2000d688: 1c29 adds r1, r5, #0 -2000d68a: 4039 ands r1, r7 -2000d68c: 2000 movs r0, #0 -2000d68e: f000 ff37 bl 2000e500 - ssp_transfer(SSP0_NUM, 0xFF); // Dummy byte -2000d692: 2000 movs r0, #0 -2000d694: 1c39 adds r1, r7, #0 -2000d696: f000 ff33 bl 2000e500 - w25q80bv_page_program(addr, len, data); - } -} - -/* read data */ -void w25q80bv_read(uint32_t addr, uint32_t len, uint8_t* const data) -2000d69a: 19a5 adds r5, r4, r6 - ssp_transfer(SSP0_NUM, W25Q80BV_FAST_READ); - ssp_transfer(SSP0_NUM, (addr >> 16) & 0xFF); - ssp_transfer(SSP0_NUM, (addr >> 8) & 0xFF); - ssp_transfer(SSP0_NUM, (addr >> 0) & 0xFF); - ssp_transfer(SSP0_NUM, 0xFF); // Dummy byte - for (i = 0; i < len; i++) -2000d69c: 42ac cmp r4, r5 -2000d69e: d006 beq.n 2000d6ae - data[i] = ssp_transfer(SSP0_NUM, 0xFF); -2000d6a0: 2000 movs r0, #0 -2000d6a2: 21ff movs r1, #255 ; 0xff -2000d6a4: f000 ff2c bl 2000e500 -2000d6a8: 7020 strb r0, [r4, #0] -2000d6aa: 3401 adds r4, #1 -2000d6ac: e7f6 b.n 2000d69c - gpio_set(PORT_SSP0_SSEL, PIN_SSP0_SSEL); -2000d6ae: 2480 movs r4, #128 ; 0x80 -2000d6b0: 4802 ldr r0, [pc, #8] ; (2000d6bc ) -2000d6b2: 0121 lsls r1, r4, #4 -2000d6b4: f7ff f9f6 bl 2000caa4 -} -2000d6b8: bdf8 pop {r3, r4, r5, r6, r7, pc} -2000d6ba: 46c0 nop ; (mov r8, r8) -2000d6bc: 400f6014 .word 0x400f6014 - -2000d6c0 : -'0' on flashless parts. */ - -bool iap_is_implemented(void) -{ - bool res; - if( *((uint32_t*)ROM_IAP_ADDR) != ROM_IAP_UNDEF_ADDR ) -2000d6c0: 4b03 ldr r3, [pc, #12] ; (2000d6d0 ) -2000d6c2: 4904 ldr r1, [pc, #16] ; (2000d6d4 ) -2000d6c4: 6818 ldr r0, [r3, #0] -2000d6c6: 1840 adds r0, r0, r1 - res = true; - }else - { - res = false; - } - return res; -2000d6c8: 1e43 subs r3, r0, #1 -2000d6ca: 4198 sbcs r0, r3 -} -2000d6cc: 4770 bx lr -2000d6ce: 46c0 nop ; (mov r8, r8) -2000d6d0: 10400100 .word 0x10400100 -2000d6d4: edcba988 .word 0xedcba988 - -2000d6d8 : - -isp_iap_ret_code_t iap_cmd_call(iap_cmd_res_t* iap_cmd_res) -{ -2000d6d8: b538 push {r3, r4, r5, lr} -2000d6da: 1c04 adds r4, r0, #0 - uint32_t* p_u32_data; - - if( iap_is_implemented() ) -2000d6dc: f7ff fff0 bl 2000d6c0 -2000d6e0: 1e05 subs r5, r0, #0 -2000d6e2: d006 beq.n 2000d6f2 - { - pROM_API->IAP( (uint32_t*)&iap_cmd_res->cmd_param, (uint32_t*)&iap_cmd_res->status_res); -2000d6e4: 4d10 ldr r5, [pc, #64] ; (2000d728 ) -2000d6e6: 1c21 adds r1, r4, #0 -2000d6e8: 3118 adds r1, #24 -2000d6ea: 682a ldr r2, [r5, #0] -2000d6ec: 1c20 adds r0, r4, #0 -2000d6ee: 4790 blx r2 -2000d6f0: e018 b.n 2000d724 - { - /* - Alternative way to retrieve Part Id on MCU with no IAP - Read Serial No => Read Unique ID in SPIFI (only compatible with W25Q80BV) - */ - w25q80bv_setup(); -2000d6f2: f7ff fe17 bl 2000d324 - - switch(iap_cmd_res->cmd_param.command_code) -2000d6f6: 7823 ldrb r3, [r4, #0] -2000d6f8: 2b36 cmp r3, #54 ; 0x36 -2000d6fa: d008 beq.n 2000d70e -2000d6fc: 2b3a cmp r3, #58 ; 0x3a -2000d6fe: d10e bne.n 2000d71e - - case IAP_CMD_READ_SERIAL_NO: - /* Only 64bits used */ - iap_cmd_res->status_res.iap_result[0] = 0; - iap_cmd_res->status_res.iap_result[1] = 0; - w25q80bv_get_unique_id( (w25q80bv_unique_id_t*)&iap_cmd_res->status_res.iap_result[2] ); -2000d700: 1c20 adds r0, r4, #0 - iap_cmd_res->status_res.status_ret = CMD_SUCCESS; - break; - - case IAP_CMD_READ_SERIAL_NO: - /* Only 64bits used */ - iap_cmd_res->status_res.iap_result[0] = 0; -2000d702: 61e5 str r5, [r4, #28] - iap_cmd_res->status_res.iap_result[1] = 0; -2000d704: 6225 str r5, [r4, #32] - w25q80bv_get_unique_id( (w25q80bv_unique_id_t*)&iap_cmd_res->status_res.iap_result[2] ); -2000d706: 3024 adds r0, #36 ; 0x24 -2000d708: f7ff fe86 bl 2000d418 -2000d70c: e005 b.n 2000d71a - - switch(iap_cmd_res->cmd_param.command_code) - { - case IAP_CMD_READ_PART_ID_NO: - p_u32_data = (uint32_t*)CHIP_PART_ID; - iap_cmd_res->status_res.iap_result[0] = p_u32_data[0]; -2000d70e: 4a07 ldr r2, [pc, #28] ; (2000d72c ) - p_u32_data = (uint32_t*)ROM_OTP_PART_ID_ADDR; - iap_cmd_res->status_res.iap_result[1] = p_u32_data[0]; -2000d710: 4807 ldr r0, [pc, #28] ; (2000d730 ) - - switch(iap_cmd_res->cmd_param.command_code) - { - case IAP_CMD_READ_PART_ID_NO: - p_u32_data = (uint32_t*)CHIP_PART_ID; - iap_cmd_res->status_res.iap_result[0] = p_u32_data[0]; -2000d712: 6813 ldr r3, [r2, #0] -2000d714: 61e3 str r3, [r4, #28] - p_u32_data = (uint32_t*)ROM_OTP_PART_ID_ADDR; - iap_cmd_res->status_res.iap_result[1] = p_u32_data[0]; -2000d716: 6801 ldr r1, [r0, #0] -2000d718: 6221 str r1, [r4, #32] - case IAP_CMD_READ_SERIAL_NO: - /* Only 64bits used */ - iap_cmd_res->status_res.iap_result[0] = 0; - iap_cmd_res->status_res.iap_result[1] = 0; - w25q80bv_get_unique_id( (w25q80bv_unique_id_t*)&iap_cmd_res->status_res.iap_result[2] ); - iap_cmd_res->status_res.status_ret = CMD_SUCCESS; -2000d71a: 8325 strh r5, [r4, #24] - break; -2000d71c: e002 b.n 2000d724 - - default: - iap_cmd_res->status_res.status_ret = ERROR_IAP_NOT_IMPLEMENTED; -2000d71e: 2080 movs r0, #128 ; 0x80 -2000d720: 0041 lsls r1, r0, #1 -2000d722: 8321 strh r1, [r4, #24] - break; - } - } - return iap_cmd_res->status_res.status_ret; -2000d724: 8b20 ldrh r0, [r4, #24] -} -2000d726: bd38 pop {r3, r4, r5, pc} -2000d728: 10400100 .word 0x10400100 -2000d72c: 40043200 .word 0x40043200 -2000d730: 40045000 .word 0x40045000 - -2000d734 : - CREG_CREG0 &= ~CREG_CREG0_USB0PHY; -} - -static void usb_clear_pending_interrupts(const uint32_t mask) -{ - USB0_ENDPTNAK = mask; -2000d734: 4b07 ldr r3, [pc, #28] ; (2000d754 ) - USB0_ENDPTNAKEN = mask; -2000d736: 4908 ldr r1, [pc, #32] ; (2000d758 ) - USB0_USBSTS_D = mask; -2000d738: 4a08 ldr r2, [pc, #32] ; (2000d75c ) - CREG_CREG0 &= ~CREG_CREG0_USB0PHY; -} - -static void usb_clear_pending_interrupts(const uint32_t mask) -{ - USB0_ENDPTNAK = mask; -2000d73a: 6018 str r0, [r3, #0] - USB0_ENDPTNAKEN = mask; - USB0_USBSTS_D = mask; - USB0_ENDPTSETUPSTAT = USB0_ENDPTSETUPSTAT & mask; -2000d73c: 4b08 ldr r3, [pc, #32] ; (2000d760 ) -} - -static void usb_clear_pending_interrupts(const uint32_t mask) -{ - USB0_ENDPTNAK = mask; - USB0_ENDPTNAKEN = mask; -2000d73e: 6008 str r0, [r1, #0] - USB0_USBSTS_D = mask; -2000d740: 6010 str r0, [r2, #0] - USB0_ENDPTSETUPSTAT = USB0_ENDPTSETUPSTAT & mask; -2000d742: 6819 ldr r1, [r3, #0] -2000d744: 4001 ands r1, r0 -2000d746: 6019 str r1, [r3, #0] - USB0_ENDPTCOMPLETE = USB0_ENDPTCOMPLETE & mask; -2000d748: 4b06 ldr r3, [pc, #24] ; (2000d764 ) -2000d74a: 681a ldr r2, [r3, #0] -2000d74c: 4010 ands r0, r2 -2000d74e: 6018 str r0, [r3, #0] -} -2000d750: 4770 bx lr -2000d752: 46c0 nop ; (mov r8, r8) -2000d754: 40006178 .word 0x40006178 -2000d758: 4000617c .word 0x4000617c -2000d75c: 40006144 .word 0x40006144 -2000d760: 400061ac .word 0x400061ac -2000d764: 400061bc .word 0x400061bc - -2000d768 : - -static void usb_wait_for_endpoint_priming_to_finish(const uint32_t mask) -{ - // Wait until controller has parsed new transfer descriptors and prepared - // receive buffers. - while( USB0_ENDPTPRIME & mask ); -2000d768: 4b04 ldr r3, [pc, #16] ; (2000d77c ) -2000d76a: 6819 ldr r1, [r3, #0] -2000d76c: 4201 tst r1, r0 -2000d76e: d1fb bne.n 2000d768 - -static void usb_flush_endpoints(const uint32_t mask) -{ - // Clear any primed buffers. If a packet is in progress, that transfer - // will continue until completion. - USB0_ENDPTFLUSH = mask; -2000d770: 4b03 ldr r3, [pc, #12] ; (2000d780 ) -2000d772: 6018 str r0, [r3, #0] - -static void usb_wait_for_endpoint_flushing_to_finish(const uint32_t mask) -{ - // Wait until controller has flushed all endpoints / cleared any primed - // buffers. - while( USB0_ENDPTFLUSH & mask ); -2000d774: 681a ldr r2, [r3, #0] -2000d776: 4202 tst r2, r0 -2000d778: d1fc bne.n 2000d774 -static void usb_flush_primed_endpoints(const uint32_t mask) -{ - usb_wait_for_endpoint_priming_to_finish(mask); - usb_flush_endpoints(mask); - usb_wait_for_endpoint_flushing_to_finish(mask); -} -2000d77a: 4770 bx lr -2000d77c: 400061b0 .word 0x400061b0 -2000d780: 400061b4 .word 0x400061b4 - -2000d784 : -} - -static void usb_disable_all_endpoints(void) -{ - // Endpoint 0 is always enabled. TODO: So why set ENDPTCTRL0? - USB0_ENDPTCTRL0 &= ~(USB0_ENDPTCTRL0_RXE | USB0_ENDPTCTRL0_TXE); -2000d784: 4a0c ldr r2, [pc, #48] ; (2000d7b8 ) -2000d786: 4b0d ldr r3, [pc, #52] ; (2000d7bc ) -2000d788: 6811 ldr r1, [r2, #0] - USB0_ENDPTCTRL1 &= ~(USB0_ENDPTCTRL1_RXE | USB0_ENDPTCTRL1_TXE); -2000d78a: 480d ldr r0, [pc, #52] ; (2000d7c0 ) -} - -static void usb_disable_all_endpoints(void) -{ - // Endpoint 0 is always enabled. TODO: So why set ENDPTCTRL0? - USB0_ENDPTCTRL0 &= ~(USB0_ENDPTCTRL0_RXE | USB0_ENDPTCTRL0_TXE); -2000d78c: 4019 ands r1, r3 -2000d78e: 6011 str r1, [r2, #0] - USB0_ENDPTCTRL1 &= ~(USB0_ENDPTCTRL1_RXE | USB0_ENDPTCTRL1_TXE); -2000d790: 6802 ldr r2, [r0, #0] -2000d792: 401a ands r2, r3 -2000d794: 6002 str r2, [r0, #0] - USB0_ENDPTCTRL2 &= ~(USB0_ENDPTCTRL2_RXE | USB0_ENDPTCTRL2_TXE); -2000d796: 480b ldr r0, [pc, #44] ; (2000d7c4 ) - USB0_ENDPTCTRL3 &= ~(USB0_ENDPTCTRL3_RXE | USB0_ENDPTCTRL3_TXE); -2000d798: 4a0b ldr r2, [pc, #44] ; (2000d7c8 ) -static void usb_disable_all_endpoints(void) -{ - // Endpoint 0 is always enabled. TODO: So why set ENDPTCTRL0? - USB0_ENDPTCTRL0 &= ~(USB0_ENDPTCTRL0_RXE | USB0_ENDPTCTRL0_TXE); - USB0_ENDPTCTRL1 &= ~(USB0_ENDPTCTRL1_RXE | USB0_ENDPTCTRL1_TXE); - USB0_ENDPTCTRL2 &= ~(USB0_ENDPTCTRL2_RXE | USB0_ENDPTCTRL2_TXE); -2000d79a: 6801 ldr r1, [r0, #0] -2000d79c: 4019 ands r1, r3 -2000d79e: 6001 str r1, [r0, #0] - USB0_ENDPTCTRL3 &= ~(USB0_ENDPTCTRL3_RXE | USB0_ENDPTCTRL3_TXE); -2000d7a0: 6810 ldr r0, [r2, #0] -2000d7a2: 4018 ands r0, r3 -2000d7a4: 6010 str r0, [r2, #0] - USB0_ENDPTCTRL4 &= ~(USB0_ENDPTCTRL4_RXE | USB0_ENDPTCTRL4_TXE); -2000d7a6: 4a09 ldr r2, [pc, #36] ; (2000d7cc ) - USB0_ENDPTCTRL5 &= ~(USB0_ENDPTCTRL5_RXE | USB0_ENDPTCTRL5_TXE); -2000d7a8: 4809 ldr r0, [pc, #36] ; (2000d7d0 ) - // Endpoint 0 is always enabled. TODO: So why set ENDPTCTRL0? - USB0_ENDPTCTRL0 &= ~(USB0_ENDPTCTRL0_RXE | USB0_ENDPTCTRL0_TXE); - USB0_ENDPTCTRL1 &= ~(USB0_ENDPTCTRL1_RXE | USB0_ENDPTCTRL1_TXE); - USB0_ENDPTCTRL2 &= ~(USB0_ENDPTCTRL2_RXE | USB0_ENDPTCTRL2_TXE); - USB0_ENDPTCTRL3 &= ~(USB0_ENDPTCTRL3_RXE | USB0_ENDPTCTRL3_TXE); - USB0_ENDPTCTRL4 &= ~(USB0_ENDPTCTRL4_RXE | USB0_ENDPTCTRL4_TXE); -2000d7aa: 6811 ldr r1, [r2, #0] -2000d7ac: 4019 ands r1, r3 -2000d7ae: 6011 str r1, [r2, #0] - USB0_ENDPTCTRL5 &= ~(USB0_ENDPTCTRL5_RXE | USB0_ENDPTCTRL5_TXE); -2000d7b0: 6802 ldr r2, [r0, #0] -2000d7b2: 4013 ands r3, r2 -2000d7b4: 6003 str r3, [r0, #0] -} -2000d7b6: 4770 bx lr -2000d7b8: 400061c0 .word 0x400061c0 -2000d7bc: ff7fff7f .word 0xff7fff7f -2000d7c0: 400061c4 .word 0x400061c4 -2000d7c4: 400061c8 .word 0x400061c8 -2000d7c8: 400061cc .word 0x400061cc -2000d7cc: 400061d0 .word 0x400061d0 -2000d7d0: 400061d4 .word 0x400061d4 - -2000d7d4 : - -#define USB_QH_INDEX(endpoint_address) (((endpoint_address & 0xF) * 2) + ((endpoint_address >> 7) & 1)) - -usb_queue_head_t* usb_queue_head(const uint_fast8_t endpoint_address) -{ - return &usb_qh[USB_QH_INDEX(endpoint_address)]; -2000d7d4: 220f movs r2, #15 -2000d7d6: 0603 lsls r3, r0, #24 -2000d7d8: 4010 ands r0, r2 -2000d7da: 0fd9 lsrs r1, r3, #31 -2000d7dc: 0040 lsls r0, r0, #1 -2000d7de: 180b adds r3, r1, r0 -2000d7e0: 4a01 ldr r2, [pc, #4] ; (2000d7e8 ) -2000d7e2: 0199 lsls r1, r3, #6 -2000d7e4: 1888 adds r0, r1, r2 -} -2000d7e6: 4770 bx lr -2000d7e8: 2000f800 .word 0x2000f800 - -2000d7ec : - return (endpoint_address & 0xF); -} - -void usb_peripheral_reset(void) -{ - RESET_CTRL0 = RESET_CTRL0_USB0_RST; -2000d7ec: 4a05 ldr r2, [pc, #20] ; (2000d804 ) -2000d7ee: 2380 movs r3, #128 ; 0x80 -2000d7f0: 0298 lsls r0, r3, #10 - RESET_CTRL0 = 0; -2000d7f2: 2100 movs r1, #0 - return (endpoint_address & 0xF); -} - -void usb_peripheral_reset(void) -{ - RESET_CTRL0 = RESET_CTRL0_USB0_RST; -2000d7f4: 6010 str r0, [r2, #0] - RESET_CTRL0 = 0; -2000d7f6: 6011 str r1, [r2, #0] - - while( (RESET_ACTIVE_STATUS0 & RESET_CTRL0_USB0_RST) == 0 ); -2000d7f8: 4a03 ldr r2, [pc, #12] ; (2000d808 ) -2000d7fa: 6813 ldr r3, [r2, #0] -2000d7fc: 4203 tst r3, r0 -2000d7fe: d0fb beq.n 2000d7f8 -} -2000d800: 4770 bx lr -2000d802: 46c0 nop ; (mov r8, r8) -2000d804: 40053100 .word 0x40053100 -2000d808: 40053150 .word 0x40053150 - -2000d80c : -} - -void usb_endpoint_prime( - const usb_endpoint_t* const endpoint, - usb_transfer_descriptor_t* const first_td) -{ -2000d80c: b538 push {r3, r4, r5, lr} - usb_queue_head_t* const qh = usb_queue_head(endpoint->address); -2000d80e: 6904 ldr r4, [r0, #16] -} - -void usb_endpoint_prime( - const usb_endpoint_t* const endpoint, - usb_transfer_descriptor_t* const first_td) -{ -2000d810: 1c0d adds r5, r1, #0 - usb_queue_head_t* const qh = usb_queue_head(endpoint->address); -2000d812: 1c20 adds r0, r4, #0 -2000d814: f7ff ffde bl 2000d7d4 - - qh->next_dtd_pointer = first_td; - qh->total_bytes &= ~( USB_TD_DTD_TOKEN_STATUS_ACTIVE | USB_TD_DTD_TOKEN_STATUS_HALTED ); -2000d818: 68c3 ldr r3, [r0, #12] -2000d81a: 22c0 movs r2, #192 ; 0xc0 -2000d81c: 4393 bics r3, r2 - const usb_endpoint_t* const endpoint, - usb_transfer_descriptor_t* const first_td) -{ - usb_queue_head_t* const qh = usb_queue_head(endpoint->address); - - qh->next_dtd_pointer = first_td; -2000d81e: 6085 str r5, [r0, #8] - qh->total_bytes &= ~( USB_TD_DTD_TOKEN_STATUS_ACTIVE | USB_TD_DTD_TOKEN_STATUS_HALTED ); -2000d820: 60c3 str r3, [r0, #12] - return (endpoint_address & 0x80) ? true : false; -} - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000d822: 200f movs r0, #15 -2000d824: 4020 ands r0, r4 -2000d826: 2101 movs r1, #1 - qh->total_bytes &= ~( USB_TD_DTD_TOKEN_STATUS_ACTIVE | USB_TD_DTD_TOKEN_STATUS_HALTED ); - - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - if( usb_endpoint_is_in(endpoint->address) ) - { - USB0_ENDPTPRIME = USB0_ENDPTPRIME_PETB(1 << endpoint_number); -2000d828: 4081 lsls r1, r0 -2000d82a: 4d03 ldr r5, [pc, #12] ; (2000d838 ) -2000d82c: 1c0b adds r3, r1, #0 - - qh->next_dtd_pointer = first_td; - qh->total_bytes &= ~( USB_TD_DTD_TOKEN_STATUS_ACTIVE | USB_TD_DTD_TOKEN_STATUS_HALTED ); - - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - if( usb_endpoint_is_in(endpoint->address) ) -2000d82e: 0620 lsls r0, r4, #24 -2000d830: d500 bpl.n 2000d834 - { - USB0_ENDPTPRIME = USB0_ENDPTPRIME_PETB(1 << endpoint_number); -2000d832: 040b lsls r3, r1, #16 - } else { - USB0_ENDPTPRIME = USB0_ENDPTPRIME_PERB(1 << endpoint_number); -2000d834: 602b str r3, [r5, #0] - } -} -2000d836: bd38 pop {r3, r4, r5, pc} -2000d838: 400061b0 .word 0x400061b0 - -2000d83c : - return (endpoint_address & 0x80) ? true : false; -} - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000d83c: 6902 ldr r2, [r0, #16] - usb_endpoint_prime(endpoint, new_td); - } -} - -void usb_endpoint_flush(const usb_endpoint_t* const endpoint) -{ -2000d83e: b538 push {r3, r4, r5, lr} -2000d840: 1c04 adds r4, r0, #0 - return (endpoint_address & 0x80) ? true : false; -} - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000d842: 250f movs r5, #15 -2000d844: 4015 ands r5, r2 -} - -void usb_endpoint_flush(const usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - usb_queue_flush_endpoint(endpoint); -2000d846: f000 fa6d bl 2000dd24 - return ((direction == USB_TRANSFER_DIRECTION_IN) ? 0x80 : 0x00) + number; -} - -static bool usb_endpoint_is_in(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0x80) ? true : false; -2000d84a: 6923 ldr r3, [r4, #16] -2000d84c: 2001 movs r0, #1 -void usb_endpoint_flush(const usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - usb_queue_flush_endpoint(endpoint); - if( usb_endpoint_is_in(endpoint->address) ) { - usb_flush_primed_endpoints(USB0_ENDPTFLUSH_FETB(1 << endpoint_number)); -2000d84e: 40a8 lsls r0, r5 - -void usb_endpoint_flush(const usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - usb_queue_flush_endpoint(endpoint); - if( usb_endpoint_is_in(endpoint->address) ) { -2000d850: 061a lsls r2, r3, #24 -2000d852: d500 bpl.n 2000d856 - usb_flush_primed_endpoints(USB0_ENDPTFLUSH_FETB(1 << endpoint_number)); -2000d854: 0400 lsls r0, r0, #16 - } else { - usb_flush_primed_endpoints(USB0_ENDPTFLUSH_FERB(1 << endpoint_number)); -2000d856: f7ff ff87 bl 2000d768 - } -} -2000d85a: bd38 pop {r3, r4, r5, pc} - -2000d85c : - } -} - -void usb_endpoint_disable(const usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); -2000d85c: 6903 ldr r3, [r0, #16] - usb_clear_pending_interrupts(USB0_ENDPTCOMPLETE_ERCE(1 << endpoint_number)); - } -} - -void usb_endpoint_disable(const usb_endpoint_t* const endpoint) -{ -2000d85e: b510 push {r4, lr} - return (endpoint_address & 0x80) ? true : false; -} - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000d860: 210f movs r1, #15 - usb_clear_pending_interrupts(USB0_ENDPTCOMPLETE_ERCE(1 << endpoint_number)); - } -} - -void usb_endpoint_disable(const usb_endpoint_t* const endpoint) -{ -2000d862: 1c04 adds r4, r0, #0 -2000d864: 4810 ldr r0, [pc, #64] ; (2000d8a8 ) - return (endpoint_address & 0x80) ? true : false; -} - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000d866: 4019 ands r1, r3 - return ((direction == USB_TRANSFER_DIRECTION_IN) ? 0x80 : 0x00) + number; -} - -static bool usb_endpoint_is_in(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0x80) ? true : false; -2000d868: 2280 movs r2, #128 ; 0x80 -2000d86a: 1809 adds r1, r1, r0 -} - -void usb_endpoint_disable(const usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - if( usb_endpoint_is_in(endpoint->address) ) -2000d86c: 4213 tst r3, r2 -2000d86e: d005 beq.n 2000d87c - { - USB0_ENDPTCTRL(endpoint_number) &= ~(USB0_ENDPTCTRL_TXE); -2000d870: 0089 lsls r1, r1, #2 -2000d872: 6808 ldr r0, [r1, #0] -2000d874: 4b0d ldr r3, [pc, #52] ; (2000d8ac ) -2000d876: 4003 ands r3, r0 -2000d878: 600b str r3, [r1, #0] -2000d87a: e003 b.n 2000d884 - } else { - USB0_ENDPTCTRL(endpoint_number) &= ~(USB0_ENDPTCTRL_RXE); -2000d87c: 008b lsls r3, r1, #2 -2000d87e: 6818 ldr r0, [r3, #0] -2000d880: 4390 bics r0, r2 -2000d882: 6018 str r0, [r3, #0] - } - usb_queue_flush_endpoint(endpoint); -2000d884: 1c20 adds r0, r4, #0 -2000d886: f000 fa4d bl 2000dd24 - } -} - -static void usb_endpoint_clear_pending_interrupts(const usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); -2000d88a: 6921 ldr r1, [r4, #16] - return (endpoint_address & 0x80) ? true : false; -} - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000d88c: 220f movs r2, #15 -2000d88e: 400a ands r2, r1 -2000d890: 2001 movs r0, #1 - -static void usb_endpoint_clear_pending_interrupts(const usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - if( usb_endpoint_is_in(endpoint->address) ) { - usb_clear_pending_interrupts(USB0_ENDPTCOMPLETE_ETCE(1 << endpoint_number)); -2000d892: 4090 lsls r0, r2 -} - -static void usb_endpoint_clear_pending_interrupts(const usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - if( usb_endpoint_is_in(endpoint->address) ) { -2000d894: 0609 lsls r1, r1, #24 -2000d896: d500 bpl.n 2000d89a - usb_clear_pending_interrupts(USB0_ENDPTCOMPLETE_ETCE(1 << endpoint_number)); -2000d898: 0400 lsls r0, r0, #16 - } else { - usb_clear_pending_interrupts(USB0_ENDPTCOMPLETE_ERCE(1 << endpoint_number)); -2000d89a: f7ff ff4b bl 2000d734 - } else { - USB0_ENDPTCTRL(endpoint_number) &= ~(USB0_ENDPTCTRL_RXE); - } - usb_queue_flush_endpoint(endpoint); - usb_endpoint_clear_pending_interrupts(endpoint); - usb_endpoint_flush(endpoint); -2000d89e: 1c20 adds r0, r4, #0 -2000d8a0: f7ff ffcc bl 2000d83c -} -2000d8a4: bd10 pop {r4, pc} -2000d8a6: 46c0 nop ; (mov r8, r8) -2000d8a8: 10001870 .word 0x10001870 -2000d8ac: ff7fffff .word 0xff7fffff - -2000d8b0 : - return USB0_ENDPTFLUSH & USB0_ENDPTFLUSH_FERB(1 << endpoint_number); - } -} -*/ -bool usb_endpoint_is_ready(const usb_endpoint_t* const endpoint) -{ -2000d8b0: b510 push {r4, lr} - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); -2000d8b2: 6904 ldr r4, [r0, #16] - return (endpoint_address & 0x80) ? true : false; -} - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000d8b4: 230f movs r3, #15 -2000d8b6: 4023 ands r3, r4 -2000d8b8: 4907 ldr r1, [pc, #28] ; (2000d8d8 ) -2000d8ba: 2201 movs r2, #1 -} -*/ -bool usb_endpoint_is_ready(const usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - if( usb_endpoint_is_in(endpoint->address) ) { -2000d8bc: 0620 lsls r0, r4, #24 -2000d8be: d503 bpl.n 2000d8c8 - return USB0_ENDPTSTAT & USB0_ENDPTSTAT_ETBR(1 << endpoint_number); -2000d8c0: 409a lsls r2, r3 -2000d8c2: 6808 ldr r0, [r1, #0] -2000d8c4: 0414 lsls r4, r2, #16 -2000d8c6: e002 b.n 2000d8ce - } else { - return USB0_ENDPTSTAT & USB0_ENDPTSTAT_ERBR(1 << endpoint_number); -2000d8c8: 409a lsls r2, r3 -2000d8ca: 6808 ldr r0, [r1, #0] -2000d8cc: 1c14 adds r4, r2, #0 -2000d8ce: 4020 ands r0, r4 -2000d8d0: 1e43 subs r3, r0, #1 -2000d8d2: 4198 sbcs r0, r3 - } -} -2000d8d4: bd10 pop {r4, pc} -2000d8d6: 46c0 nop ; (mov r8, r8) -2000d8d8: 400061b8 .word 0x400061b8 - -2000d8dc : -// for setting the TERMINATE bit of next_dtd_pointer if needed. -void usb_endpoint_schedule_append( - const usb_endpoint_t* const endpoint, - usb_transfer_descriptor_t* const tail_td, - usb_transfer_descriptor_t* const new_td) -{ -2000d8dc: b5f8 push {r3, r4, r5, r6, r7, lr} - } -} - -static bool usb_endpoint_is_priming(const usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); -2000d8de: 6903 ldr r3, [r0, #16] - usb_transfer_descriptor_t* const tail_td, - usb_transfer_descriptor_t* const new_td) -{ - bool done; - - tail_td->next_dtd_pointer = new_td; -2000d8e0: 600a str r2, [r1, #0] -// for setting the TERMINATE bit of next_dtd_pointer if needed. -void usb_endpoint_schedule_append( - const usb_endpoint_t* const endpoint, - usb_transfer_descriptor_t* const tail_td, - usb_transfer_descriptor_t* const new_td) -{ -2000d8e2: 1c16 adds r6, r2, #0 - return (endpoint_address & 0x80) ? true : false; -} - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000d8e4: 220f movs r2, #15 -// for setting the TERMINATE bit of next_dtd_pointer if needed. -void usb_endpoint_schedule_append( - const usb_endpoint_t* const endpoint, - usb_transfer_descriptor_t* const tail_td, - usb_transfer_descriptor_t* const new_td) -{ -2000d8e6: 1c05 adds r5, r0, #0 - return (endpoint_address & 0x80) ? true : false; -} - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000d8e8: 401a ands r2, r3 -2000d8ea: 4813 ldr r0, [pc, #76] ; (2000d938 ) -2000d8ec: 2101 movs r1, #1 -} - -static bool usb_endpoint_is_priming(const usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - if( usb_endpoint_is_in(endpoint->address) ) { -2000d8ee: 061c lsls r4, r3, #24 -2000d8f0: d503 bpl.n 2000d8fa - return USB0_ENDPTPRIME & USB0_ENDPTPRIME_PETB(1 << endpoint_number); -2000d8f2: 4091 lsls r1, r2 -2000d8f4: 6804 ldr r4, [r0, #0] -2000d8f6: 040f lsls r7, r1, #16 -2000d8f8: e002 b.n 2000d900 - } else { - return USB0_ENDPTPRIME & USB0_ENDPTPRIME_PERB(1 << endpoint_number); -2000d8fa: 4091 lsls r1, r2 -2000d8fc: 6804 ldr r4, [r0, #0] -2000d8fe: 1c0f adds r7, r1, #0 -2000d900: 403c ands r4, r7 -2000d902: 1e62 subs r2, r4, #1 -2000d904: 4194 sbcs r4, r2 -{ - bool done; - - tail_td->next_dtd_pointer = new_td; - - if (usb_endpoint_is_priming(endpoint)) { -2000d906: 2c00 cmp r4, #0 -2000d908: d115 bne.n 2000d936 - return; - } - - do { - USB0_USBCMD_D |= USB0_USBCMD_D_ATDTW; -2000d90a: 4c0c ldr r4, [pc, #48] ; (2000d93c ) -2000d90c: 2080 movs r0, #128 ; 0x80 -2000d90e: 6822 ldr r2, [r4, #0] -2000d910: 01c7 lsls r7, r0, #7 -2000d912: 433a orrs r2, r7 -2000d914: 6022 str r2, [r4, #0] - done = usb_endpoint_is_ready(endpoint); -2000d916: 1c28 adds r0, r5, #0 -2000d918: f7ff ffca bl 2000d8b0 - } while (!(USB0_USBCMD_D & USB0_USBCMD_D_ATDTW)); -2000d91c: 6821 ldr r1, [r4, #0] -2000d91e: 4239 tst r1, r7 -2000d920: d0f3 beq.n 2000d90a - - USB0_USBCMD_D &= ~USB0_USBCMD_D_ATDTW; -2000d922: 6822 ldr r2, [r4, #0] -2000d924: 4b06 ldr r3, [pc, #24] ; (2000d940 ) -2000d926: 4013 ands r3, r2 -2000d928: 6023 str r3, [r4, #0] - if(!done) { -2000d92a: 2800 cmp r0, #0 -2000d92c: d103 bne.n 2000d936 - usb_endpoint_prime(endpoint, new_td); -2000d92e: 1c28 adds r0, r5, #0 -2000d930: 1c31 adds r1, r6, #0 -2000d932: f7ff ff6b bl 2000d80c - } -} -2000d936: bdf8 pop {r3, r4, r5, r6, r7, pc} -2000d938: 400061b0 .word 0x400061b0 -2000d93c: 40006140 .word 0x40006140 -2000d940: ffffbfff .word 0xffffbfff - -2000d944 : -// Schedule an already filled-in transfer descriptor for execution on -// the given endpoint, waiting until the endpoint has finished. -void usb_endpoint_schedule_wait( - const usb_endpoint_t* const endpoint, - usb_transfer_descriptor_t* const td) -{ -2000d944: b538 push {r3, r4, r5, lr} -2000d946: 1c05 adds r5, r0, #0 -2000d948: 1c0c adds r4, r1, #0 - // Ensure that endpoint is ready to be primed. - // It may have been flushed due to an aborted transaction. - // TODO: This should be preceded by a flush? - while( usb_endpoint_is_ready(endpoint) ); -2000d94a: 1c28 adds r0, r5, #0 -2000d94c: f7ff ffb0 bl 2000d8b0 -2000d950: 2800 cmp r0, #0 -2000d952: d1fa bne.n 2000d94a - - td->next_dtd_pointer = USB_TD_NEXT_DTD_POINTER_TERMINATE; -2000d954: 2301 movs r3, #1 - - usb_endpoint_prime(endpoint, td); -2000d956: 1c28 adds r0, r5, #0 - // Ensure that endpoint is ready to be primed. - // It may have been flushed due to an aborted transaction. - // TODO: This should be preceded by a flush? - while( usb_endpoint_is_ready(endpoint) ); - - td->next_dtd_pointer = USB_TD_NEXT_DTD_POINTER_TERMINATE; -2000d958: 6023 str r3, [r4, #0] - - usb_endpoint_prime(endpoint, td); -2000d95a: 1c21 adds r1, r4, #0 -2000d95c: f7ff ff56 bl 2000d80c -} -2000d960: bd38 pop {r3, r4, r5, pc} - ... - -2000d964 : - return (endpoint_address & 0x80) ? true : false; -} - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000d964: 6902 ldr r2, [r0, #16] -2000d966: 230f movs r3, #15 -void usb_endpoint_stall(const usb_endpoint_t* const endpoint) -{ - // Endpoint is to be stalled as a pair -- both OUT and IN. - // See UM10503 section 23.10.5.2 "Stalling" - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - USB0_ENDPTCTRL(endpoint_number) |= (USB0_ENDPTCTRL_RXS | USB0_ENDPTCTRL_TXS); -2000d968: 4804 ldr r0, [pc, #16] ; (2000d97c ) - return (endpoint_address & 0x80) ? true : false; -} - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000d96a: 4013 ands r3, r2 -void usb_endpoint_stall(const usb_endpoint_t* const endpoint) -{ - // Endpoint is to be stalled as a pair -- both OUT and IN. - // See UM10503 section 23.10.5.2 "Stalling" - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - USB0_ENDPTCTRL(endpoint_number) |= (USB0_ENDPTCTRL_RXS | USB0_ENDPTCTRL_TXS); -2000d96c: 1819 adds r1, r3, r0 -2000d96e: 008b lsls r3, r1, #2 -2000d970: 681a ldr r2, [r3, #0] -2000d972: 4803 ldr r0, [pc, #12] ; (2000d980 ) -2000d974: 4302 orrs r2, r0 -2000d976: 601a str r2, [r3, #0] - - // TODO: Also need to reset data toggle in both directions? -} -2000d978: 4770 bx lr -2000d97a: 46c0 nop ; (mov r8, r8) -2000d97c: 10001870 .word 0x10001870 -2000d980: 00010001 .word 0x00010001 - -2000d984 : - USB0_OTGSC = USB0_OTGSC_OT | USB0_OTGSC_VD; -} - -usb_speed_t usb_speed(const usb_device_t* const device) -{ - if( device == usb_device_usb0 ) -2000d984: 4b08 ldr r3, [pc, #32] ; (2000d9a8 ) - // VBUS_Discharge: VBUS discharges through resistor - USB0_OTGSC = USB0_OTGSC_OT | USB0_OTGSC_VD; -} - -usb_speed_t usb_speed(const usb_device_t* const device) -{ -2000d986: 1c02 adds r2, r0, #0 - if( device == usb_device_usb0 ) -2000d988: 6819 ldr r1, [r3, #0] - return USB_SPEED_FULL; - } - } else { - // TODO: This should not be possible with a more class-like - // implementation. - return USB_SPEED_FULL; -2000d98a: 2001 movs r0, #1 - USB0_OTGSC = USB0_OTGSC_OT | USB0_OTGSC_VD; -} - -usb_speed_t usb_speed(const usb_device_t* const device) -{ - if( device == usb_device_usb0 ) -2000d98c: 428a cmp r2, r1 -2000d98e: d10a bne.n 2000d9a6 - { - switch( USB0_PORTSC1_D & USB0_PORTSC1_D_PSPD_MASK ) -2000d990: 4806 ldr r0, [pc, #24] ; (2000d9ac ) -2000d992: 23c0 movs r3, #192 ; 0xc0 -2000d994: 6802 ldr r2, [r0, #0] -2000d996: 0519 lsls r1, r3, #20 -2000d998: 20f8 movs r0, #248 ; 0xf8 -2000d99a: 4011 ands r1, r2 -2000d99c: 0602 lsls r2, r0, #24 -2000d99e: 1888 adds r0, r1, r2 -2000d9a0: 4243 negs r3, r0 -2000d9a2: 4158 adcs r0, r3 -2000d9a4: 3001 adds r0, #1 - } else { - // TODO: This should not be possible with a more class-like - // implementation. - return USB_SPEED_FULL; - } -} -2000d9a6: 4770 bx lr -2000d9a8: 2000f340 .word 0x2000f340 -2000d9ac: 40006184 .word 0x40006184 - -2000d9b0 : - -void usb_set_address_immediate( - const usb_device_t* const device, - const uint_fast8_t address) -{ - if( device == usb_device_usb0 ) -2000d9b0: 4b03 ldr r3, [pc, #12] ; (2000d9c0 ) -2000d9b2: 681a ldr r2, [r3, #0] -2000d9b4: 4290 cmp r0, r2 -2000d9b6: d102 bne.n 2000d9be - { - USB0_DEVICEADDR = USB0_DEVICEADDR_USBADR(address); -2000d9b8: 4802 ldr r0, [pc, #8] ; (2000d9c4 ) -2000d9ba: 0649 lsls r1, r1, #25 -2000d9bc: 6001 str r1, [r0, #0] - } -} -2000d9be: 4770 bx lr -2000d9c0: 2000f340 .word 0x2000f340 -2000d9c4: 40006154 .word 0x40006154 - -2000d9c8 : - -void usb_set_address_deferred( - const usb_device_t* const device, - const uint_fast8_t address) -{ - if( device == usb_device_usb0 ) -2000d9c8: 4b05 ldr r3, [pc, #20] ; (2000d9e0 ) -2000d9ca: 681a ldr r2, [r3, #0] -2000d9cc: 4290 cmp r0, r2 -2000d9ce: d105 bne.n 2000d9dc - { - USB0_DEVICEADDR = USB0_DEVICEADDR_USBADR(address) -2000d9d0: 0648 lsls r0, r1, #25 - | USB0_DEVICEADDR_USBADRA; -2000d9d2: 2180 movs r1, #128 ; 0x80 -2000d9d4: 044a lsls r2, r1, #17 - const usb_device_t* const device, - const uint_fast8_t address) -{ - if( device == usb_device_usb0 ) - { - USB0_DEVICEADDR = USB0_DEVICEADDR_USBADR(address) -2000d9d6: 4b03 ldr r3, [pc, #12] ; (2000d9e4 ) - | USB0_DEVICEADDR_USBADRA; -2000d9d8: 4302 orrs r2, r0 - const usb_device_t* const device, - const uint_fast8_t address) -{ - if( device == usb_device_usb0 ) - { - USB0_DEVICEADDR = USB0_DEVICEADDR_USBADR(address) -2000d9da: 601a str r2, [r3, #0] - | USB0_DEVICEADDR_USBADRA; - } -} -2000d9dc: 4770 bx lr -2000d9de: 46c0 nop ; (mov r8, r8) -2000d9e0: 2000f340 .word 0x2000f340 -2000d9e4: 40006154 .word 0x40006154 - -2000d9e8 : -} - -void usb_device_init( - const uint_fast8_t device_ordinal, - usb_device_t* const device) -{ -2000d9e8: b508 push {r3, lr} - if( device_ordinal == 0 ) -2000d9ea: 2800 cmp r0, #0 -2000d9ec: d12b bne.n 2000da46 - while( (RESET_ACTIVE_STATUS0 & RESET_CTRL0_USB0_RST) == 0 ); -} - -static void usb_phy_enable(void) -{ - CREG_CREG0 &= ~CREG_CREG0_USB0PHY; -2000d9ee: 4816 ldr r0, [pc, #88] ; (2000da48 ) - const uint_fast8_t device_ordinal, - usb_device_t* const device) -{ - if( device_ordinal == 0 ) - { - usb_device_usb0 = device; -2000d9f0: 4b16 ldr r3, [pc, #88] ; (2000da4c ) - while( (RESET_ACTIVE_STATUS0 & RESET_CTRL0_USB0_RST) == 0 ); -} - -static void usb_phy_enable(void) -{ - CREG_CREG0 &= ~CREG_CREG0_USB0PHY; -2000d9f2: 6802 ldr r2, [r0, #0] - const uint_fast8_t device_ordinal, - usb_device_t* const device) -{ - if( device_ordinal == 0 ) - { - usb_device_usb0 = device; -2000d9f4: 6019 str r1, [r3, #0] - while( (RESET_ACTIVE_STATUS0 & RESET_CTRL0_USB0_RST) == 0 ); -} - -static void usb_phy_enable(void) -{ - CREG_CREG0 &= ~CREG_CREG0_USB0PHY; -2000d9f6: 2120 movs r1, #32 -2000d9f8: 438a bics r2, r1 -2000d9fa: 6002 str r2, [r0, #0] - } -} - -static void usb_reset_all_endpoints(void) -{ - usb_disable_all_endpoints(); -2000d9fc: f7ff fec2 bl 2000d784 - USB0_ENDPTCOMPLETE = USB0_ENDPTCOMPLETE & mask; -} - -static void usb_clear_all_pending_interrupts(void) -{ - usb_clear_pending_interrupts(0xFFFFFFFF); -2000da00: 2301 movs r3, #1 -2000da02: 4258 negs r0, r3 -2000da04: f7ff fe96 bl 2000d734 - usb_wait_for_endpoint_flushing_to_finish(mask); -} - -static void usb_flush_all_primed_endpoints(void) -{ - usb_flush_primed_endpoints(0xFFFFFFFF); -2000da08: 2001 movs r0, #1 -2000da0a: 4240 negs r0, r0 -2000da0c: f7ff feac bl 2000d768 - USB0_USBCMD_D |= USB0_USBCMD_D_RS; -} - -static void usb_controller_stop(void) -{ - USB0_USBCMD_D &= ~USB0_USBCMD_D_RS; -2000da10: 4b0f ldr r3, [pc, #60] ; (2000da50 ) -2000da12: 2101 movs r1, #1 -2000da14: 681a ldr r2, [r3, #0] - - // Reset controller. Resets internal pipelines, timers, counters, state - // machines to initial values. Not recommended when device is in attached - // state -- effect on attached host is undefined. Detach first by flushing - // all primed endpoints and stopping controller. - USB0_USBCMD_D = USB0_USBCMD_D_RST; -2000da16: 2002 movs r0, #2 - USB0_USBCMD_D |= USB0_USBCMD_D_RS; -} - -static void usb_controller_stop(void) -{ - USB0_USBCMD_D &= ~USB0_USBCMD_D_RS; -2000da18: 438a bics r2, r1 -2000da1a: 601a str r2, [r3, #0] - - // Reset controller. Resets internal pipelines, timers, counters, state - // machines to initial values. Not recommended when device is in attached - // state -- effect on attached host is undefined. Detach first by flushing - // all primed endpoints and stopping controller. - USB0_USBCMD_D = USB0_USBCMD_D_RST; -2000da1c: 6018 str r0, [r3, #0] - USB0_USBCMD_D &= ~USB0_USBCMD_D_RS; -} - -static uint_fast8_t usb_controller_is_resetting(void) -{ - return (USB0_USBCMD_D & USB0_USBCMD_D_RST) != 0; -2000da1e: 6818 ldr r0, [r3, #0] -2000da20: 2102 movs r1, #2 -2000da22: 4a0b ldr r2, [pc, #44] ; (2000da50 ) - // machines to initial values. Not recommended when device is in attached - // state -- effect on attached host is undefined. Detach first by flushing - // all primed endpoints and stopping controller. - USB0_USBCMD_D = USB0_USBCMD_D_RST; - - while( usb_controller_is_resetting() ); -2000da24: 4208 tst r0, r1 -2000da26: d1fa bne.n 2000da1e -} - -static void usb_controller_set_device_mode(void) -{ - // Set USB0 peripheral mode - USB0_USBMODE_D = USB0_USBMODE_D_CM1_0(2); -2000da28: 4b0a ldr r3, [pc, #40] ; (2000da54 ) - - // Set device-related OTG flags - // OTG termination: controls pull-down on USB_DM - // VBUS_Discharge: VBUS discharges through resistor - USB0_OTGSC = USB0_OTGSC_OT | USB0_OTGSC_VD; -2000da2a: 2009 movs r0, #9 -} - -static void usb_controller_set_device_mode(void) -{ - // Set USB0 peripheral mode - USB0_USBMODE_D = USB0_USBMODE_D_CM1_0(2); -2000da2c: 6019 str r1, [r3, #0] - - // Set device-related OTG flags - // OTG termination: controls pull-down on USB_DM - // VBUS_Discharge: VBUS discharges through resistor - USB0_OTGSC = USB0_OTGSC_OT | USB0_OTGSC_VD; -2000da2e: 490a ldr r1, [pc, #40] ; (2000da58 ) - usb_phy_enable(); - usb_controller_reset(); - usb_controller_set_device_mode(); - - // Set interrupt threshold interval to 0 - USB0_USBCMD_D &= ~USB0_USBCMD_D_ITC_MASK; -2000da30: 4b0a ldr r3, [pc, #40] ; (2000da5c ) - USB0_USBMODE_D = USB0_USBMODE_D_CM1_0(2); - - // Set device-related OTG flags - // OTG termination: controls pull-down on USB_DM - // VBUS_Discharge: VBUS discharges through resistor - USB0_OTGSC = USB0_OTGSC_OT | USB0_OTGSC_VD; -2000da32: 6008 str r0, [r1, #0] - usb_phy_enable(); - usb_controller_reset(); - usb_controller_set_device_mode(); - - // Set interrupt threshold interval to 0 - USB0_USBCMD_D &= ~USB0_USBCMD_D_ITC_MASK; -2000da34: 6810 ldr r0, [r2, #0] - - // Configure endpoint list address - USB0_ENDPOINTLISTADDR = (uint32_t)usb_qh; -2000da36: 490a ldr r1, [pc, #40] ; (2000da60 ) - usb_phy_enable(); - usb_controller_reset(); - usb_controller_set_device_mode(); - - // Set interrupt threshold interval to 0 - USB0_USBCMD_D &= ~USB0_USBCMD_D_ITC_MASK; -2000da38: 4003 ands r3, r0 -2000da3a: 6013 str r3, [r2, #0] - - // Configure endpoint list address - USB0_ENDPOINTLISTADDR = (uint32_t)usb_qh; - - // Enable interrupts - USB0_USBINTR_D = -2000da3c: 4809 ldr r0, [pc, #36] ; (2000da64 ) - - // Set interrupt threshold interval to 0 - USB0_USBCMD_D &= ~USB0_USBCMD_D_ITC_MASK; - - // Configure endpoint list address - USB0_ENDPOINTLISTADDR = (uint32_t)usb_qh; -2000da3e: 4a0a ldr r2, [pc, #40] ; (2000da68 ) - - // Enable interrupts - USB0_USBINTR_D = -2000da40: 4b0a ldr r3, [pc, #40] ; (2000da6c ) - - // Set interrupt threshold interval to 0 - USB0_USBCMD_D &= ~USB0_USBCMD_D_ITC_MASK; - - // Configure endpoint list address - USB0_ENDPOINTLISTADDR = (uint32_t)usb_qh; -2000da42: 600a str r2, [r1, #0] - - // Enable interrupts - USB0_USBINTR_D = -2000da44: 6018 str r0, [r3, #0] - //| USB0_USBINTR_D_SRE - | USB0_USBINTR_D_SLE - //| USB0_USBINTR_D_NAKE - ; - } -} -2000da46: bd08 pop {r3, pc} -2000da48: 40043004 .word 0x40043004 -2000da4c: 2000f340 .word 0x2000f340 -2000da50: 40006140 .word 0x40006140 -2000da54: 400061a8 .word 0x400061a8 -2000da58: 400061a4 .word 0x400061a4 -2000da5c: ff00ffff .word 0xff00ffff -2000da60: 40006158 .word 0x40006158 -2000da64: 00000147 .word 0x00000147 -2000da68: 2000f800 .word 0x2000f800 -2000da6c: 40006148 .word 0x40006148 - -2000da70 : - -void usb_run(usb_device_t* const device) -{ -2000da70: b508 push {r3, lr} - //} -} - -static void usb_interrupt_enable(usb_device_t* const device) -{ - if( device == usb_device_usb0 ) -2000da72: 4b06 ldr r3, [pc, #24] ; (2000da8c ) -2000da74: 6819 ldr r1, [r3, #0] -2000da76: 4288 cmp r0, r1 -2000da78: d102 bne.n 2000da80 - { - nvic_enable_irq(NVIC_USB0_IRQ); -2000da7a: 2008 movs r0, #8 -2000da7c: f000 fe1e bl 2000e6bc - // TODO: Also need to reset data toggle in both directions? -} - -static void usb_controller_run(void) -{ - USB0_USBCMD_D |= USB0_USBCMD_D_RS; -2000da80: 4803 ldr r0, [pc, #12] ; (2000da90 ) -2000da82: 2301 movs r3, #1 -2000da84: 6802 ldr r2, [r0, #0] -2000da86: 431a orrs r2, r3 -2000da88: 6002 str r2, [r0, #0] - -void usb_run(usb_device_t* const device) -{ - usb_interrupt_enable(device); - usb_controller_run(); -} -2000da8a: bd08 pop {r3, pc} -2000da8c: 2000f340 .word 0x2000f340 -2000da90: 40006140 .word 0x40006140 - -2000da94 : - dst->length_l = src[6]; - dst->length_h = src[7]; -} - -void usb_endpoint_init(const usb_endpoint_t* const endpoint) -{ -2000da94: b5f8 push {r3, r4, r5, r6, r7, lr} -2000da96: 1c04 adds r4, r0, #0 - usb_endpoint_flush(endpoint); -2000da98: f7ff fed0 bl 2000d83c - - uint_fast16_t max_packet_size = endpoint->device->descriptor[7]; -2000da9c: 6963 ldr r3, [r4, #20] -2000da9e: 6818 ldr r0, [r3, #0] -2000daa0: 79c7 ldrb r7, [r0, #7] - usb_transfer_type_t transfer_type = USB_TRANSFER_TYPE_CONTROL; - const uint8_t* const endpoint_descriptor = usb_endpoint_descriptor(endpoint); -2000daa2: 1c20 adds r0, r4, #0 -2000daa4: f000 fa41 bl 2000df2a -2000daa8: 1e05 subs r5, r0, #0 - if( endpoint_descriptor ) -2000daaa: d006 beq.n 2000daba - { - max_packet_size = usb_endpoint_descriptor_max_packet_size(endpoint_descriptor); -2000daac: f000 fa52 bl 2000df54 -2000dab0: 1c07 adds r7, r0, #0 - transfer_type = usb_endpoint_descriptor_transfer_type(endpoint_descriptor); -2000dab2: 1c28 adds r0, r5, #0 -2000dab4: f000 fa54 bl 2000df60 -2000dab8: 1c05 adds r5, r0, #0 - } - - // TODO: There are more capabilities to adjust based on the endpoint - // descriptor. - usb_queue_head_t* const qh = usb_queue_head(endpoint->address); -2000daba: 6926 ldr r6, [r4, #16] -2000dabc: 1c30 adds r0, r6, #0 -2000dabe: f7ff fe89 bl 2000d7d4 - qh->capabilities = USB_QH_CAPABILITIES_MULT(0) - | USB_QH_CAPABILITIES_ZLT - | USB_QH_CAPABILITIES_MPL(max_packet_size) - | ((transfer_type == USB_TRANSFER_TYPE_CONTROL) ? USB_QH_CAPABILITIES_IOS : 0); -2000dac2: 426b negs r3, r5 -2000dac4: 416b adcs r3, r5 -2000dac6: 2280 movs r2, #128 ; 0x80 - // TODO: There are more capabilities to adjust based on the endpoint - // descriptor. - usb_queue_head_t* const qh = usb_queue_head(endpoint->address); - qh->capabilities = USB_QH_CAPABILITIES_MULT(0) - | USB_QH_CAPABILITIES_ZLT - | USB_QH_CAPABILITIES_MPL(max_packet_size) -2000dac8: 0439 lsls r1, r7, #16 - | ((transfer_type == USB_TRANSFER_TYPE_CONTROL) ? USB_QH_CAPABILITIES_IOS : 0); -2000daca: 03df lsls r7, r3, #15 -2000dacc: 0593 lsls r3, r2, #22 -2000dace: 4319 orrs r1, r3 -2000dad0: 4339 orrs r1, r7 - } - - // TODO: There are more capabilities to adjust based on the endpoint - // descriptor. - usb_queue_head_t* const qh = usb_queue_head(endpoint->address); - qh->capabilities = USB_QH_CAPABILITIES_MULT(0) -2000dad2: 6001 str r1, [r0, #0] - | USB_QH_CAPABILITIES_ZLT - | USB_QH_CAPABILITIES_MPL(max_packet_size) - | ((transfer_type == USB_TRANSFER_TYPE_CONTROL) ? USB_QH_CAPABILITIES_IOS : 0); - - qh->current_dtd_pointer = 0; - qh->next_dtd_pointer = USB_TD_NEXT_DTD_POINTER_TERMINATE; -2000dad4: 2701 movs r7, #1 - qh->capabilities = USB_QH_CAPABILITIES_MULT(0) - | USB_QH_CAPABILITIES_ZLT - | USB_QH_CAPABILITIES_MPL(max_packet_size) - | ((transfer_type == USB_TRANSFER_TYPE_CONTROL) ? USB_QH_CAPABILITIES_IOS : 0); - - qh->current_dtd_pointer = 0; -2000dad6: 2100 movs r1, #0 - qh->next_dtd_pointer = USB_TD_NEXT_DTD_POINTER_TERMINATE; - qh->total_bytes - = USB_TD_DTD_TOKEN_TOTAL_BYTES(0) -2000dad8: 60c1 str r1, [r0, #12] - qh->capabilities = USB_QH_CAPABILITIES_MULT(0) - | USB_QH_CAPABILITIES_ZLT - | USB_QH_CAPABILITIES_MPL(max_packet_size) - | ((transfer_type == USB_TRANSFER_TYPE_CONTROL) ? USB_QH_CAPABILITIES_IOS : 0); - - qh->current_dtd_pointer = 0; -2000dada: 6041 str r1, [r0, #4] - qh->next_dtd_pointer = USB_TD_NEXT_DTD_POINTER_TERMINATE; - qh->total_bytes - = USB_TD_DTD_TOKEN_TOTAL_BYTES(0) - | USB_TD_DTD_TOKEN_MULTO(0); - - qh->buffer_pointer_page[0] = 0; -2000dadc: 6101 str r1, [r0, #16] - | USB_QH_CAPABILITIES_ZLT - | USB_QH_CAPABILITIES_MPL(max_packet_size) - | ((transfer_type == USB_TRANSFER_TYPE_CONTROL) ? USB_QH_CAPABILITIES_IOS : 0); - - qh->current_dtd_pointer = 0; - qh->next_dtd_pointer = USB_TD_NEXT_DTD_POINTER_TERMINATE; -2000dade: 6087 str r7, [r0, #8] - qh->total_bytes - = USB_TD_DTD_TOKEN_TOTAL_BYTES(0) - | USB_TD_DTD_TOKEN_MULTO(0); - - qh->buffer_pointer_page[0] = 0; - qh->buffer_pointer_page[1] = 0; -2000dae0: 6141 str r1, [r0, #20] - qh->buffer_pointer_page[2] = 0; -2000dae2: 6181 str r1, [r0, #24] - qh->buffer_pointer_page[3] = 0; -2000dae4: 61c1 str r1, [r0, #28] - qh->buffer_pointer_page[4] = 0; -2000dae6: 6201 str r1, [r0, #32] - - // This is how we look up an endpoint structure from an endpoint address: - qh->_reserved_0 = (uint32_t)endpoint; -2000dae8: 6244 str r4, [r0, #36] ; 0x24 - return (endpoint_address & 0x80) ? true : false; -} - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000daea: 240f movs r4, #15 - // NOTE: UM10503 section 23.6.24 "Endpoint 1 to 5 control registers" says - // that the disabled side of an endpoint must be set to a non-control type - // (e.g. bulk, interrupt, or iso). - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - USB0_ENDPTCTRL(endpoint_number) - = ( USB0_ENDPTCTRL(endpoint_number) -2000daec: 480b ldr r0, [pc, #44] ; (2000db1c ) - return (endpoint_address & 0x80) ? true : false; -} - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000daee: 4034 ands r4, r6 - // NOTE: UM10503 section 23.6.24 "Endpoint 1 to 5 control registers" says - // that the disabled side of an endpoint must be set to a non-control type - // (e.g. bulk, interrupt, or iso). - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - USB0_ENDPTCTRL(endpoint_number) - = ( USB0_ENDPTCTRL(endpoint_number) -2000daf0: 1822 adds r2, r4, r0 -2000daf2: 0093 lsls r3, r2, #2 -2000daf4: 6819 ldr r1, [r3, #0] - & ~(USB0_ENDPTCTRL_TXT1_0_MASK | USB0_ENDPTCTRL_RXT_MASK) ) -2000daf6: 4c0a ldr r4, [pc, #40] ; (2000db20 ) - | ( USB0_ENDPTCTRL_TXT1_0(transfer_type) - | USB0_ENDPTCTRL_RXT(transfer_type) ); -2000daf8: 00af lsls r7, r5, #2 - // (e.g. bulk, interrupt, or iso). - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - USB0_ENDPTCTRL(endpoint_number) - = ( USB0_ENDPTCTRL(endpoint_number) - & ~(USB0_ENDPTCTRL_TXT1_0_MASK | USB0_ENDPTCTRL_RXT_MASK) ) - | ( USB0_ENDPTCTRL_TXT1_0(transfer_type) -2000dafa: 04ad lsls r5, r5, #18 - | USB0_ENDPTCTRL_RXT(transfer_type) ); -2000dafc: 433d orrs r5, r7 - // that the disabled side of an endpoint must be set to a non-control type - // (e.g. bulk, interrupt, or iso). - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - USB0_ENDPTCTRL(endpoint_number) - = ( USB0_ENDPTCTRL(endpoint_number) - & ~(USB0_ENDPTCTRL_TXT1_0_MASK | USB0_ENDPTCTRL_RXT_MASK) ) -2000dafe: 400c ands r4, r1 - | ( USB0_ENDPTCTRL_TXT1_0(transfer_type) -2000db00: 4325 orrs r5, r4 - // NOTE: UM10503 section 23.6.24 "Endpoint 1 to 5 control registers" says - // that the disabled side of an endpoint must be set to a non-control type - // (e.g. bulk, interrupt, or iso). - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - USB0_ENDPTCTRL(endpoint_number) - = ( USB0_ENDPTCTRL(endpoint_number) -2000db02: 601d str r5, [r3, #0] -} - -static void usb_endpoint_enable(const usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->address); - if( usb_endpoint_is_in(endpoint->address) ) { -2000db04: 0632 lsls r2, r6, #24 -2000db06: d503 bpl.n 2000db10 - USB0_ENDPTCTRL(endpoint_number) |= (USB0_ENDPTCTRL_TXE | USB0_ENDPTCTRL_TXR); -2000db08: 22c0 movs r2, #192 ; 0xc0 -2000db0a: 6818 ldr r0, [r3, #0] -2000db0c: 0416 lsls r6, r2, #16 -2000db0e: e001 b.n 2000db14 - } else { - USB0_ENDPTCTRL(endpoint_number) |= (USB0_ENDPTCTRL_RXE | USB0_ENDPTCTRL_RXR); -2000db10: 681e ldr r6, [r3, #0] -2000db12: 20c0 movs r0, #192 ; 0xc0 -2000db14: 4306 orrs r6, r0 -2000db16: 601e str r6, [r3, #0] - // USB0_ENDPTNAKEN_EPRNE(1 << endpoint_out->number); - - usb_endpoint_set_type(endpoint, transfer_type); - - usb_endpoint_enable(endpoint); -} -2000db18: bdf8 pop {r3, r4, r5, r6, r7, pc} -2000db1a: 46c0 nop ; (mov r8, r8) -2000db1c: 10001870 .word 0x10001870 -2000db20: fff3fff3 .word 0xfff3fff3 - -2000db24 : - } - } -} - -void usb0_isr(void) -{ -2000db24: b5f0 push {r4, r5, r6, r7, lr} -} - -static uint32_t usb_get_status(void) -{ - // Mask status flags with enabled flag interrupts. - const uint32_t status = USB0_USBSTS_D & USB0_USBINTR_D; -2000db26: 4b5d ldr r3, [pc, #372] ; (2000dc9c ) -2000db28: 4a5d ldr r2, [pc, #372] ; (2000dca0 ) -2000db2a: 6819 ldr r1, [r3, #0] -2000db2c: 6810 ldr r0, [r2, #0] - } - } -} - -void usb0_isr(void) -{ -2000db2e: b085 sub sp, #20 -} - -static uint32_t usb_get_status(void) -{ - // Mask status flags with enabled flag interrupts. - const uint32_t status = USB0_USBSTS_D & USB0_USBINTR_D; -2000db30: 4001 ands r1, r0 -2000db32: 9100 str r1, [sp, #0] - } -} - -static void usb_clear_status(const uint32_t status) -{ - USB0_USBSTS_D = status; -2000db34: 6019 str r1, [r3, #0] - -void usb0_isr(void) -{ - const uint32_t status = usb_get_status(); - - if( status == 0 ) { -2000db36: d100 bne.n 2000db3a -2000db38: e0ad b.n 2000dc96 - // Nothing to do. - return; - } - - if( status & USB0_USBSTS_D_UI ) { -2000db3a: 07cb lsls r3, r1, #31 -2000db3c: d418 bmi.n 2000db70 - - if( status & USB0_USBSTS_D_SLI ) { - // Device controller suspend. - } -*/ - if( status & USB0_USBSTS_D_URI ) { -2000db3e: 9800 ldr r0, [sp, #0] -2000db40: 0642 lsls r2, r0, #25 -2000db42: d400 bmi.n 2000db46 -2000db44: e0a7 b.n 2000dc96 - // USB reset received. - usb_bus_reset(usb_device_usb0); -2000db46: 4e57 ldr r6, [pc, #348] ; (2000dca4 ) - USB0_ENDPTCOMPLETE = USB0_ENDPTCOMPLETE & mask; -} - -static void usb_clear_all_pending_interrupts(void) -{ - usb_clear_pending_interrupts(0xFFFFFFFF); -2000db48: 2401 movs r4, #1 - // Device controller suspend. - } -*/ - if( status & USB0_USBSTS_D_URI ) { - // USB reset received. - usb_bus_reset(usb_device_usb0); -2000db4a: 6837 ldr r7, [r6, #0] - usb_wait_for_endpoint_flushing_to_finish(mask); -} - -static void usb_flush_all_primed_endpoints(void) -{ - usb_flush_primed_endpoints(0xFFFFFFFF); -2000db4c: 2501 movs r5, #1 - } -} - -static void usb_reset_all_endpoints(void) -{ - usb_disable_all_endpoints(); -2000db4e: f7ff fe19 bl 2000d784 - USB0_ENDPTCOMPLETE = USB0_ENDPTCOMPLETE & mask; -} - -static void usb_clear_all_pending_interrupts(void) -{ - usb_clear_pending_interrupts(0xFFFFFFFF); -2000db52: 4260 negs r0, r4 -2000db54: f7ff fdee bl 2000d734 - usb_wait_for_endpoint_flushing_to_finish(mask); -} - -static void usb_flush_all_primed_endpoints(void) -{ - usb_flush_primed_endpoints(0xFFFFFFFF); -2000db58: 4268 negs r0, r5 -2000db5a: f7ff fe05 bl 2000d768 - -static void usb_bus_reset(usb_device_t* const device) -{ - // According to UM10503 v1.4 section 23.10.3 "Bus reset": - usb_reset_all_endpoints(); - usb_set_address_immediate(device, 0); -2000db5e: 1c38 adds r0, r7, #0 -2000db60: 2100 movs r1, #0 -2000db62: f7ff ff25 bl 2000d9b0 - usb_set_configuration(device, 0); -2000db66: 1c38 adds r0, r7, #0 -2000db68: 2100 movs r1, #0 -2000db6a: f000 fa03 bl 2000df74 -2000db6e: e092 b.n 2000dc96 - USB0_ENDPTSETUPSTAT = endpoint_setup_status; -} - -static uint32_t usb_get_endpoint_setup_status(void) -{ - return USB0_ENDPTSETUPSTAT; -2000db70: 4f4d ldr r7, [pc, #308] ; (2000dca8 ) -} - -static void usb_check_for_setup_events(void) -{ - const uint32_t endptsetupstat = usb_get_endpoint_setup_status(); - if( endptsetupstat ) -2000db72: 2600 movs r6, #0 - USB0_ENDPTSETUPSTAT = endpoint_setup_status; -} - -static uint32_t usb_get_endpoint_setup_status(void) -{ - return USB0_ENDPTSETUPSTAT; -2000db74: 683b ldr r3, [r7, #0] -2000db76: 9303 str r3, [sp, #12] -} - -static void usb_check_for_setup_events(void) -{ - const uint32_t endptsetupstat = usb_get_endpoint_setup_status(); - if( endptsetupstat ) -2000db78: 42b3 cmp r3, r6 -2000db7a: d15d bne.n 2000dc38 - USB0_ENDPTCOMPLETE = endpoint_complete; -} - -static uint32_t usb_get_endpoint_complete(void) -{ - return USB0_ENDPTCOMPLETE; -2000db7c: 4e4b ldr r6, [pc, #300] ; (2000dcac ) -} - -static void usb_check_for_transfer_events(void) -{ - const uint32_t endptcomplete = usb_get_endpoint_complete(); - if( endptcomplete ) -2000db7e: 2400 movs r4, #0 - USB0_ENDPTCOMPLETE = endpoint_complete; -} - -static uint32_t usb_get_endpoint_complete(void) -{ - return USB0_ENDPTCOMPLETE; -2000db80: 6837 ldr r7, [r6, #0] -} - -static void usb_check_for_transfer_events(void) -{ - const uint32_t endptcomplete = usb_get_endpoint_complete(); - if( endptcomplete ) -2000db82: 42a7 cmp r7, r4 -2000db84: d170 bne.n 2000dc68 -2000db86: e7da b.n 2000db3e - return &usb_qh[USB_QH_INDEX(endpoint_address)]; -} - -static usb_endpoint_t* usb_endpoint_from_address(const uint_fast8_t endpoint_address) -{ - return (usb_endpoint_t*)usb_queue_head(endpoint_address)->_reserved_0; -2000db88: 1c30 adds r0, r6, #0 -2000db8a: f7ff fe23 bl 2000d7d4 -2000db8e: 6a44 ldr r4, [r0, #36] ; 0x24 - { - usb_endpoint_t* const endpoint = - usb_endpoint_from_address( - usb_endpoint_address(USB_TRANSFER_DIRECTION_OUT, i) - ); - if( endpoint && endpoint->setup_complete ) -2000db90: 2c00 cmp r4, #0 -2000db92: d058 beq.n 2000dc46 -2000db94: 6a20 ldr r0, [r4, #32] -2000db96: 2800 cmp r0, #0 -2000db98: d055 beq.n 2000dc46 - { - copy_setup(&endpoint->setup, usb_queue_head(endpoint->address)->setup); -2000db9a: 6923 ldr r3, [r4, #16] -2000db9c: 1c18 adds r0, r3, #0 -2000db9e: 9301 str r3, [sp, #4] -2000dba0: f7ff fe18 bl 2000d7d4 - usb_controller_run(); -} - -static void copy_setup(usb_setup_t* const dst, const volatile uint8_t* const src) -{ - dst->request_type = src[0]; -2000dba4: 1c01 adds r1, r0, #0 -2000dba6: 3128 adds r1, #40 ; 0x28 -2000dba8: 780a ldrb r2, [r1, #0] - dst->request = src[1]; -2000dbaa: 1c05 adds r5, r0, #0 - usb_controller_run(); -} - -static void copy_setup(usb_setup_t* const dst, const volatile uint8_t* const src) -{ - dst->request_type = src[0]; -2000dbac: 7022 strb r2, [r4, #0] - dst->request = src[1]; -2000dbae: 3529 adds r5, #41 ; 0x29 -2000dbb0: 782b ldrb r3, [r5, #0] - dst->value_l = src[2]; -2000dbb2: 1c01 adds r1, r0, #0 -} - -static void copy_setup(usb_setup_t* const dst, const volatile uint8_t* const src) -{ - dst->request_type = src[0]; - dst->request = src[1]; -2000dbb4: 7063 strb r3, [r4, #1] - dst->value_l = src[2]; -2000dbb6: 312a adds r1, #42 ; 0x2a -2000dbb8: 780a ldrb r2, [r1, #0] - dst->value_h = src[3]; -2000dbba: 1c05 adds r5, r0, #0 - -static void copy_setup(usb_setup_t* const dst, const volatile uint8_t* const src) -{ - dst->request_type = src[0]; - dst->request = src[1]; - dst->value_l = src[2]; -2000dbbc: 70a2 strb r2, [r4, #2] - dst->value_h = src[3]; -2000dbbe: 352b adds r5, #43 ; 0x2b -2000dbc0: 782b ldrb r3, [r5, #0] - dst->index_l = src[4]; -2000dbc2: 1c01 adds r1, r0, #0 -static void copy_setup(usb_setup_t* const dst, const volatile uint8_t* const src) -{ - dst->request_type = src[0]; - dst->request = src[1]; - dst->value_l = src[2]; - dst->value_h = src[3]; -2000dbc4: 70e3 strb r3, [r4, #3] - dst->index_l = src[4]; -2000dbc6: 312c adds r1, #44 ; 0x2c -2000dbc8: 780a ldrb r2, [r1, #0] - dst->index_h = src[5]; -2000dbca: 1c05 adds r5, r0, #0 -{ - dst->request_type = src[0]; - dst->request = src[1]; - dst->value_l = src[2]; - dst->value_h = src[3]; - dst->index_l = src[4]; -2000dbcc: 7122 strb r2, [r4, #4] - dst->index_h = src[5]; -2000dbce: 352d adds r5, #45 ; 0x2d -2000dbd0: 782b ldrb r3, [r5, #0] - dst->length_l = src[6]; -2000dbd2: 1c01 adds r1, r0, #0 - dst->request_type = src[0]; - dst->request = src[1]; - dst->value_l = src[2]; - dst->value_h = src[3]; - dst->index_l = src[4]; - dst->index_h = src[5]; -2000dbd4: 7163 strb r3, [r4, #5] - dst->length_l = src[6]; -2000dbd6: 312e adds r1, #46 ; 0x2e -2000dbd8: 780a ldrb r2, [r1, #0] - dst->length_h = src[7]; -2000dbda: 302f adds r0, #47 ; 0x2f - dst->request = src[1]; - dst->value_l = src[2]; - dst->value_h = src[3]; - dst->index_l = src[4]; - dst->index_h = src[5]; - dst->length_l = src[6]; -2000dbdc: 71a2 strb r2, [r4, #6] - dst->length_h = src[7]; -2000dbde: 7800 ldrb r0, [r0, #0] - if( endpoint && endpoint->setup_complete ) - { - copy_setup(&endpoint->setup, usb_queue_head(endpoint->address)->setup); - // TODO: Clean up this duplicated effort by providing - // a cleaner way to get the SETUP data. - copy_setup(&endpoint->in->setup, usb_queue_head(endpoint->address)->setup); -2000dbe0: 69a5 ldr r5, [r4, #24] - dst->value_l = src[2]; - dst->value_h = src[3]; - dst->index_l = src[4]; - dst->index_h = src[5]; - dst->length_l = src[6]; - dst->length_h = src[7]; -2000dbe2: 71e0 strb r0, [r4, #7] - if( endpoint && endpoint->setup_complete ) - { - copy_setup(&endpoint->setup, usb_queue_head(endpoint->address)->setup); - // TODO: Clean up this duplicated effort by providing - // a cleaner way to get the SETUP data. - copy_setup(&endpoint->in->setup, usb_queue_head(endpoint->address)->setup); -2000dbe4: 9801 ldr r0, [sp, #4] -2000dbe6: f7ff fdf5 bl 2000d7d4 - usb_controller_run(); -} - -static void copy_setup(usb_setup_t* const dst, const volatile uint8_t* const src) -{ - dst->request_type = src[0]; -2000dbea: 1c03 adds r3, r0, #0 -2000dbec: 3328 adds r3, #40 ; 0x28 -2000dbee: 7819 ldrb r1, [r3, #0] - dst->request = src[1]; -2000dbf0: 1c02 adds r2, r0, #0 - usb_controller_run(); -} - -static void copy_setup(usb_setup_t* const dst, const volatile uint8_t* const src) -{ - dst->request_type = src[0]; -2000dbf2: 7029 strb r1, [r5, #0] - dst->request = src[1]; -2000dbf4: 3229 adds r2, #41 ; 0x29 -2000dbf6: 7813 ldrb r3, [r2, #0] - dst->value_l = src[2]; -2000dbf8: 1c01 adds r1, r0, #0 -} - -static void copy_setup(usb_setup_t* const dst, const volatile uint8_t* const src) -{ - dst->request_type = src[0]; - dst->request = src[1]; -2000dbfa: 706b strb r3, [r5, #1] - dst->value_l = src[2]; -2000dbfc: 312a adds r1, #42 ; 0x2a -2000dbfe: 780a ldrb r2, [r1, #0] - dst->value_h = src[3]; -2000dc00: 1c03 adds r3, r0, #0 - -static void copy_setup(usb_setup_t* const dst, const volatile uint8_t* const src) -{ - dst->request_type = src[0]; - dst->request = src[1]; - dst->value_l = src[2]; -2000dc02: 70aa strb r2, [r5, #2] - dst->value_h = src[3]; -2000dc04: 332b adds r3, #43 ; 0x2b -2000dc06: 7819 ldrb r1, [r3, #0] - dst->index_l = src[4]; -2000dc08: 1c02 adds r2, r0, #0 -static void copy_setup(usb_setup_t* const dst, const volatile uint8_t* const src) -{ - dst->request_type = src[0]; - dst->request = src[1]; - dst->value_l = src[2]; - dst->value_h = src[3]; -2000dc0a: 70e9 strb r1, [r5, #3] - dst->index_l = src[4]; -2000dc0c: 322c adds r2, #44 ; 0x2c -2000dc0e: 7813 ldrb r3, [r2, #0] - dst->index_h = src[5]; -2000dc10: 1c01 adds r1, r0, #0 -{ - dst->request_type = src[0]; - dst->request = src[1]; - dst->value_l = src[2]; - dst->value_h = src[3]; - dst->index_l = src[4]; -2000dc12: 712b strb r3, [r5, #4] - dst->index_h = src[5]; -2000dc14: 312d adds r1, #45 ; 0x2d -2000dc16: 780a ldrb r2, [r1, #0] - dst->length_l = src[6]; -2000dc18: 1c03 adds r3, r0, #0 - dst->request_type = src[0]; - dst->request = src[1]; - dst->value_l = src[2]; - dst->value_h = src[3]; - dst->index_l = src[4]; - dst->index_h = src[5]; -2000dc1a: 716a strb r2, [r5, #5] - dst->length_l = src[6]; -2000dc1c: 332e adds r3, #46 ; 0x2e -2000dc1e: 7819 ldrb r1, [r3, #0] - dst->length_h = src[7]; -2000dc20: 302f adds r0, #47 ; 0x2f - dst->request = src[1]; - dst->value_l = src[2]; - dst->value_h = src[3]; - dst->index_l = src[4]; - dst->index_h = src[5]; - dst->length_l = src[6]; -2000dc22: 71a9 strb r1, [r5, #6] - dst->length_h = src[7]; -2000dc24: 7800 ldrb r0, [r0, #0] -2000dc26: 71e8 strb r0, [r5, #7] - return status; -} - -static void usb_clear_endpoint_setup_status(const uint32_t endpoint_setup_status) -{ - USB0_ENDPTSETUPSTAT = endpoint_setup_status; -2000dc28: 9d02 ldr r5, [sp, #8] - copy_setup(&endpoint->setup, usb_queue_head(endpoint->address)->setup); - // TODO: Clean up this duplicated effort by providing - // a cleaner way to get the SETUP data. - copy_setup(&endpoint->in->setup, usb_queue_head(endpoint->address)->setup); - usb_clear_endpoint_setup_status(endptsetupstat_bit); - endpoint->setup_complete(endpoint); -2000dc2a: 6a22 ldr r2, [r4, #32] - return status; -} - -static void usb_clear_endpoint_setup_status(const uint32_t endpoint_setup_status) -{ - USB0_ENDPTSETUPSTAT = endpoint_setup_status; -2000dc2c: 603d str r5, [r7, #0] - copy_setup(&endpoint->setup, usb_queue_head(endpoint->address)->setup); - // TODO: Clean up this duplicated effort by providing - // a cleaner way to get the SETUP data. - copy_setup(&endpoint->in->setup, usb_queue_head(endpoint->address)->setup); - usb_clear_endpoint_setup_status(endptsetupstat_bit); - endpoint->setup_complete(endpoint); -2000dc2e: 1c20 adds r0, r4, #0 -2000dc30: 4790 blx r2 -static void usb_check_for_setup_events(void) -{ - const uint32_t endptsetupstat = usb_get_endpoint_setup_status(); - if( endptsetupstat ) - { - for( uint_fast8_t i=0; i<6; i++ ) -2000dc32: 3601 adds r6, #1 -2000dc34: 2e06 cmp r6, #6 -2000dc36: d0a1 beq.n 2000db7c - { - const uint32_t endptsetupstat_bit = USB0_ENDPTSETUPSTAT_ENDPTSETUPSTAT(1 << i); -2000dc38: 2101 movs r1, #1 - if( endptsetupstat & endptsetupstat_bit ) -2000dc3a: 9a03 ldr r2, [sp, #12] - const uint32_t endptsetupstat = usb_get_endpoint_setup_status(); - if( endptsetupstat ) - { - for( uint_fast8_t i=0; i<6; i++ ) - { - const uint32_t endptsetupstat_bit = USB0_ENDPTSETUPSTAT_ENDPTSETUPSTAT(1 << i); -2000dc3c: 40b1 lsls r1, r6 -2000dc3e: 9102 str r1, [sp, #8] - if( endptsetupstat & endptsetupstat_bit ) -2000dc40: 420a tst r2, r1 -2000dc42: d0f6 beq.n 2000dc32 -2000dc44: e7a0 b.n 2000db88 - return status; -} - -static void usb_clear_endpoint_setup_status(const uint32_t endpoint_setup_status) -{ - USB0_ENDPTSETUPSTAT = endpoint_setup_status; -2000dc46: 9d02 ldr r5, [sp, #8] -2000dc48: 603d str r5, [r7, #0] -2000dc4a: e7f2 b.n 2000dc32 - return USB0_ENDPTSETUPSTAT; -} - -static void usb_clear_endpoint_complete(const uint32_t endpoint_complete) -{ - USB0_ENDPTCOMPLETE = endpoint_complete; -2000dc4c: 6035 str r5, [r6, #0] - return &usb_qh[USB_QH_INDEX(endpoint_address)]; -} - -static usb_endpoint_t* usb_endpoint_from_address(const uint_fast8_t endpoint_address) -{ - return (usb_endpoint_t*)usb_queue_head(endpoint_address)->_reserved_0; -2000dc4e: 1c20 adds r0, r4, #0 -2000dc50: f7ff fdc0 bl 2000d7d4 -2000dc54: 6a40 ldr r0, [r0, #36] ; 0x24 - if( endptcomplete & endptcomplete_out_bit ) - { - usb_clear_endpoint_complete(endptcomplete_out_bit); - usb_endpoint_t* const endpoint = - usb_endpoint_from_address(usb_endpoint_address(USB_TRANSFER_DIRECTION_OUT, i)); - if( endpoint && endpoint->transfer_complete ) -2000dc56: 2800 cmp r0, #0 -2000dc58: d10b bne.n 2000dc72 - { - endpoint->transfer_complete(endpoint); - } - } - - const uint32_t endptcomplete_in_bit = USB0_ENDPTCOMPLETE_ETCE(1 << i); -2000dc5a: 0429 lsls r1, r5, #16 - if( endptcomplete & endptcomplete_in_bit ) -2000dc5c: 420f tst r7, r1 -2000dc5e: d10d bne.n 2000dc7c -static void usb_check_for_transfer_events(void) -{ - const uint32_t endptcomplete = usb_get_endpoint_complete(); - if( endptcomplete ) - { - for( uint_fast8_t i=0; i<6; i++ ) { -2000dc60: 3401 adds r4, #1 -2000dc62: 2c06 cmp r4, #6 -2000dc64: d100 bne.n 2000dc68 -2000dc66: e76a b.n 2000db3e - - const uint32_t endptcomplete_out_bit = USB0_ENDPTCOMPLETE_ERCE(1 << i); -2000dc68: 2501 movs r5, #1 -2000dc6a: 40a5 lsls r5, r4 - if( endptcomplete & endptcomplete_out_bit ) -2000dc6c: 422f tst r7, r5 -2000dc6e: d0f4 beq.n 2000dc5a -2000dc70: e7ec b.n 2000dc4c - { - usb_clear_endpoint_complete(endptcomplete_out_bit); - usb_endpoint_t* const endpoint = - usb_endpoint_from_address(usb_endpoint_address(USB_TRANSFER_DIRECTION_OUT, i)); - if( endpoint && endpoint->transfer_complete ) -2000dc72: 6a43 ldr r3, [r0, #36] ; 0x24 -2000dc74: 2b00 cmp r3, #0 -2000dc76: d0f0 beq.n 2000dc5a - { - endpoint->transfer_complete(endpoint); -2000dc78: 4798 blx r3 -2000dc7a: e7ee b.n 2000dc5a - -static uint_fast8_t usb_endpoint_address( - const usb_transfer_direction_t direction, - const uint_fast8_t number) -{ - return ((direction == USB_TRANSFER_DIRECTION_IN) ? 0x80 : 0x00) + number; -2000dc7c: 1c20 adds r0, r4, #0 - return USB0_ENDPTSETUPSTAT; -} - -static void usb_clear_endpoint_complete(const uint32_t endpoint_complete) -{ - USB0_ENDPTCOMPLETE = endpoint_complete; -2000dc7e: 6031 str r1, [r6, #0] - -static uint_fast8_t usb_endpoint_address( - const usb_transfer_direction_t direction, - const uint_fast8_t number) -{ - return ((direction == USB_TRANSFER_DIRECTION_IN) ? 0x80 : 0x00) + number; -2000dc80: 3080 adds r0, #128 ; 0x80 - return &usb_qh[USB_QH_INDEX(endpoint_address)]; -} - -static usb_endpoint_t* usb_endpoint_from_address(const uint_fast8_t endpoint_address) -{ - return (usb_endpoint_t*)usb_queue_head(endpoint_address)->_reserved_0; -2000dc82: f7ff fda7 bl 2000d7d4 -2000dc86: 6a40 ldr r0, [r0, #36] ; 0x24 - if( endptcomplete & endptcomplete_in_bit ) - { - usb_clear_endpoint_complete(endptcomplete_in_bit); - usb_endpoint_t* const endpoint = - usb_endpoint_from_address(usb_endpoint_address(USB_TRANSFER_DIRECTION_IN, i)); - if( endpoint && endpoint->transfer_complete ) -2000dc88: 2800 cmp r0, #0 -2000dc8a: d0e9 beq.n 2000dc60 -2000dc8c: 6a42 ldr r2, [r0, #36] ; 0x24 -2000dc8e: 2a00 cmp r2, #0 -2000dc90: d0e6 beq.n 2000dc60 - { - endpoint->transfer_complete(endpoint); -2000dc92: 4790 blx r2 -2000dc94: e7e4 b.n 2000dc60 - if( status & USB0_USBSTS_D_NAKI ) { - // Both the TX/RX endpoint NAK bit and corresponding TX/RX endpoint - // NAK enable bit are set. - } -*/ -} -2000dc96: b005 add sp, #20 -2000dc98: bdf0 pop {r4, r5, r6, r7, pc} -2000dc9a: 46c0 nop ; (mov r8, r8) -2000dc9c: 40006144 .word 0x40006144 -2000dca0: 40006148 .word 0x40006148 -2000dca4: 2000f340 .word 0x2000f340 -2000dca8: 400061ac .word 0x400061ac -2000dcac: 400061bc .word 0x400061bc - -2000dcb0 : - -#define USB_ENDPOINT_INDEX(endpoint_address) (((endpoint_address & 0xF) * 2) + ((endpoint_address >> 7) & 1)) - -static usb_queue_t* endpoint_queue(const usb_endpoint_t* const endpoint) -{ - uint32_t index = USB_ENDPOINT_INDEX(endpoint->address); -2000dcb0: 6903 ldr r3, [r0, #16] -2000dcb2: 210f movs r1, #15 -2000dcb4: 061a lsls r2, r3, #24 -2000dcb6: 400b ands r3, r1 -2000dcb8: 0fd0 lsrs r0, r2, #31 - if (endpoint_queues[index] == NULL) while (1); -2000dcba: 005b lsls r3, r3, #1 -2000dcbc: 181a adds r2, r3, r0 -2000dcbe: 4903 ldr r1, [pc, #12] ; (2000dccc ) -2000dcc0: 0090 lsls r0, r2, #2 -2000dcc2: 5840 ldr r0, [r0, r1] -2000dcc4: 2800 cmp r0, #0 -2000dcc6: d100 bne.n 2000dcca -2000dcc8: e7fe b.n 2000dcc8 - return endpoint_queues[index]; -} -2000dcca: 4770 bx lr -2000dccc: 2000f344 .word 0x2000f344 - -2000dcd0 : - -void usb_queue_init(usb_queue_t* const queue) -{ - uint32_t index = USB_ENDPOINT_INDEX(queue->endpoint->address); -2000dcd0: 6803 ldr r3, [r0, #0] - if (endpoint_queues[index] == NULL) while (1); - return endpoint_queues[index]; -} - -void usb_queue_init(usb_queue_t* const queue) -{ -2000dcd2: b570 push {r4, r5, r6, lr} - uint32_t index = USB_ENDPOINT_INDEX(queue->endpoint->address); -2000dcd4: 691c ldr r4, [r3, #16] -2000dcd6: 220f movs r2, #15 -2000dcd8: 0621 lsls r1, r4, #24 -2000dcda: 4014 ands r4, r2 -2000dcdc: 0fcd lsrs r5, r1, #31 -2000dcde: 0066 lsls r6, r4, #1 -2000dce0: 19ac adds r4, r5, r6 - if (endpoint_queues[index] != NULL) while (1); -2000dce2: 4b0e ldr r3, [pc, #56] ; (2000dd1c ) -2000dce4: 00a1 lsls r1, r4, #2 -2000dce6: 58ca ldr r2, [r1, r3] -2000dce8: 2a00 cmp r2, #0 -2000dcea: d000 beq.n 2000dcee -2000dcec: e7fe b.n 2000dcec - endpoint_queues[index] = queue; -2000dcee: 50c8 str r0, [r1, r3] - - usb_transfer_t* t = queue->free_transfers; -2000dcf0: 6881 ldr r1, [r0, #8] - for (unsigned int i=0; i < queue->pool_size - 1; i++, t++) { -2000dcf2: 6844 ldr r4, [r0, #4] -{ - uint32_t index = USB_ENDPOINT_INDEX(queue->endpoint->address); - if (endpoint_queues[index] != NULL) while (1); - endpoint_queues[index] = queue; - - usb_transfer_t* t = queue->free_transfers; -2000dcf4: 1c0b adds r3, r1, #0 - for (unsigned int i=0; i < queue->pool_size - 1; i++, t++) { -2000dcf6: 1e65 subs r5, r4, #1 -2000dcf8: 42aa cmp r2, r5 -2000dcfa: d206 bcs.n 2000dd0a - t->next = t+1; -2000dcfc: 3380 adds r3, #128 ; 0x80 - uint32_t index = USB_ENDPOINT_INDEX(endpoint->address); - if (endpoint_queues[index] == NULL) while (1); - return endpoint_queues[index]; -} - -void usb_queue_init(usb_queue_t* const queue) -2000dcfe: 1c1e adds r6, r3, #0 -2000dd00: 3e80 subs r6, #128 ; 0x80 - if (endpoint_queues[index] != NULL) while (1); - endpoint_queues[index] = queue; - - usb_transfer_t* t = queue->free_transfers; - for (unsigned int i=0; i < queue->pool_size - 1; i++, t++) { - t->next = t+1; -2000dd02: 6033 str r3, [r6, #0] - t->queue = queue; -2000dd04: 6670 str r0, [r6, #100] ; 0x64 - uint32_t index = USB_ENDPOINT_INDEX(queue->endpoint->address); - if (endpoint_queues[index] != NULL) while (1); - endpoint_queues[index] = queue; - - usb_transfer_t* t = queue->free_transfers; - for (unsigned int i=0; i < queue->pool_size - 1; i++, t++) { -2000dd06: 3201 adds r2, #1 -2000dd08: e7f6 b.n 2000dcf8 - uint32_t index = USB_ENDPOINT_INDEX(endpoint->address); - if (endpoint_queues[index] == NULL) while (1); - return endpoint_queues[index]; -} - -void usb_queue_init(usb_queue_t* const queue) -2000dd0a: 4d05 ldr r5, [pc, #20] ; (2000dd20 ) - usb_transfer_t* t = queue->free_transfers; - for (unsigned int i=0; i < queue->pool_size - 1; i++, t++) { - t->next = t+1; - t->queue = queue; - } - t->next = NULL; -2000dd0c: 2300 movs r3, #0 - uint32_t index = USB_ENDPOINT_INDEX(endpoint->address); - if (endpoint_queues[index] == NULL) while (1); - return endpoint_queues[index]; -} - -void usb_queue_init(usb_queue_t* const queue) -2000dd0e: 1962 adds r2, r4, r5 -2000dd10: 01d6 lsls r6, r2, #7 -2000dd12: 198c adds r4, r1, r6 - usb_transfer_t* t = queue->free_transfers; - for (unsigned int i=0; i < queue->pool_size - 1; i++, t++) { - t->next = t+1; - t->queue = queue; - } - t->next = NULL; -2000dd14: 6023 str r3, [r4, #0] - t->queue = queue; -2000dd16: 6660 str r0, [r4, #100] ; 0x64 -} -2000dd18: bd70 pop {r4, r5, r6, pc} -2000dd1a: 46c0 nop ; (mov r8, r8) -2000dd1c: 2000f344 .word 0x2000f344 -2000dd20: 01ffffff .word 0x01ffffff - -2000dd24 : - } - cm_enable_interrupts(); -} - -void usb_queue_flush_endpoint(const usb_endpoint_t* const endpoint) -{ -2000dd24: b508 push {r3, lr} - usb_queue_flush_queue(endpoint_queue(endpoint)); -2000dd26: f7ff ffc3 bl 2000dcb0 - __asm__("CPSIE I\n"); -} - -static inline void cm_disable_interrupts(void) -{ - __asm__("CPSID I\n"); -2000dd2a: b672 cpsid i -} - -static void usb_queue_flush_queue(usb_queue_t* const queue) -{ - cm_disable_interrupts(); - while (queue->active) -2000dd2c: 68c3 ldr r3, [r0, #12] -2000dd2e: 2b00 cmp r3, #0 -2000dd30: d007 beq.n 2000dd42 - { - usb_transfer_t* transfer = queue->active; -2000dd32: 68c3 ldr r3, [r0, #12] - queue->active = transfer->next; -2000dd34: 6819 ldr r1, [r3, #0] -} - -/* Place a transfer in the free list (nolock or disable IRQ) */ -static void free_transfer_nolock(usb_transfer_t* const transfer) -{ - usb_queue_t* const queue = transfer->queue; -2000dd36: 6e5a ldr r2, [r3, #100] ; 0x64 -{ - cm_disable_interrupts(); - while (queue->active) - { - usb_transfer_t* transfer = queue->active; - queue->active = transfer->next; -2000dd38: 60c1 str r1, [r0, #12] - do { - transfer->next = (void *) __ldrex((uint32_t *) &queue->free_transfers); - aborted = __strex((uint32_t) transfer, (uint32_t *) &queue->free_transfers); - } while (aborted); -*/ - transfer->next = queue->free_transfers; -2000dd3a: 6891 ldr r1, [r2, #8] -2000dd3c: 6019 str r1, [r3, #0] - queue->free_transfers = transfer; -2000dd3e: 6093 str r3, [r2, #8] -2000dd40: e7f4 b.n 2000dd2c -#ifndef LIBOPENCM3_CORTEX_H -#define LIBOPENCM3_CORTEX_H - -static inline void cm_enable_interrupts(void) -{ - __asm__("CPSIE I\n"); -2000dd42: b662 cpsie i -} - -void usb_queue_flush_endpoint(const usb_endpoint_t* const endpoint) -{ - usb_queue_flush_queue(endpoint_queue(endpoint)); -} -2000dd44: bd08 pop {r3, pc} - ... - -2000dd48 : - -int usb_transfer_schedule( - const usb_endpoint_t* const endpoint, - void* const data, - const uint32_t maximum_length) -{ -2000dd48: b538 push {r3, r4, r5, lr} -2000dd4a: 1c0c adds r4, r1, #0 -2000dd4c: 1c15 adds r5, r2, #0 - usb_queue_t* const queue = endpoint_queue(endpoint); -2000dd4e: f7ff ffaf bl 2000dcb0 -/* - bool aborted; -*/ - usb_transfer_t* transfer; - - if (queue->free_transfers == NULL) -2000dd52: 6883 ldr r3, [r0, #8] -2000dd54: 2b00 cmp r3, #0 -2000dd56: d042 beq.n 2000ddde -} - -static inline void cm_disable_interrupts(void) -{ - __asm__("CPSID I\n"); -2000dd58: b672 cpsid i - transfer = (void *) __ldrex((uint32_t *) &queue->free_transfers); - aborted = __strex((uint32_t) transfer->next, (uint32_t *) &queue->free_transfers); - } while (aborted); -*/ - cm_disable_interrupts(); - transfer = queue->free_transfers; -2000dd5a: 6883 ldr r3, [r0, #8] - queue->free_transfers = transfer->next; - transfer->next = NULL; -2000dd5c: 2200 movs r2, #0 - aborted = __strex((uint32_t) transfer->next, (uint32_t *) &queue->free_transfers); - } while (aborted); -*/ - cm_disable_interrupts(); - transfer = queue->free_transfers; - queue->free_transfers = transfer->next; -2000dd5e: 6819 ldr r1, [r3, #0] -2000dd60: 6081 str r1, [r0, #8] - transfer->next = NULL; -2000dd62: 601a str r2, [r3, #0] -#ifndef LIBOPENCM3_CORTEX_H -#define LIBOPENCM3_CORTEX_H - -static inline void cm_enable_interrupts(void) -{ - __asm__("CPSIE I\n"); -2000dd64: b662 cpsie i - usb_transfer_t* const transfer = allocate_transfer(queue); - if (transfer == NULL) return -1; - usb_transfer_descriptor_t* const td = &transfer->td; - - // Configure the transfer descriptor - td->next_dtd_pointer = USB_TD_NEXT_DTD_POINTER_TERMINATE; -2000dd66: 2101 movs r1, #1 -2000dd68: 6419 str r1, [r3, #64] ; 0x40 - td->total_bytes = - USB_TD_DTD_TOKEN_TOTAL_BYTES(maximum_length) - | USB_TD_DTD_TOKEN_IOC - | USB_TD_DTD_TOKEN_MULTO(0) - | USB_TD_DTD_TOKEN_STATUS_ACTIVE; -2000dd6a: 491e ldr r1, [pc, #120] ; (2000dde4 ) - usb_transfer_descriptor_t* const td = &transfer->td; - - // Configure the transfer descriptor - td->next_dtd_pointer = USB_TD_NEXT_DTD_POINTER_TERMINATE; - td->total_bytes = - USB_TD_DTD_TOKEN_TOTAL_BYTES(maximum_length) -2000dd6c: 042a lsls r2, r5, #16 - | USB_TD_DTD_TOKEN_IOC - | USB_TD_DTD_TOKEN_MULTO(0) - | USB_TD_DTD_TOKEN_STATUS_ACTIVE; -2000dd6e: 430a orrs r2, r1 - if (transfer == NULL) return -1; - usb_transfer_descriptor_t* const td = &transfer->td; - - // Configure the transfer descriptor - td->next_dtd_pointer = USB_TD_NEXT_DTD_POINTER_TERMINATE; - td->total_bytes = -2000dd70: 645a str r2, [r3, #68] ; 0x44 - USB_TD_DTD_TOKEN_TOTAL_BYTES(maximum_length) - | USB_TD_DTD_TOKEN_IOC - | USB_TD_DTD_TOKEN_MULTO(0) - | USB_TD_DTD_TOKEN_STATUS_ACTIVE; - td->buffer_pointer_page[0] = (uint32_t)data; - td->buffer_pointer_page[1] = ((uint32_t)data + 0x1000) & 0xfffff000; -2000dd72: 2280 movs r2, #128 ; 0x80 -2000dd74: 0151 lsls r1, r2, #5 -2000dd76: 1862 adds r2, r4, r1 -2000dd78: 0b11 lsrs r1, r2, #12 -2000dd7a: 030a lsls r2, r1, #12 - td->buffer_pointer_page[2] = ((uint32_t)data + 0x2000) & 0xfffff000; -2000dd7c: 2180 movs r1, #128 ; 0x80 - td->total_bytes = - USB_TD_DTD_TOKEN_TOTAL_BYTES(maximum_length) - | USB_TD_DTD_TOKEN_IOC - | USB_TD_DTD_TOKEN_MULTO(0) - | USB_TD_DTD_TOKEN_STATUS_ACTIVE; - td->buffer_pointer_page[0] = (uint32_t)data; -2000dd7e: 649c str r4, [r3, #72] ; 0x48 - td->buffer_pointer_page[1] = ((uint32_t)data + 0x1000) & 0xfffff000; -2000dd80: 64da str r2, [r3, #76] ; 0x4c - td->buffer_pointer_page[2] = ((uint32_t)data + 0x2000) & 0xfffff000; -2000dd82: 018a lsls r2, r1, #6 -2000dd84: 18a1 adds r1, r4, r2 -2000dd86: 0b0a lsrs r2, r1, #12 -2000dd88: 0311 lsls r1, r2, #12 - td->buffer_pointer_page[3] = ((uint32_t)data + 0x3000) & 0xfffff000; -2000dd8a: 22c0 movs r2, #192 ; 0xc0 - | USB_TD_DTD_TOKEN_IOC - | USB_TD_DTD_TOKEN_MULTO(0) - | USB_TD_DTD_TOKEN_STATUS_ACTIVE; - td->buffer_pointer_page[0] = (uint32_t)data; - td->buffer_pointer_page[1] = ((uint32_t)data + 0x1000) & 0xfffff000; - td->buffer_pointer_page[2] = ((uint32_t)data + 0x2000) & 0xfffff000; -2000dd8c: 6519 str r1, [r3, #80] ; 0x50 - td->buffer_pointer_page[3] = ((uint32_t)data + 0x3000) & 0xfffff000; -2000dd8e: 0191 lsls r1, r2, #6 -2000dd90: 1862 adds r2, r4, r1 -2000dd92: 0b11 lsrs r1, r2, #12 -2000dd94: 030a lsls r2, r1, #12 - td->buffer_pointer_page[4] = ((uint32_t)data + 0x4000) & 0xfffff000; -2000dd96: 2180 movs r1, #128 ; 0x80 - | USB_TD_DTD_TOKEN_MULTO(0) - | USB_TD_DTD_TOKEN_STATUS_ACTIVE; - td->buffer_pointer_page[0] = (uint32_t)data; - td->buffer_pointer_page[1] = ((uint32_t)data + 0x1000) & 0xfffff000; - td->buffer_pointer_page[2] = ((uint32_t)data + 0x2000) & 0xfffff000; - td->buffer_pointer_page[3] = ((uint32_t)data + 0x3000) & 0xfffff000; -2000dd98: 655a str r2, [r3, #84] ; 0x54 - td->buffer_pointer_page[4] = ((uint32_t)data + 0x4000) & 0xfffff000; -2000dd9a: 01ca lsls r2, r1, #7 -2000dd9c: 18a4 adds r4, r4, r2 -2000dd9e: 0b21 lsrs r1, r4, #12 -2000dda0: 030a lsls r2, r1, #12 -2000dda2: 659a str r2, [r3, #88] ; 0x58 - - // Fill in transfer fields - transfer->maximum_length = maximum_length; -2000dda4: 661d str r5, [r3, #96] ; 0x60 -} - -static inline void cm_disable_interrupts(void) -{ - __asm__("CPSID I\n"); -2000dda6: b672 cpsid i -/* Add a transfer to the end of an endpoint's queue. Returns the old - * tail or NULL is the queue was empty - */ -static usb_transfer_t* endpoint_queue_transfer(usb_transfer_t* const transfer) -{ - usb_queue_t* const queue = transfer->queue; -2000dda8: 6e5d ldr r5, [r3, #100] ; 0x64 - transfer->next = NULL; - if (queue->active != NULL) -2000ddaa: 68ec ldr r4, [r5, #12] -2000ddac: 2c00 cmp r4, #0 -2000ddae: d00d beq.n 2000ddcc - { - usb_transfer_t* t = queue->active; -2000ddb0: 68e9 ldr r1, [r5, #12] - while (t->next != NULL) t = t->next; -2000ddb2: 680a ldr r2, [r1, #0] -2000ddb4: 2a00 cmp r2, #0 -2000ddb6: d001 beq.n 2000ddbc -2000ddb8: 1c11 adds r1, r2, #0 -2000ddba: e7fa b.n 2000ddb2 - { - // The queue is currently empty, we need to re-prime - usb_endpoint_schedule_wait(queue->endpoint, &transfer->td); - } else { - // The queue is currently running, try to append - usb_endpoint_schedule_append(queue->endpoint, &tail->td, &transfer->td); -2000ddbc: 1c1a adds r2, r3, #0 - transfer->next = NULL; - if (queue->active != NULL) - { - usb_transfer_t* t = queue->active; - while (t->next != NULL) t = t->next; - t->next = transfer; -2000ddbe: 600b str r3, [r1, #0] - { - // The queue is currently empty, we need to re-prime - usb_endpoint_schedule_wait(queue->endpoint, &transfer->td); - } else { - // The queue is currently running, try to append - usb_endpoint_schedule_append(queue->endpoint, &tail->td, &transfer->td); -2000ddc0: 6800 ldr r0, [r0, #0] -2000ddc2: 3140 adds r1, #64 ; 0x40 -2000ddc4: 3240 adds r2, #64 ; 0x40 -2000ddc6: f7ff fd89 bl 2000d8dc -2000ddca: e005 b.n 2000ddd8 - cm_disable_interrupts(); - usb_transfer_t* tail = endpoint_queue_transfer(transfer); - if (tail == NULL) - { - // The queue is currently empty, we need to re-prime - usb_endpoint_schedule_wait(queue->endpoint, &transfer->td); -2000ddcc: 1c19 adds r1, r3, #0 - usb_transfer_t* t = queue->active; - while (t->next != NULL) t = t->next; - t->next = transfer; - return t; - } else { - queue->active = transfer; -2000ddce: 60eb str r3, [r5, #12] - cm_disable_interrupts(); - usb_transfer_t* tail = endpoint_queue_transfer(transfer); - if (tail == NULL) - { - // The queue is currently empty, we need to re-prime - usb_endpoint_schedule_wait(queue->endpoint, &transfer->td); -2000ddd0: 6800 ldr r0, [r0, #0] -2000ddd2: 3140 adds r1, #64 ; 0x40 -2000ddd4: f7ff fdb6 bl 2000d944 -#ifndef LIBOPENCM3_CORTEX_H -#define LIBOPENCM3_CORTEX_H - -static inline void cm_enable_interrupts(void) -{ - __asm__("CPSIE I\n"); -2000ddd8: b662 cpsie i - } else { - // The queue is currently running, try to append - usb_endpoint_schedule_append(queue->endpoint, &tail->td, &transfer->td); - } - cm_enable_interrupts(); - return 0; -2000ddda: 2000 movs r0, #0 -2000dddc: e001 b.n 2000dde2 - void* const data, - const uint32_t maximum_length) -{ - usb_queue_t* const queue = endpoint_queue(endpoint); - usb_transfer_t* const transfer = allocate_transfer(queue); - if (transfer == NULL) return -1; -2000ddde: 2001 movs r0, #1 -2000dde0: 4240 negs r0, r0 - // The queue is currently running, try to append - usb_endpoint_schedule_append(queue->endpoint, &tail->td, &transfer->td); - } - cm_enable_interrupts(); - return 0; -} -2000dde2: bd38 pop {r3, r4, r5, pc} -2000dde4: 00008080 .word 0x00008080 - -2000dde8 : - -int usb_transfer_schedule_block( - const usb_endpoint_t* const endpoint, - void* const data, - const uint32_t maximum_length) -{ -2000dde8: b570 push {r4, r5, r6, lr} -2000ddea: 1c06 adds r6, r0, #0 -2000ddec: 1c0d adds r5, r1, #0 -2000ddee: 1c14 adds r4, r2, #0 - int ret; - do - { - ret = usb_transfer_schedule(endpoint, data, maximum_length); -2000ddf0: 1c30 adds r0, r6, #0 -2000ddf2: 1c29 adds r1, r5, #0 -2000ddf4: 1c22 adds r2, r4, #0 -2000ddf6: f7ff ffa7 bl 2000dd48 - } while (ret == -1); -2000ddfa: 3001 adds r0, #1 -2000ddfc: d0f8 beq.n 2000ddf0 - return 0; -} -2000ddfe: 2000 movs r0, #0 -2000de00: bd70 pop {r4, r5, r6, pc} - -2000de02 : - -int usb_transfer_schedule_ack(const usb_endpoint_t* const endpoint) -{ -2000de02: b508 push {r3, lr} - return usb_transfer_schedule_block(endpoint, 0, 0); -2000de04: 2100 movs r1, #0 -2000de06: 1c0a adds r2, r1, #0 -2000de08: f7ff ffee bl 2000dde8 -} -2000de0c: bd08 pop {r3, pc} - -2000de0e : - -/* Called when an endpoint might have completed a transfer */ -void usb_queue_transfer_complete(usb_endpoint_t* const endpoint) -{ -2000de0e: b510 push {r4, lr} - usb_queue_t* const queue = endpoint_queue(endpoint); -2000de10: f7ff ff4e bl 2000dcb0 - if (queue == NULL) while(1); // Uh oh -2000de14: 2800 cmp r0, #0 -2000de16: d100 bne.n 2000de1a -2000de18: e7fe b.n 2000de18 - usb_transfer_t* transfer = queue->active; -2000de1a: 68c3 ldr r3, [r0, #12] - - while (transfer != NULL) -2000de1c: 2b00 cmp r3, #0 -2000de1e: d010 beq.n 2000de42 - { - uint8_t status = transfer->td.total_bytes; -2000de20: 6c5a ldr r2, [r3, #68] ; 0x44 - - // Check for failures - if (status & USB_TD_DTD_TOKEN_STATUS_HALTED - || status & USB_TD_DTD_TOKEN_STATUS_BUFFER_ERROR - || status & USB_TD_DTD_TOKEN_STATUS_TRANSACTION_ERROR) -2000de22: 2168 movs r1, #104 ; 0x68 -2000de24: 420a tst r2, r1 -2000de26: d000 beq.n 2000de2a -2000de28: e7fe b.n 2000de28 - // TODO: Uh oh, do something useful here - while (1); - } - - // Still not finished - if (status & USB_TD_DTD_TOKEN_STATUS_ACTIVE) -2000de2a: 0611 lsls r1, r2, #24 -2000de2c: d409 bmi.n 2000de42 - break; - - // Advance the head. - queue->active = transfer->next; -2000de2e: 681a ldr r2, [r3, #0] -} - -/* Place a transfer in the free list */ -static void free_transfer(usb_transfer_t* const transfer) -{ - usb_queue_t* const queue = transfer->queue; -2000de30: 6e59 ldr r1, [r3, #100] ; 0x64 - // Still not finished - if (status & USB_TD_DTD_TOKEN_STATUS_ACTIVE) - break; - - // Advance the head. - queue->active = transfer->next; -2000de32: 60c2 str r2, [r0, #12] -} - -static inline void cm_disable_interrupts(void) -{ - __asm__("CPSID I\n"); -2000de34: b672 cpsid i - transfer->next = (void *) __ldrex((uint32_t *) &queue->free_transfers); - aborted = __strex((uint32_t) transfer, (uint32_t *) &queue->free_transfers); - } while (aborted); -*/ - cm_disable_interrupts(); - transfer->next = queue->free_transfers; -2000de36: 688c ldr r4, [r1, #8] -2000de38: 601c str r4, [r3, #0] - queue->free_transfers = transfer; -2000de3a: 608b str r3, [r1, #8] -#ifndef LIBOPENCM3_CORTEX_H -#define LIBOPENCM3_CORTEX_H - -static inline void cm_enable_interrupts(void) -{ - __asm__("CPSIE I\n"); -2000de3c: b662 cpsie i - queue->active = transfer->next; - usb_transfer_t* next = transfer->next; - - // Free transfer - free_transfer(transfer); - transfer = next; -2000de3e: 1c13 adds r3, r2, #0 -2000de40: e7ec b.n 2000de1c - } -} -2000de42: bd10 pop {r4, pc} - -2000de44 : -#include - -static void usb_request( - usb_endpoint_t* const endpoint, - const usb_transfer_stage_t stage) -{ -2000de44: b510 push {r4, lr} - usb_request_status_t status = USB_REQUEST_STATUS_STALL; - usb_request_handler_fn handler = 0; - - switch( endpoint->setup.request_type & USB_SETUP_REQUEST_TYPE_mask ) -2000de46: 7802 ldrb r2, [r0, #0] -2000de48: 2360 movs r3, #96 ; 0x60 -#include - -static void usb_request( - usb_endpoint_t* const endpoint, - const usb_transfer_stage_t stage) -{ -2000de4a: 1c04 adds r4, r0, #0 - usb_request_status_t status = USB_REQUEST_STATUS_STALL; - usb_request_handler_fn handler = 0; - - switch( endpoint->setup.request_type & USB_SETUP_REQUEST_TYPE_mask ) -2000de4c: 4013 ands r3, r2 -2000de4e: 2b40 cmp r3, #64 ; 0x40 -2000de50: d00f beq.n 2000de72 -2000de52: d806 bhi.n 2000de62 -2000de54: 2b00 cmp r3, #0 -2000de56: d009 beq.n 2000de6c -2000de58: 2b20 cmp r3, #32 -2000de5a: d112 bne.n 2000de82 - case USB_SETUP_REQUEST_TYPE_STANDARD: - handler = usb_request_handlers.standard; - break; - - case USB_SETUP_REQUEST_TYPE_CLASS: - handler = usb_request_handlers.class; -2000de5c: 480b ldr r0, [pc, #44] ; (2000de8c ) -2000de5e: 6842 ldr r2, [r0, #4] - break; -2000de60: e009 b.n 2000de76 - const usb_transfer_stage_t stage) -{ - usb_request_status_t status = USB_REQUEST_STATUS_STALL; - usb_request_handler_fn handler = 0; - - switch( endpoint->setup.request_type & USB_SETUP_REQUEST_TYPE_mask ) -2000de62: 2b60 cmp r3, #96 ; 0x60 -2000de64: d10d bne.n 2000de82 - case USB_SETUP_REQUEST_TYPE_VENDOR: - handler = usb_request_handlers.vendor; - break; - - case USB_SETUP_REQUEST_TYPE_RESERVED: - handler = usb_request_handlers.reserved; -2000de66: 4b09 ldr r3, [pc, #36] ; (2000de8c ) -2000de68: 68da ldr r2, [r3, #12] - break; -2000de6a: e004 b.n 2000de76 - usb_request_handler_fn handler = 0; - - switch( endpoint->setup.request_type & USB_SETUP_REQUEST_TYPE_mask ) - { - case USB_SETUP_REQUEST_TYPE_STANDARD: - handler = usb_request_handlers.standard; -2000de6c: 4a07 ldr r2, [pc, #28] ; (2000de8c ) -2000de6e: 6812 ldr r2, [r2, #0] - break; -2000de70: e001 b.n 2000de76 - case USB_SETUP_REQUEST_TYPE_CLASS: - handler = usb_request_handlers.class; - break; - - case USB_SETUP_REQUEST_TYPE_VENDOR: - handler = usb_request_handlers.vendor; -2000de72: 4806 ldr r0, [pc, #24] ; (2000de8c ) -2000de74: 6882 ldr r2, [r0, #8] - case USB_SETUP_REQUEST_TYPE_RESERVED: - handler = usb_request_handlers.reserved; - break; - } - - if( handler ) { -2000de76: 2a00 cmp r2, #0 -2000de78: d003 beq.n 2000de82 - status = handler(endpoint, stage); -2000de7a: 1c20 adds r0, r4, #0 -2000de7c: 4790 blx r2 - } - - if( status != USB_REQUEST_STATUS_OK ) { -2000de7e: 2800 cmp r0, #0 -2000de80: d002 beq.n 2000de88 - // USB 2.0 section 9.2.7 "Request Error" - usb_endpoint_stall(endpoint); -2000de82: 1c20 adds r0, r4, #0 -2000de84: f7ff fd6e bl 2000d964 - } -} -2000de88: bd10 pop {r4, pc} -2000de8a: 46c0 nop ; (mov r8, r8) -2000de8c: 2000e97c .word 0x2000e97c - -2000de90 : - -void usb_setup_complete(usb_endpoint_t* const endpoint) -{ -2000de90: b508 push {r3, lr} - usb_request(endpoint, USB_TRANSFER_STAGE_SETUP); -2000de92: 2100 movs r1, #0 -2000de94: f7ff ffd6 bl 2000de44 -} -2000de98: bd08 pop {r3, pc} - -2000de9a : - -void usb_control_out_complete(usb_endpoint_t* const endpoint) -{ -2000de9a: b510 push {r4, lr} - const bool device_to_host = - endpoint->setup.request_type >> USB_SETUP_REQUEST_TYPE_DATA_TRANSFER_DIRECTION_shift; -2000de9c: 7803 ldrb r3, [r0, #0] -{ - usb_request(endpoint, USB_TRANSFER_STAGE_SETUP); -} - -void usb_control_out_complete(usb_endpoint_t* const endpoint) -{ -2000de9e: 1c04 adds r4, r0, #0 - const bool device_to_host = - endpoint->setup.request_type >> USB_SETUP_REQUEST_TYPE_DATA_TRANSFER_DIRECTION_shift; - if( device_to_host ) { -2000dea0: 09da lsrs r2, r3, #7 - usb_request(endpoint, USB_TRANSFER_STAGE_STATUS); -2000dea2: 2102 movs r1, #2 - -void usb_control_out_complete(usb_endpoint_t* const endpoint) -{ - const bool device_to_host = - endpoint->setup.request_type >> USB_SETUP_REQUEST_TYPE_DATA_TRANSFER_DIRECTION_shift; - if( device_to_host ) { -2000dea4: 2a00 cmp r2, #0 -2000dea6: d100 bne.n 2000deaa - usb_request(endpoint, USB_TRANSFER_STAGE_STATUS); - } else { - usb_request(endpoint, USB_TRANSFER_STAGE_DATA); -2000dea8: 2101 movs r1, #1 -2000deaa: f7ff ffcb bl 2000de44 - } - usb_queue_transfer_complete(endpoint); -2000deae: 1c20 adds r0, r4, #0 -2000deb0: f7ff ffad bl 2000de0e -} -2000deb4: bd10 pop {r4, pc} - -2000deb6 : - -void usb_control_in_complete(usb_endpoint_t* const endpoint) -{ -2000deb6: b510 push {r4, lr} - const bool device_to_host = - endpoint->setup.request_type >> USB_SETUP_REQUEST_TYPE_DATA_TRANSFER_DIRECTION_shift; -2000deb8: 7803 ldrb r3, [r0, #0] - } - usb_queue_transfer_complete(endpoint); -} - -void usb_control_in_complete(usb_endpoint_t* const endpoint) -{ -2000deba: 1c04 adds r4, r0, #0 - const bool device_to_host = - endpoint->setup.request_type >> USB_SETUP_REQUEST_TYPE_DATA_TRANSFER_DIRECTION_shift; - if( device_to_host ) { -2000debc: 09da lsrs r2, r3, #7 - usb_request(endpoint, USB_TRANSFER_STAGE_DATA); -2000debe: 2101 movs r1, #1 - -void usb_control_in_complete(usb_endpoint_t* const endpoint) -{ - const bool device_to_host = - endpoint->setup.request_type >> USB_SETUP_REQUEST_TYPE_DATA_TRANSFER_DIRECTION_shift; - if( device_to_host ) { -2000dec0: 2a00 cmp r2, #0 -2000dec2: d100 bne.n 2000dec6 - usb_request(endpoint, USB_TRANSFER_STAGE_DATA); - } else { - usb_request(endpoint, USB_TRANSFER_STAGE_STATUS); -2000dec4: 2102 movs r1, #2 -2000dec6: f7ff ffbd bl 2000de44 - } - usb_queue_transfer_complete(endpoint); -2000deca: 1c20 adds r0, r4, #0 -2000decc: f7ff ff9f bl 2000de0e -} -2000ded0: bd10 pop {r4, pc} - -2000ded2 : -} - -static usb_request_status_t usb_send_descriptor( - usb_endpoint_t* const endpoint, - const uint8_t* const descriptor_data) -{ -2000ded2: b510 push {r4, lr} -2000ded4: 1c04 adds r4, r0, #0 - const uint32_t setup_length = endpoint->setup.length; -2000ded6: 88c3 ldrh r3, [r0, #6] - uint32_t descriptor_length = descriptor_data[0]; - if ( ( descriptor_data[1] == USB_DESCRIPTOR_TYPE_CONFIGURATION ) || -2000ded8: 7848 ldrb r0, [r1, #1] -static usb_request_status_t usb_send_descriptor( - usb_endpoint_t* const endpoint, - const uint8_t* const descriptor_data) -{ - const uint32_t setup_length = endpoint->setup.length; - uint32_t descriptor_length = descriptor_data[0]; -2000deda: 780a ldrb r2, [r1, #0] - if ( ( descriptor_data[1] == USB_DESCRIPTOR_TYPE_CONFIGURATION ) || -2000dedc: 2802 cmp r0, #2 -2000dede: d001 beq.n 2000dee4 -2000dee0: 2807 cmp r0, #7 -2000dee2: d103 bne.n 2000deec - ( descriptor_data[1] == USB_DESCRIPTOR_TYPE_OTHER_SPEED_CONFIGURATION ) ) - { - descriptor_length = (descriptor_data[3] << 8) | descriptor_data[2]; -2000dee4: 78ca ldrb r2, [r1, #3] -2000dee6: 7888 ldrb r0, [r1, #2] -2000dee8: 0212 lsls r2, r2, #8 -2000deea: 4302 orrs r2, r0 - } - // We cast the const away but this shouldn't be a problem as this is a write transfer - usb_transfer_schedule_block( -2000deec: 69a0 ldr r0, [r4, #24] -2000deee: 429a cmp r2, r3 -2000def0: d900 bls.n 2000def4 -2000def2: 1c1a adds r2, r3, #0 -2000def4: f7ff ff78 bl 2000dde8 - endpoint->in, - (uint8_t* const) descriptor_data, - (setup_length > descriptor_length) ? descriptor_length : setup_length); - usb_transfer_schedule_ack(endpoint->out); -2000def8: 69e0 ldr r0, [r4, #28] -2000defa: f7ff ff82 bl 2000de02 - return USB_REQUEST_STATUS_OK; -} -2000defe: 2000 movs r0, #0 -2000df00: bd10 pop {r4, pc} - -2000df02 : -static usb_request_status_t usb_send_descriptor_config( - usb_endpoint_t* const endpoint, - usb_speed_t speed, - const uint8_t config_num) -{ - usb_configuration_t** config = *(endpoint->device->configurations); -2000df02: 6943 ldr r3, [r0, #20] - -static usb_request_status_t usb_send_descriptor_config( - usb_endpoint_t* const endpoint, - usb_speed_t speed, - const uint8_t config_num) -{ -2000df04: b570 push {r4, r5, r6, lr} -2000df06: 68dd ldr r5, [r3, #12] - usb_configuration_t** config = *(endpoint->device->configurations); - unsigned int i = 0; -2000df08: 2400 movs r4, #0 - for( ; *config != NULL; config++ ) -2000df0a: cd08 ldmia r5!, {r3} -2000df0c: 2b00 cmp r3, #0 -2000df0e: d00a beq.n 2000df26 - { - if( (*config)->speed == speed) -2000df10: 7a1e ldrb r6, [r3, #8] -2000df12: 428e cmp r6, r1 -2000df14: d1f9 bne.n 2000df0a - { - if (i == config_num) -2000df16: 4294 cmp r4, r2 -2000df18: d103 bne.n 2000df22 - { - return usb_send_descriptor(endpoint, (*config)->descriptor); -2000df1a: 6819 ldr r1, [r3, #0] -2000df1c: f7ff ffd9 bl 2000ded2 -2000df20: e002 b.n 2000df28 - } else { - i++; -2000df22: 3401 adds r4, #1 -2000df24: e7f1 b.n 2000df0a - } - } - } - return USB_REQUEST_STATUS_STALL; -2000df26: 2001 movs r0, #1 -} -2000df28: bd70 pop {r4, r5, r6, pc} - -2000df2a : - return (endpoint_address & 0xF); -} - -const uint8_t* usb_endpoint_descriptor(const usb_endpoint_t* const endpoint) -{ - const usb_configuration_t* const configuration = endpoint->device->configuration; -2000df2a: 6943 ldr r3, [r0, #20] -{ - return (endpoint_address & 0xF); -} - -const uint8_t* usb_endpoint_descriptor(const usb_endpoint_t* const endpoint) -{ -2000df2c: b510 push {r4, lr} - const usb_configuration_t* const configuration = endpoint->device->configuration; -2000df2e: 691b ldr r3, [r3, #16] -{ - return (endpoint_address & 0xF); -} - -const uint8_t* usb_endpoint_descriptor(const usb_endpoint_t* const endpoint) -{ -2000df30: 1c02 adds r2, r0, #0 - const usb_configuration_t* const configuration = endpoint->device->configuration; - if( configuration ) -2000df32: 2b00 cmp r3, #0 -2000df34: d00c beq.n 2000df50 - { - const uint8_t* descriptor = configuration->descriptor; -2000df36: 6818 ldr r0, [r3, #0] - while( descriptor[0] != 0 ) -2000df38: 7803 ldrb r3, [r0, #0] -2000df3a: 2b00 cmp r3, #0 -2000df3c: d008 beq.n 2000df50 - { - if( descriptor[1] == USB_DESCRIPTOR_TYPE_ENDPOINT ) -2000df3e: 7841 ldrb r1, [r0, #1] -2000df40: 2905 cmp r1, #5 -2000df42: d103 bne.n 2000df4c - { - if( descriptor[2] == endpoint->address ) { -2000df44: 7881 ldrb r1, [r0, #2] -2000df46: 6914 ldr r4, [r2, #16] -2000df48: 42a1 cmp r1, r4 -2000df4a: d002 beq.n 2000df52 - return descriptor; - } - } - descriptor += descriptor[0]; -2000df4c: 18c0 adds r0, r0, r3 -2000df4e: e7f3 b.n 2000df38 - } - } - - return 0; -2000df50: 1c18 adds r0, r3, #0 -} -2000df52: bd10 pop {r4, pc} - -2000df54 : - -uint_fast16_t usb_endpoint_descriptor_max_packet_size(const uint8_t* const endpoint_descriptor) -{ - return (endpoint_descriptor[5] << 8) | endpoint_descriptor[4]; -2000df54: 7942 ldrb r2, [r0, #5] -2000df56: 7903 ldrb r3, [r0, #4] -2000df58: 0211 lsls r1, r2, #8 -2000df5a: 1c08 adds r0, r1, #0 -2000df5c: 4318 orrs r0, r3 -} -2000df5e: 4770 bx lr - -2000df60 : - -usb_transfer_type_t usb_endpoint_descriptor_transfer_type(const uint8_t* const endpoint_descriptor) -{ - return (endpoint_descriptor[3] & 0x3); -2000df60: 78c0 ldrb r0, [r0, #3] -2000df62: 2303 movs r3, #3 -2000df64: 4018 ands r0, r3 -} -2000df66: 4770 bx lr - -2000df68 : - -void (*usb_configuration_changed_cb)(usb_device_t* const) = NULL; - -void usb_set_configuration_changed_cb(void (*callback)(usb_device_t* const)) -{ - usb_configuration_changed_cb = callback; -2000df68: 4b01 ldr r3, [pc, #4] ; (2000df70 ) -2000df6a: 6018 str r0, [r3, #0] -} -2000df6c: 4770 bx lr -2000df6e: 46c0 nop ; (mov r8, r8) -2000df70: 2000f374 .word 0x2000f374 - -2000df74 : - -bool usb_set_configuration( - usb_device_t* const device, - const uint_fast8_t configuration_number) -{ -2000df74: b570 push {r4, r5, r6, lr} -2000df76: 1c04 adds r4, r0, #0 -2000df78: 1e0d subs r5, r1, #0 - const usb_configuration_t* new_configuration = 0; - if( configuration_number != 0 ) -2000df7a: d00e beq.n 2000df9a - { - // Locate requested configuration. - if( device->configurations ) -2000df7c: 68c6 ldr r6, [r0, #12] -2000df7e: 2e00 cmp r6, #0 -2000df80: d018 beq.n 2000dfb4 - { - usb_configuration_t** configurations = *(device->configurations); - uint32_t i = 0; - const usb_speed_t usb_speed_current = usb_speed(device); -2000df82: f7ff fcff bl 2000d984 - while( configurations[i] ) -2000df86: ce08 ldmia r6!, {r3} -2000df88: 2b00 cmp r3, #0 -2000df8a: d013 beq.n 2000dfb4 - { - if( (configurations[i]->speed == usb_speed_current) && -2000df8c: 7a1a ldrb r2, [r3, #8] -2000df8e: 4282 cmp r2, r0 -2000df90: d1f9 bne.n 2000df86 -2000df92: 6859 ldr r1, [r3, #4] -2000df94: 42a9 cmp r1, r5 -2000df96: d1f6 bne.n 2000df86 -2000df98: e000 b.n 2000df9c - -bool usb_set_configuration( - usb_device_t* const device, - const uint_fast8_t configuration_number) -{ - const usb_configuration_t* new_configuration = 0; -2000df9a: 1c0b adds r3, r1, #0 - if( new_configuration == 0 ) { - return false; - } - } - - if( new_configuration != device->configuration ) { -2000df9c: 6920 ldr r0, [r4, #16] -2000df9e: 4283 cmp r3, r0 -2000dfa0: d000 beq.n 2000dfa4 - // Configuration changed. - device->configuration = new_configuration; -2000dfa2: 6123 str r3, [r4, #16] - } - - if (usb_configuration_changed_cb) -2000dfa4: 4b04 ldr r3, [pc, #16] ; (2000dfb8 ) -2000dfa6: 681d ldr r5, [r3, #0] -2000dfa8: 2d00 cmp r5, #0 -2000dfaa: d001 beq.n 2000dfb0 - usb_configuration_changed_cb(device); -2000dfac: 1c20 adds r0, r4, #0 -2000dfae: 47a8 blx r5 - - return true; -2000dfb0: 2001 movs r0, #1 -2000dfb2: e000 b.n 2000dfb6 - } - } - - // Requested configuration not found: request error. - if( new_configuration == 0 ) { - return false; -2000dfb4: 2000 movs r0, #0 - - if (usb_configuration_changed_cb) - usb_configuration_changed_cb(device); - - return true; -} -2000dfb6: bd70 pop {r4, r5, r6, pc} -2000dfb8: 2000f374 .word 0x2000f374 - -2000dfbc : -/*********************************************************************/ - -usb_request_status_t usb_standard_request( - usb_endpoint_t* const endpoint, - const usb_transfer_stage_t stage) -{ -2000dfbc: b5f8 push {r3, r4, r5, r6, r7, lr} -2000dfbe: 1c04 adds r4, r0, #0 - switch( endpoint->setup.request ) -2000dfc0: 7840 ldrb r0, [r0, #1] -/*********************************************************************/ - -usb_request_status_t usb_standard_request( - usb_endpoint_t* const endpoint, - const usb_transfer_stage_t stage) -{ -2000dfc2: 1c0e adds r6, r1, #0 - switch( endpoint->setup.request ) -2000dfc4: 280b cmp r0, #11 -2000dfc6: d900 bls.n 2000dfca -2000dfc8: e0ea b.n 2000e1a0 -2000dfca: f000 fb93 bl 2000e6f4 <__gnu_thumb1_case_uqi> -2000dfce: 2a06 .short 0x2a06 -2000dfd0: afe93ee9 .word 0xafe93ee9 -2000dfd4: bacce970 .word 0xbacce970 -2000dfd8: 6353 .short 0x6353 - { - case USB_STANDARD_REQUEST_GET_STATUS: - return usb_standard_request_get_status(endpoint, stage); -2000dfda: 2500 movs r5, #0 -} -static usb_request_status_t usb_standard_request_get_status( - usb_endpoint_t* const endpoint, - const usb_transfer_stage_t stage) -{ - if (stage == USB_TRANSFER_STAGE_SETUP) -2000dfdc: 42a9 cmp r1, r5 -2000dfde: d000 beq.n 2000dfe2 -2000dfe0: e0df b.n 2000e1a2 - { - switch (endpoint->setup.request_type & USB_SETUP_REQUEST_TYPE_RECIPIENT_mask) -2000dfe2: 7822 ldrb r2, [r4, #0] -2000dfe4: 211f movs r1, #31 -2000dfe6: 400a ands r2, r1 -2000dfe8: 2a01 cmp r2, #1 -2000dfea: d016 beq.n 2000e01a -2000dfec: 42aa cmp r2, r5 -2000dfee: d011 beq.n 2000e014 -2000dff0: 2a02 cmp r2, #2 -2000dff2: d000 beq.n 2000dff6 -2000dff4: e0d5 b.n 2000e1a2 -uint8_t USB_CurrentInterface = 0; //Bit 0 = SelfPowerred, Bit=1 Remote Wakeup -uint16_t USB_EpStatus; - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000dff6: 88a7 ldrh r7, [r4, #4] - } -} -static usb_request_status_t usb_standard_request_get_status_endpoint(usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->setup.index); - USB_EpStatus = (USB0_ENDPTCTRL(endpoint_number) & (USB0_ENDPTCTRL_RXS | USB0_ENDPTCTRL_TXS)) ? 1 : 0; -2000dff8: 486b ldr r0, [pc, #428] ; (2000e1a8 ) -uint8_t USB_CurrentInterface = 0; //Bit 0 = SelfPowerred, Bit=1 Remote Wakeup -uint16_t USB_EpStatus; - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000dffa: 230f movs r3, #15 -2000dffc: 403b ands r3, r7 - } -} -static usb_request_status_t usb_standard_request_get_status_endpoint(usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->setup.index); - USB_EpStatus = (USB0_ENDPTCTRL(endpoint_number) & (USB0_ENDPTCTRL_RXS | USB0_ENDPTCTRL_TXS)) ? 1 : 0; -2000dffe: 181e adds r6, r3, r0 -2000e000: 00b1 lsls r1, r6, #2 -2000e002: 680f ldr r7, [r1, #0] -2000e004: 4b69 ldr r3, [pc, #420] ; (2000e1ac ) -2000e006: 496a ldr r1, [pc, #424] ; (2000e1b0 ) -2000e008: 403b ands r3, r7 -2000e00a: 1e58 subs r0, r3, #1 -2000e00c: 4183 sbcs r3, r0 -2000e00e: 800b strh r3, [r1, #0] - usb_transfer_schedule_block(endpoint->in, &USB_EpStatus, 2); -2000e010: 69a0 ldr r0, [r4, #24] -2000e012: e03b b.n 2000e08c - if (stage == USB_TRANSFER_STAGE_SETUP) - { - switch (endpoint->setup.request_type & USB_SETUP_REQUEST_TYPE_RECIPIENT_mask) - { - case USB_SETUP_REQUEST_TYPE_RECIPIENT_DEVICE: - usb_transfer_schedule_block(endpoint->in, &USB_DeviceStatus, 2); -2000e014: 69a0 ldr r0, [r4, #24] -2000e016: 4967 ldr r1, [pc, #412] ; (2000e1b4 ) -2000e018: e001 b.n 2000e01e - usb_transfer_schedule_ack(endpoint->out); - return USB_REQUEST_STATUS_OK; - break; - case USB_SETUP_REQUEST_TYPE_RECIPIENT_INTERFACE: - usb_transfer_schedule_block(endpoint->in, &USB_InterfaceStatus, 2); -2000e01a: 69a0 ldr r0, [r4, #24] -2000e01c: 4966 ldr r1, [pc, #408] ; (2000e1b8 ) -2000e01e: 2202 movs r2, #2 -2000e020: e034 b.n 2000e08c - const usb_transfer_stage_t stage) -{ - switch( endpoint->setup.request ) - { - case USB_STANDARD_REQUEST_GET_STATUS: - return usb_standard_request_get_status(endpoint, stage); -2000e022: 2500 movs r5, #0 - -static usb_request_status_t usb_standard_request_clear_feature( - usb_endpoint_t* const endpoint, - const usb_transfer_stage_t stage) -{ - if (stage == USB_TRANSFER_STAGE_SETUP) -2000e024: 42a9 cmp r1, r5 -2000e026: d000 beq.n 2000e02a -2000e028: e0bb b.n 2000e1a2 - { - switch (endpoint->setup.request_type & USB_SETUP_REQUEST_TYPE_RECIPIENT_mask) -2000e02a: 7822 ldrb r2, [r4, #0] -2000e02c: 211f movs r1, #31 -2000e02e: 4011 ands r1, r2 -2000e030: 2902 cmp r1, #2 -2000e032: d000 beq.n 2000e036 -2000e034: e0b5 b.n 2000e1a2 -uint8_t USB_CurrentInterface = 0; //Bit 0 = SelfPowerred, Bit=1 Remote Wakeup -uint16_t USB_EpStatus; - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000e036: 88a7 ldrh r7, [r4, #4] - -static usb_request_status_t usb_standard_request_clear_feature_endpoint( - usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->setup.index); - USB0_ENDPTCTRL(endpoint_number) &= ~(USB0_ENDPTCTRL_RXS | USB0_ENDPTCTRL_TXS); -2000e038: 485b ldr r0, [pc, #364] ; (2000e1a8 ) -uint8_t USB_CurrentInterface = 0; //Bit 0 = SelfPowerred, Bit=1 Remote Wakeup -uint16_t USB_EpStatus; - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000e03a: 230f movs r3, #15 -2000e03c: 403b ands r3, r7 - -static usb_request_status_t usb_standard_request_clear_feature_endpoint( - usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->setup.index); - USB0_ENDPTCTRL(endpoint_number) &= ~(USB0_ENDPTCTRL_RXS | USB0_ENDPTCTRL_TXS); -2000e03e: 181e adds r6, r3, r0 -2000e040: 00b7 lsls r7, r6, #2 -2000e042: 683a ldr r2, [r7, #0] -2000e044: 485d ldr r0, [pc, #372] ; (2000e1bc ) -2000e046: 4010 ands r0, r2 -2000e048: e012 b.n 2000e070 - const usb_transfer_stage_t stage) -{ - switch( endpoint->setup.request ) - { - case USB_STANDARD_REQUEST_GET_STATUS: - return usb_standard_request_get_status(endpoint, stage); -2000e04a: 2500 movs r5, #0 - -static usb_request_status_t usb_standard_request_set_feature( - usb_endpoint_t* const endpoint, - const usb_transfer_stage_t stage) -{ - if (stage == USB_TRANSFER_STAGE_SETUP) -2000e04c: 42a9 cmp r1, r5 -2000e04e: d000 beq.n 2000e052 -2000e050: e0a7 b.n 2000e1a2 - { - switch (endpoint->setup.request_type & USB_SETUP_REQUEST_TYPE_RECIPIENT_mask) -2000e052: 7827 ldrb r7, [r4, #0] -2000e054: 201f movs r0, #31 -2000e056: 4038 ands r0, r7 -2000e058: 2802 cmp r0, #2 -2000e05a: d000 beq.n 2000e05e -2000e05c: e0a1 b.n 2000e1a2 -uint8_t USB_CurrentInterface = 0; //Bit 0 = SelfPowerred, Bit=1 Remote Wakeup -uint16_t USB_EpStatus; - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000e05e: 88a6 ldrh r6, [r4, #4] -2000e060: 220f movs r2, #15 - -static usb_request_status_t usb_standard_request_set_feature_endpoint( - usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->setup.index); - USB0_ENDPTCTRL(endpoint_number) |= (USB0_ENDPTCTRL_RXS | USB0_ENDPTCTRL_TXS); -2000e062: 4951 ldr r1, [pc, #324] ; (2000e1a8 ) -uint8_t USB_CurrentInterface = 0; //Bit 0 = SelfPowerred, Bit=1 Remote Wakeup -uint16_t USB_EpStatus; - -static uint_fast8_t usb_endpoint_number(const uint_fast8_t endpoint_address) -{ - return (endpoint_address & 0xF); -2000e064: 4032 ands r2, r6 - -static usb_request_status_t usb_standard_request_set_feature_endpoint( - usb_endpoint_t* const endpoint) -{ - const uint_fast8_t endpoint_number = usb_endpoint_number(endpoint->setup.index); - USB0_ENDPTCTRL(endpoint_number) |= (USB0_ENDPTCTRL_RXS | USB0_ENDPTCTRL_TXS); -2000e066: 1853 adds r3, r2, r1 -2000e068: 009f lsls r7, r3, #2 -2000e06a: 6838 ldr r0, [r7, #0] -2000e06c: 4e4f ldr r6, [pc, #316] ; (2000e1ac ) -2000e06e: 4330 orrs r0, r6 -2000e070: 6038 str r0, [r7, #0] -2000e072: e018 b.n 2000e0a6 - const usb_transfer_stage_t stage) -{ - switch( endpoint->setup.request ) - { - case USB_STANDARD_REQUEST_GET_STATUS: - return usb_standard_request_get_status(endpoint, stage); -2000e074: 2500 movs r5, #0 - -static usb_request_status_t usb_standard_request_get_interface( - usb_endpoint_t* const endpoint, - const usb_transfer_stage_t stage) -{ - if (stage == USB_TRANSFER_STAGE_SETUP) -2000e076: 42a9 cmp r1, r5 -2000e078: d000 beq.n 2000e07c -2000e07a: e092 b.n 2000e1a2 - { - switch (endpoint->setup.request_type & USB_SETUP_REQUEST_TYPE_RECIPIENT_mask) -2000e07c: 7822 ldrb r2, [r4, #0] -2000e07e: 201f movs r0, #31 -2000e080: 4002 ands r2, r0 -2000e082: 2a01 cmp r2, #1 -2000e084: d000 beq.n 2000e088 -2000e086: e08c b.n 2000e1a2 - { - case USB_SETUP_REQUEST_TYPE_RECIPIENT_DEVICE: - break; - - case USB_SETUP_REQUEST_TYPE_RECIPIENT_INTERFACE: - usb_transfer_schedule_block(endpoint->in, &USB_CurrentInterface, 1); -2000e088: 69a0 ldr r0, [r4, #24] -2000e08a: 494d ldr r1, [pc, #308] ; (2000e1c0 ) -2000e08c: f7ff feac bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000e090: 69e0 ldr r0, [r4, #28] -2000e092: e009 b.n 2000e0a8 - const usb_transfer_stage_t stage) -{ - switch( endpoint->setup.request ) - { - case USB_STANDARD_REQUEST_GET_STATUS: - return usb_standard_request_get_status(endpoint, stage); -2000e094: 2500 movs r5, #0 - -static usb_request_status_t usb_standard_request_set_interface( - usb_endpoint_t* const endpoint, - const usb_transfer_stage_t stage) -{ - if (stage == USB_TRANSFER_STAGE_SETUP) -2000e096: 42a9 cmp r1, r5 -2000e098: d000 beq.n 2000e09c -2000e09a: e082 b.n 2000e1a2 - { - switch (endpoint->setup.request_type & USB_SETUP_REQUEST_TYPE_RECIPIENT_mask) -2000e09c: 7822 ldrb r2, [r4, #0] -2000e09e: 231f movs r3, #31 -2000e0a0: 4013 ands r3, r2 -2000e0a2: 2b01 cmp r3, #1 -2000e0a4: d17d bne.n 2000e1a2 - { - case USB_SETUP_REQUEST_TYPE_RECIPIENT_DEVICE: - break; - case USB_SETUP_REQUEST_TYPE_RECIPIENT_INTERFACE: - usb_transfer_schedule_ack(endpoint->in); -2000e0a6: 69a0 ldr r0, [r4, #24] -2000e0a8: f7ff feab bl 2000de02 -2000e0ac: e079 b.n 2000e1a2 - -static usb_request_status_t usb_standard_request_get_descriptor( - usb_endpoint_t* const endpoint, - const usb_transfer_stage_t stage) -{ - switch( stage ) -2000e0ae: 2900 cmp r1, #0 -2000e0b0: d15b bne.n 2000e16a -} - -static usb_request_status_t usb_standard_request_get_descriptor_setup( - usb_endpoint_t* const endpoint) -{ - switch( endpoint->setup.value_h ) -2000e0b2: 78e0 ldrb r0, [r4, #3] -2000e0b4: 3801 subs r0, #1 -2000e0b6: 2806 cmp r0, #6 -2000e0b8: d872 bhi.n 2000e1a0 -2000e0ba: f000 fb1b bl 2000e6f4 <__gnu_thumb1_case_uqi> -2000e0be: 0704 .short 0x0704 -2000e0c0: 10717121 .word 0x10717121 -2000e0c4: 13 .byte 0x13 -2000e0c5: 00 .byte 0x00 - { - case USB_DESCRIPTOR_TYPE_DEVICE: - return usb_send_descriptor(endpoint, endpoint->device->descriptor); -2000e0c6: 6961 ldr r1, [r4, #20] -2000e0c8: 6809 ldr r1, [r1, #0] -2000e0ca: e023 b.n 2000e114 - - case USB_DESCRIPTOR_TYPE_CONFIGURATION: - // TODO: Duplicated code. Refactor. - if( usb_speed(endpoint->device) == USB_SPEED_HIGH ) { -2000e0cc: 6960 ldr r0, [r4, #20] -2000e0ce: f7ff fc59 bl 2000d984 -2000e0d2: 78a2 ldrb r2, [r4, #2] -2000e0d4: 1c01 adds r1, r0, #0 - return usb_send_descriptor_config(endpoint, USB_SPEED_HIGH, endpoint->setup.value_l); -2000e0d6: 1c20 adds r0, r4, #0 - case USB_DESCRIPTOR_TYPE_DEVICE: - return usb_send_descriptor(endpoint, endpoint->device->descriptor); - - case USB_DESCRIPTOR_TYPE_CONFIGURATION: - // TODO: Duplicated code. Refactor. - if( usb_speed(endpoint->device) == USB_SPEED_HIGH ) { -2000e0d8: 2902 cmp r1, #2 -2000e0da: d10a bne.n 2000e0f2 -2000e0dc: e00d b.n 2000e0fa - } else { - return usb_send_descriptor_config(endpoint, USB_SPEED_FULL, endpoint->setup.value_l); - } - - case USB_DESCRIPTOR_TYPE_DEVICE_QUALIFIER: - return usb_send_descriptor(endpoint, endpoint->device->qualifier_descriptor); -2000e0de: 6963 ldr r3, [r4, #20] -2000e0e0: 6899 ldr r1, [r3, #8] -2000e0e2: e017 b.n 2000e114 - - case USB_DESCRIPTOR_TYPE_OTHER_SPEED_CONFIGURATION: - // TODO: Duplicated code. Refactor. - if( usb_speed(endpoint->device) == USB_SPEED_HIGH ) { -2000e0e4: 6960 ldr r0, [r4, #20] -2000e0e6: f7ff fc4d bl 2000d984 -2000e0ea: 78a2 ldrb r2, [r4, #2] -2000e0ec: 2802 cmp r0, #2 -2000e0ee: d102 bne.n 2000e0f6 - return usb_send_descriptor_config(endpoint, USB_SPEED_FULL, endpoint->setup.value_l); -2000e0f0: 1c20 adds r0, r4, #0 -2000e0f2: 2101 movs r1, #1 -2000e0f4: e001 b.n 2000e0fa - } else { - return usb_send_descriptor_config(endpoint, USB_SPEED_HIGH, endpoint->setup.value_l); -2000e0f6: 1c20 adds r0, r4, #0 -2000e0f8: 2102 movs r1, #2 -2000e0fa: f7ff ff02 bl 2000df02 -2000e0fe: e00c b.n 2000e11a - return USB_REQUEST_STATUS_OK; -} - -static usb_request_status_t usb_send_descriptor_string(usb_endpoint_t* const endpoint) -{ - if ( endpoint->setup.value_l == 0xee) -2000e100: 78a0 ldrb r0, [r4, #2] -2000e102: 28ee cmp r0, #238 ; 0xee -2000e104: d102 bne.n 2000e10c - { - return usb_send_descriptor(endpoint, usb_descriptor_MSDescriptor); -2000e106: 1c20 adds r0, r4, #0 -2000e108: 492e ldr r1, [pc, #184] ; (2000e1c4 ) -2000e10a: e004 b.n 2000e116 - } - else - { - uint_fast8_t index = endpoint->setup.value_l; - for( uint_fast8_t i=0; endpoint->device->descriptor_strings[i] != 0; i++ ) -2000e10c: 6967 ldr r7, [r4, #20] -2000e10e: 2600 movs r6, #0 -2000e110: 687d ldr r5, [r7, #4] -2000e112: e007 b.n 2000e124 - { - if( i == index ) { - return usb_send_descriptor(endpoint, endpoint->device->descriptor_strings[i]); -2000e114: 1c20 adds r0, r4, #0 -2000e116: f7ff fedc bl 2000ded2 -2000e11a: 1c05 adds r5, r0, #0 -2000e11c: e041 b.n 2000e1a2 - else - { - uint_fast8_t index = endpoint->setup.value_l; - for( uint_fast8_t i=0; endpoint->device->descriptor_strings[i] != 0; i++ ) - { - if( i == index ) { -2000e11e: 4286 cmp r6, r0 -2000e120: d0f8 beq.n 2000e114 - return usb_send_descriptor(endpoint, usb_descriptor_MSDescriptor); - } - else - { - uint_fast8_t index = endpoint->setup.value_l; - for( uint_fast8_t i=0; endpoint->device->descriptor_strings[i] != 0; i++ ) -2000e122: 3601 adds r6, #1 -2000e124: cd02 ldmia r5!, {r1} -2000e126: 2900 cmp r1, #0 -2000e128: d1f9 bne.n 2000e11e -2000e12a: e039 b.n 2000e1a0 - -static usb_request_status_t usb_standard_request_set_address( - usb_endpoint_t* const endpoint, - const usb_transfer_stage_t stage) -{ - switch( stage ) -2000e12c: 2900 cmp r1, #0 -2000e12e: d11c bne.n 2000e16a -/*********************************************************************/ - -static usb_request_status_t usb_standard_request_set_address_setup( - usb_endpoint_t* const endpoint) -{ - usb_set_address_deferred(endpoint->device, endpoint->setup.value_l); -2000e130: 78a1 ldrb r1, [r4, #2] -2000e132: 6960 ldr r0, [r4, #20] -2000e134: f7ff fc48 bl 2000d9c8 - usb_transfer_schedule_ack(endpoint->in); -2000e138: 69a0 ldr r0, [r4, #24] -2000e13a: f7ff fe62 bl 2000de02 - const usb_transfer_stage_t stage) -{ - switch( stage ) - { - case USB_TRANSFER_STAGE_SETUP: - return usb_standard_request_set_address_setup(endpoint); -2000e13e: 1c35 adds r5, r6, #0 -2000e140: e02f b.n 2000e1a2 - -static usb_request_status_t usb_standard_request_set_configuration( - usb_endpoint_t* const endpoint, - const usb_transfer_stage_t stage) -{ - switch( stage ) -2000e142: 2900 cmp r1, #0 -2000e144: d111 bne.n 2000e16a -/*********************************************************************/ - -static usb_request_status_t usb_standard_request_set_configuration_setup( - usb_endpoint_t* const endpoint) -{ - const uint8_t usb_configuration = endpoint->setup.value_l; -2000e146: 78a7 ldrb r7, [r4, #2] - if( usb_set_configuration(endpoint->device, usb_configuration) ) -2000e148: 6960 ldr r0, [r4, #20] -2000e14a: 1c39 adds r1, r7, #0 -2000e14c: f7ff ff12 bl 2000df74 - usb_transfer_schedule_ack(endpoint->in); - return USB_REQUEST_STATUS_OK; - } - else - { - return USB_REQUEST_STATUS_STALL; -2000e150: 2501 movs r5, #1 - -static usb_request_status_t usb_standard_request_set_configuration_setup( - usb_endpoint_t* const endpoint) -{ - const uint8_t usb_configuration = endpoint->setup.value_l; - if( usb_set_configuration(endpoint->device, usb_configuration) ) -2000e152: 2800 cmp r0, #0 -2000e154: d025 beq.n 2000e1a2 - { - if( usb_configuration == 0 ) -2000e156: 2f00 cmp r7, #0 -2000e158: d103 bne.n 2000e162 - { - // TODO: Should this be done immediately? - usb_set_address_immediate(endpoint->device, 0); -2000e15a: 6960 ldr r0, [r4, #20] -2000e15c: 1c31 adds r1, r6, #0 -2000e15e: f7ff fc27 bl 2000d9b0 - } - usb_transfer_schedule_ack(endpoint->in); -2000e162: 69a0 ldr r0, [r4, #24] -2000e164: e018 b.n 2000e198 - -static usb_request_status_t usb_standard_request_get_configuration( - usb_endpoint_t* const endpoint, - const usb_transfer_stage_t stage) -{ - switch( stage ) -2000e166: 2900 cmp r1, #0 -2000e168: d004 beq.n 2000e174 - case USB_TRANSFER_STAGE_SETUP: - return usb_standard_request_get_configuration_setup(endpoint); - - case USB_TRANSFER_STAGE_DATA: - case USB_TRANSFER_STAGE_STATUS: - return USB_REQUEST_STATUS_OK; -2000e16a: 2202 movs r2, #2 -2000e16c: 42b2 cmp r2, r6 -2000e16e: 419b sbcs r3, r3 -2000e170: 425d negs r5, r3 -2000e172: e016 b.n 2000e1a2 -/*********************************************************************/ - -static usb_request_status_t usb_standard_request_get_configuration_setup( - usb_endpoint_t* const endpoint) -{ - if( endpoint->setup.length == 1 ) -2000e174: 88e1 ldrh r1, [r4, #6] - } - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); - usb_transfer_schedule_ack(endpoint->out); - return USB_REQUEST_STATUS_OK; - } else { - return USB_REQUEST_STATUS_STALL; -2000e176: 2501 movs r5, #1 -/*********************************************************************/ - -static usb_request_status_t usb_standard_request_get_configuration_setup( - usb_endpoint_t* const endpoint) -{ - if( endpoint->setup.length == 1 ) -2000e178: 42a9 cmp r1, r5 -2000e17a: d112 bne.n 2000e1a2 - { - endpoint->buffer[0] = 0; - if( endpoint->device->configuration ) -2000e17c: 6965 ldr r5, [r4, #20] -static usb_request_status_t usb_standard_request_get_configuration_setup( - usb_endpoint_t* const endpoint) -{ - if( endpoint->setup.length == 1 ) - { - endpoint->buffer[0] = 0; -2000e17e: 7226 strb r6, [r4, #8] - if( endpoint->device->configuration ) -2000e180: 692e ldr r6, [r5, #16] -2000e182: 2e00 cmp r6, #0 -2000e184: d001 beq.n 2000e18a - { - endpoint->buffer[0] = endpoint->device->configuration->number; -2000e186: 6872 ldr r2, [r6, #4] -2000e188: 7222 strb r2, [r4, #8] - } - usb_transfer_schedule_block(endpoint->in, &endpoint->buffer, 1); -2000e18a: 1c21 adds r1, r4, #0 -2000e18c: 3108 adds r1, #8 -2000e18e: 69a0 ldr r0, [r4, #24] -2000e190: 2201 movs r2, #1 -2000e192: f7ff fe29 bl 2000dde8 - usb_transfer_schedule_ack(endpoint->out); -2000e196: 69e0 ldr r0, [r4, #28] -2000e198: f7ff fe33 bl 2000de02 - return USB_REQUEST_STATUS_OK; -2000e19c: 2500 movs r5, #0 -2000e19e: e000 b.n 2000e1a2 - - case USB_STANDARD_REQUEST_GET_CONFIGURATION: - return usb_standard_request_get_configuration(endpoint, stage); - - default: - return USB_REQUEST_STATUS_STALL; -2000e1a0: 2501 movs r5, #1 - } -} -2000e1a2: 1c28 adds r0, r5, #0 -2000e1a4: bdf8 pop {r3, r4, r5, r6, r7, pc} -2000e1a6: 46c0 nop ; (mov r8, r8) -2000e1a8: 10001870 .word 0x10001870 -2000e1ac: 00010001 .word 0x00010001 -2000e1b0: 2000fb00 .word 0x2000fb00 -2000e1b4: 2000f37a .word 0x2000f37a -2000e1b8: 2000f378 .word 0x2000f378 -2000e1bc: fffefffe .word 0xfffefffe -2000e1c0: 2000f37c .word 0x2000f37c -2000e1c4: 2000ed41 .word 0x2000ed41 - -2000e1c8 : -/* For pin_conf_normal value see scu.h define SCU_CONF_XXX or Configuration for - * different I/O pins types - */ -void scu_pinmux(scu_grp_pin_t group_pin, uint32_t scu_conf) -{ - MMIO32(group_pin) = scu_conf; -2000e1c8: 6001 str r1, [r0, #0] -} -2000e1ca: 4770 bx lr - -2000e1cc : -#define SFSP_I2C1_SDA_SCL (0x00000001 | SCU_CONF_ZIF_DIS_IN_GLITCH_FILT | SCU_CONF_EZI_EN_IN_BUFFER) - -void i2c0_init(const uint16_t duty_cycle_count) -{ - /* enable input on SCL and SDA pins */ - SCU_SFSI2C0 = SCU_I2C0_NOMINAL; -2000e1cc: 4a06 ldr r2, [pc, #24] ; (2000e1e8 ) -2000e1ce: 4b07 ldr r3, [pc, #28] ; (2000e1ec ) - - I2C0_SCLH = duty_cycle_count; -2000e1d0: 4907 ldr r1, [pc, #28] ; (2000e1f0 ) -#define SFSP_I2C1_SDA_SCL (0x00000001 | SCU_CONF_ZIF_DIS_IN_GLITCH_FILT | SCU_CONF_EZI_EN_IN_BUFFER) - -void i2c0_init(const uint16_t duty_cycle_count) -{ - /* enable input on SCL and SDA pins */ - SCU_SFSI2C0 = SCU_I2C0_NOMINAL; -2000e1d2: 601a str r2, [r3, #0] - - I2C0_SCLH = duty_cycle_count; - I2C0_SCLL = duty_cycle_count; -2000e1d4: 4a07 ldr r2, [pc, #28] ; (2000e1f4 ) -void i2c0_init(const uint16_t duty_cycle_count) -{ - /* enable input on SCL and SDA pins */ - SCU_SFSI2C0 = SCU_I2C0_NOMINAL; - - I2C0_SCLH = duty_cycle_count; -2000e1d6: 6008 str r0, [r1, #0] - I2C0_SCLL = duty_cycle_count; - - /* clear the control bits */ - I2C0_CONCLR = (I2C_CONCLR_AAC | I2C_CONCLR_SIC -2000e1d8: 4b07 ldr r3, [pc, #28] ; (2000e1f8 ) -{ - /* enable input on SCL and SDA pins */ - SCU_SFSI2C0 = SCU_I2C0_NOMINAL; - - I2C0_SCLH = duty_cycle_count; - I2C0_SCLL = duty_cycle_count; -2000e1da: 6010 str r0, [r2, #0] - /* clear the control bits */ - I2C0_CONCLR = (I2C_CONCLR_AAC | I2C_CONCLR_SIC - | I2C_CONCLR_STAC | I2C_CONCLR_I2ENC); - - /* enable I2C0 */ - I2C0_CONSET = I2C_CONSET_I2EN; -2000e1dc: 4a07 ldr r2, [pc, #28] ; (2000e1fc ) - - I2C0_SCLH = duty_cycle_count; - I2C0_SCLL = duty_cycle_count; - - /* clear the control bits */ - I2C0_CONCLR = (I2C_CONCLR_AAC | I2C_CONCLR_SIC -2000e1de: 206c movs r0, #108 ; 0x6c - | I2C_CONCLR_STAC | I2C_CONCLR_I2ENC); - - /* enable I2C0 */ - I2C0_CONSET = I2C_CONSET_I2EN; -2000e1e0: 2140 movs r1, #64 ; 0x40 - - I2C0_SCLH = duty_cycle_count; - I2C0_SCLL = duty_cycle_count; - - /* clear the control bits */ - I2C0_CONCLR = (I2C_CONCLR_AAC | I2C_CONCLR_SIC -2000e1e2: 6018 str r0, [r3, #0] - | I2C_CONCLR_STAC | I2C_CONCLR_I2ENC); - - /* enable I2C0 */ - I2C0_CONSET = I2C_CONSET_I2EN; -2000e1e4: 6011 str r1, [r2, #0] -} -2000e1e6: 4770 bx lr -2000e1e8: 00000808 .word 0x00000808 -2000e1ec: 40086c84 .word 0x40086c84 -2000e1f0: 400a1010 .word 0x400a1010 -2000e1f4: 400a1014 .word 0x400a1014 -2000e1f8: 400a1018 .word 0x400a1018 -2000e1fc: 400a1000 .word 0x400a1000 - -2000e200 : - -void i2c1_init(const uint16_t duty_cycle_count) -{ - /* Configure pin function for I2C1*/ - SCU_SFSP2_3 = SFSP_I2C1_SDA_SCL; -2000e200: 4a07 ldr r2, [pc, #28] ; (2000e220 ) - SCU_SFSP2_4 = SFSP_I2C1_SDA_SCL; -2000e202: 4908 ldr r1, [pc, #32] ; (2000e224 ) -} - -void i2c1_init(const uint16_t duty_cycle_count) -{ - /* Configure pin function for I2C1*/ - SCU_SFSP2_3 = SFSP_I2C1_SDA_SCL; -2000e204: 23c1 movs r3, #193 ; 0xc1 -2000e206: 6013 str r3, [r2, #0] - SCU_SFSP2_4 = SFSP_I2C1_SDA_SCL; -2000e208: 600b str r3, [r1, #0] - - I2C1_SCLH = duty_cycle_count; -2000e20a: 4b07 ldr r3, [pc, #28] ; (2000e228 ) - I2C1_SCLL = duty_cycle_count; -2000e20c: 4a07 ldr r2, [pc, #28] ; (2000e22c ) -{ - /* Configure pin function for I2C1*/ - SCU_SFSP2_3 = SFSP_I2C1_SDA_SCL; - SCU_SFSP2_4 = SFSP_I2C1_SDA_SCL; - - I2C1_SCLH = duty_cycle_count; -2000e20e: 6018 str r0, [r3, #0] - I2C1_SCLL = duty_cycle_count; - - /* clear the control bits */ - I2C1_CONCLR = (I2C_CONCLR_AAC | I2C_CONCLR_SIC -2000e210: 4907 ldr r1, [pc, #28] ; (2000e230 ) - | I2C_CONCLR_STAC | I2C_CONCLR_I2ENC); - - /* enable I2C1 */ - I2C1_CONSET = I2C_CONSET_I2EN; -2000e212: 4b08 ldr r3, [pc, #32] ; (2000e234 ) - /* Configure pin function for I2C1*/ - SCU_SFSP2_3 = SFSP_I2C1_SDA_SCL; - SCU_SFSP2_4 = SFSP_I2C1_SDA_SCL; - - I2C1_SCLH = duty_cycle_count; - I2C1_SCLL = duty_cycle_count; -2000e214: 6010 str r0, [r2, #0] - - /* clear the control bits */ - I2C1_CONCLR = (I2C_CONCLR_AAC | I2C_CONCLR_SIC -2000e216: 206c movs r0, #108 ; 0x6c - | I2C_CONCLR_STAC | I2C_CONCLR_I2ENC); - - /* enable I2C1 */ - I2C1_CONSET = I2C_CONSET_I2EN; -2000e218: 2240 movs r2, #64 ; 0x40 - - I2C1_SCLH = duty_cycle_count; - I2C1_SCLL = duty_cycle_count; - - /* clear the control bits */ - I2C1_CONCLR = (I2C_CONCLR_AAC | I2C_CONCLR_SIC -2000e21a: 6008 str r0, [r1, #0] - | I2C_CONCLR_STAC | I2C_CONCLR_I2ENC); - - /* enable I2C1 */ - I2C1_CONSET = I2C_CONSET_I2EN; -2000e21c: 601a str r2, [r3, #0] -} -2000e21e: 4770 bx lr -2000e220: 4008610c .word 0x4008610c -2000e224: 40086110 .word 0x40086110 -2000e228: 400e0010 .word 0x400e0010 -2000e22c: 400e0014 .word 0x400e0014 -2000e230: 400e0018 .word 0x400e0018 -2000e234: 400e0000 .word 0x400e0000 - -2000e238 : -/* transmit start bit */ -void i2c0_tx_start(void) -{ - uint32_t timeout; - - I2C0_CONCLR = I2C_CONCLR_SIC; -2000e238: 4a0c ldr r2, [pc, #48] ; (2000e26c ) - I2C0_CONSET = I2C_CONSET_STA; -2000e23a: 490d ldr r1, [pc, #52] ; (2000e270 ) -/* transmit start bit */ -void i2c0_tx_start(void) -{ - uint32_t timeout; - - I2C0_CONCLR = I2C_CONCLR_SIC; -2000e23c: 2308 movs r3, #8 - I2C0_CONSET = I2C_CONSET_STA; -2000e23e: 2020 movs r0, #32 -/* transmit start bit */ -void i2c0_tx_start(void) -{ - uint32_t timeout; - - I2C0_CONCLR = I2C_CONCLR_SIC; -2000e240: 6013 str r3, [r2, #0] - I2C0_CONSET = I2C_CONSET_STA; -2000e242: 6008 str r0, [r1, #0] - - timeout = 0; - while( (!(I2C0_CONSET & I2C_CONSET_SI)) && (timeout < I2C_TIMEOUT) ) -2000e244: 680a ldr r2, [r1, #0] -2000e246: 4213 tst r3, r2 -2000e248: d10b bne.n 2000e262 -2000e24a: 4b0a ldr r3, [pc, #40] ; (2000e274 ) -2000e24c: 2208 movs r2, #8 -2000e24e: e005 b.n 2000e25c -2000e250: 6808 ldr r0, [r1, #0] -2000e252: 4202 tst r2, r0 -2000e254: d105 bne.n 2000e262 -2000e256: 3b02 subs r3, #2 -2000e258: 2b00 cmp r3, #0 -2000e25a: d002 beq.n 2000e262 -2000e25c: 6808 ldr r0, [r1, #0] -2000e25e: 4202 tst r2, r0 -2000e260: d0f6 beq.n 2000e250 - { - timeout++; - } - - I2C0_CONCLR = I2C_CONCLR_STAC; -2000e262: 4b02 ldr r3, [pc, #8] ; (2000e26c ) -2000e264: 2120 movs r1, #32 -2000e266: 6019 str r1, [r3, #0] -} -2000e268: 4770 bx lr -2000e26a: 46c0 nop ; (mov r8, r8) -2000e26c: 400a1018 .word 0x400a1018 -2000e270: 400a1000 .word 0x400a1000 -2000e274: 00002710 .word 0x00002710 - -2000e278 : -/* transmit start bit */ -void i2c1_tx_start(void) -{ - uint32_t timeout; - - I2C1_CONCLR = I2C_CONCLR_SIC; -2000e278: 4a0c ldr r2, [pc, #48] ; (2000e2ac ) - I2C1_CONSET = I2C_CONSET_STA; -2000e27a: 490d ldr r1, [pc, #52] ; (2000e2b0 ) -/* transmit start bit */ -void i2c1_tx_start(void) -{ - uint32_t timeout; - - I2C1_CONCLR = I2C_CONCLR_SIC; -2000e27c: 2308 movs r3, #8 - I2C1_CONSET = I2C_CONSET_STA; -2000e27e: 2020 movs r0, #32 -/* transmit start bit */ -void i2c1_tx_start(void) -{ - uint32_t timeout; - - I2C1_CONCLR = I2C_CONCLR_SIC; -2000e280: 6013 str r3, [r2, #0] - I2C1_CONSET = I2C_CONSET_STA; -2000e282: 6008 str r0, [r1, #0] - - timeout = 0; - while( (!(I2C1_CONSET & I2C_CONSET_SI)) && (timeout < I2C_TIMEOUT) ) -2000e284: 680a ldr r2, [r1, #0] -2000e286: 4213 tst r3, r2 -2000e288: d10b bne.n 2000e2a2 -2000e28a: 4b0a ldr r3, [pc, #40] ; (2000e2b4 ) -2000e28c: 2208 movs r2, #8 -2000e28e: e005 b.n 2000e29c -2000e290: 6808 ldr r0, [r1, #0] -2000e292: 4202 tst r2, r0 -2000e294: d105 bne.n 2000e2a2 -2000e296: 3b02 subs r3, #2 -2000e298: 2b00 cmp r3, #0 -2000e29a: d002 beq.n 2000e2a2 -2000e29c: 6808 ldr r0, [r1, #0] -2000e29e: 4202 tst r2, r0 -2000e2a0: d0f6 beq.n 2000e290 - { - timeout++; - } - - I2C1_CONCLR = I2C_CONCLR_STAC; -2000e2a2: 4b02 ldr r3, [pc, #8] ; (2000e2ac ) -2000e2a4: 2120 movs r1, #32 -2000e2a6: 6019 str r1, [r3, #0] -} -2000e2a8: 4770 bx lr -2000e2aa: 46c0 nop ; (mov r8, r8) -2000e2ac: 400e0018 .word 0x400e0018 -2000e2b0: 400e0000 .word 0x400e0000 -2000e2b4: 00002710 .word 0x00002710 - -2000e2b8 : -/* transmit data byte */ -void i2c0_tx_byte(uint8_t byte) -{ - uint32_t timeout; - - if (I2C0_CONSET & I2C_CONSET_STA) -2000e2b8: 4b0e ldr r3, [pc, #56] ; (2000e2f4 ) -2000e2ba: 2120 movs r1, #32 -2000e2bc: 681a ldr r2, [r3, #0] -2000e2be: 4211 tst r1, r2 -2000e2c0: d001 beq.n 2000e2c6 - { - I2C0_CONCLR = I2C_CONCLR_STAC; -2000e2c2: 4b0d ldr r3, [pc, #52] ; (2000e2f8 ) -2000e2c4: 6019 str r1, [r3, #0] - } - I2C0_DAT = byte; -2000e2c6: 4a0d ldr r2, [pc, #52] ; (2000e2fc ) - I2C0_CONCLR = I2C_CONCLR_SIC; -2000e2c8: 490b ldr r1, [pc, #44] ; (2000e2f8 ) - - if (I2C0_CONSET & I2C_CONSET_STA) - { - I2C0_CONCLR = I2C_CONCLR_STAC; - } - I2C0_DAT = byte; -2000e2ca: 6010 str r0, [r2, #0] - I2C0_CONCLR = I2C_CONCLR_SIC; -2000e2cc: 2008 movs r0, #8 -2000e2ce: 6008 str r0, [r1, #0] - - timeout = 0; - while( (!(I2C0_CONSET & I2C_CONSET_SI)) && (timeout < I2C_TIMEOUT) ) -2000e2d0: 4908 ldr r1, [pc, #32] ; (2000e2f4 ) -2000e2d2: 680b ldr r3, [r1, #0] -2000e2d4: 4218 tst r0, r3 -2000e2d6: d10b bne.n 2000e2f0 -2000e2d8: 4b09 ldr r3, [pc, #36] ; (2000e300 ) -2000e2da: 2208 movs r2, #8 -2000e2dc: e005 b.n 2000e2ea -2000e2de: 6808 ldr r0, [r1, #0] -2000e2e0: 4202 tst r2, r0 -2000e2e2: d105 bne.n 2000e2f0 -2000e2e4: 3b02 subs r3, #2 -2000e2e6: 2b00 cmp r3, #0 -2000e2e8: d002 beq.n 2000e2f0 -2000e2ea: 6808 ldr r0, [r1, #0] -2000e2ec: 4202 tst r2, r0 -2000e2ee: d0f6 beq.n 2000e2de - { - timeout++; - } -} -2000e2f0: 4770 bx lr -2000e2f2: 46c0 nop ; (mov r8, r8) -2000e2f4: 400a1000 .word 0x400a1000 -2000e2f8: 400a1018 .word 0x400a1018 -2000e2fc: 400a1008 .word 0x400a1008 -2000e300: 00002710 .word 0x00002710 - -2000e304 : -/* transmit data byte */ -void i2c1_tx_byte(uint8_t byte) -{ - uint32_t timeout; - - if (I2C1_CONSET & I2C_CONSET_STA) -2000e304: 4b0e ldr r3, [pc, #56] ; (2000e340 ) -2000e306: 2120 movs r1, #32 -2000e308: 681a ldr r2, [r3, #0] -2000e30a: 4211 tst r1, r2 -2000e30c: d001 beq.n 2000e312 - { - I2C1_CONCLR = I2C_CONCLR_STAC; -2000e30e: 4b0d ldr r3, [pc, #52] ; (2000e344 ) -2000e310: 6019 str r1, [r3, #0] - } - I2C1_DAT = byte; -2000e312: 4a0d ldr r2, [pc, #52] ; (2000e348 ) - I2C1_CONCLR = I2C_CONCLR_SIC; -2000e314: 490b ldr r1, [pc, #44] ; (2000e344 ) - - if (I2C1_CONSET & I2C_CONSET_STA) - { - I2C1_CONCLR = I2C_CONCLR_STAC; - } - I2C1_DAT = byte; -2000e316: 6010 str r0, [r2, #0] - I2C1_CONCLR = I2C_CONCLR_SIC; -2000e318: 2008 movs r0, #8 -2000e31a: 6008 str r0, [r1, #0] - - timeout = 0; - while( (!(I2C1_CONSET & I2C_CONSET_SI)) && (timeout < I2C_TIMEOUT) ) -2000e31c: 4908 ldr r1, [pc, #32] ; (2000e340 ) -2000e31e: 680b ldr r3, [r1, #0] -2000e320: 4218 tst r0, r3 -2000e322: d10b bne.n 2000e33c -2000e324: 4b09 ldr r3, [pc, #36] ; (2000e34c ) -2000e326: 2208 movs r2, #8 -2000e328: e005 b.n 2000e336 -2000e32a: 6808 ldr r0, [r1, #0] -2000e32c: 4202 tst r2, r0 -2000e32e: d105 bne.n 2000e33c -2000e330: 3b02 subs r3, #2 -2000e332: 2b00 cmp r3, #0 -2000e334: d002 beq.n 2000e33c -2000e336: 6808 ldr r0, [r1, #0] -2000e338: 4202 tst r2, r0 -2000e33a: d0f6 beq.n 2000e32a - { - timeout++; - } -} -2000e33c: 4770 bx lr -2000e33e: 46c0 nop ; (mov r8, r8) -2000e340: 400e0000 .word 0x400e0000 -2000e344: 400e0018 .word 0x400e0018 -2000e348: 400e0008 .word 0x400e0008 -2000e34c: 00002710 .word 0x00002710 - -2000e350 : -/* receive data byte */ -uint8_t i2c0_rx_byte(void) -{ - uint32_t timeout; - - if (I2C0_CONSET & I2C_CONSET_STA) -2000e350: 4b0e ldr r3, [pc, #56] ; (2000e38c ) -2000e352: 2020 movs r0, #32 -2000e354: 681a ldr r2, [r3, #0] -2000e356: 4210 tst r0, r2 -2000e358: d001 beq.n 2000e35e - { - I2C0_CONCLR = I2C_CONCLR_STAC; -2000e35a: 490d ldr r1, [pc, #52] ; (2000e390 ) -2000e35c: 6008 str r0, [r1, #0] - } - I2C0_CONCLR = I2C_CONCLR_SIC; -2000e35e: 4a0c ldr r2, [pc, #48] ; (2000e390 ) -2000e360: 2308 movs r3, #8 - - timeout = 0; - while( (!(I2C0_CONSET & I2C_CONSET_SI)) && (timeout < I2C_TIMEOUT) ) -2000e362: 490a ldr r1, [pc, #40] ; (2000e38c ) - - if (I2C0_CONSET & I2C_CONSET_STA) - { - I2C0_CONCLR = I2C_CONCLR_STAC; - } - I2C0_CONCLR = I2C_CONCLR_SIC; -2000e364: 6013 str r3, [r2, #0] - - timeout = 0; - while( (!(I2C0_CONSET & I2C_CONSET_SI)) && (timeout < I2C_TIMEOUT) ) -2000e366: 6808 ldr r0, [r1, #0] -2000e368: 4203 tst r3, r0 -2000e36a: d10b bne.n 2000e384 -2000e36c: 4b09 ldr r3, [pc, #36] ; (2000e394 ) -2000e36e: 2208 movs r2, #8 -2000e370: e005 b.n 2000e37e -2000e372: 6808 ldr r0, [r1, #0] -2000e374: 4202 tst r2, r0 -2000e376: d105 bne.n 2000e384 -2000e378: 3b02 subs r3, #2 -2000e37a: 2b00 cmp r3, #0 -2000e37c: d002 beq.n 2000e384 -2000e37e: 6808 ldr r0, [r1, #0] -2000e380: 4202 tst r2, r0 -2000e382: d0f6 beq.n 2000e372 - { - timeout++; - } - - return I2C0_DAT; -2000e384: 4904 ldr r1, [pc, #16] ; (2000e398 ) -2000e386: 680b ldr r3, [r1, #0] -2000e388: b2d8 uxtb r0, r3 -} -2000e38a: 4770 bx lr -2000e38c: 400a1000 .word 0x400a1000 -2000e390: 400a1018 .word 0x400a1018 -2000e394: 00002710 .word 0x00002710 -2000e398: 400a1008 .word 0x400a1008 - -2000e39c : -/* receive data byte (ack=1 => ACK if ack=0 NACK) */ -uint8_t i2c1_rx_byte(bool ack) -{ - uint32_t timeout; - - if (I2C1_CONSET & I2C_CONSET_STA) -2000e39c: 4b12 ldr r3, [pc, #72] ; (2000e3e8 ) -2000e39e: 2120 movs r1, #32 -2000e3a0: 681a ldr r2, [r3, #0] -2000e3a2: 4211 tst r1, r2 -2000e3a4: d001 beq.n 2000e3aa - { - I2C1_CONCLR = I2C_CONCLR_STAC; -2000e3a6: 4b11 ldr r3, [pc, #68] ; (2000e3ec ) -2000e3a8: 6019 str r1, [r3, #0] - } - - if (ack) - { - I2C1_CONSET = I2C_CONSET_AA; -2000e3aa: 2204 movs r2, #4 - if (I2C1_CONSET & I2C_CONSET_STA) - { - I2C1_CONCLR = I2C_CONCLR_STAC; - } - - if (ack) -2000e3ac: 2800 cmp r0, #0 -2000e3ae: d018 beq.n 2000e3e2 - { - I2C1_CONSET = I2C_CONSET_AA; -2000e3b0: 490d ldr r1, [pc, #52] ; (2000e3e8 ) -2000e3b2: 600a str r2, [r1, #0] - } else - { - I2C1_CONCLR = I2C_CONCLR_AAC; - } - - I2C1_CONCLR = I2C_CONCLR_SIC; -2000e3b4: 4a0d ldr r2, [pc, #52] ; (2000e3ec ) -2000e3b6: 2308 movs r3, #8 - timeout = 0; - while( (!(I2C1_CONSET & I2C_CONSET_SI)) && (timeout < I2C_TIMEOUT) ) -2000e3b8: 490b ldr r1, [pc, #44] ; (2000e3e8 ) - } else - { - I2C1_CONCLR = I2C_CONCLR_AAC; - } - - I2C1_CONCLR = I2C_CONCLR_SIC; -2000e3ba: 6013 str r3, [r2, #0] - timeout = 0; - while( (!(I2C1_CONSET & I2C_CONSET_SI)) && (timeout < I2C_TIMEOUT) ) -2000e3bc: 6808 ldr r0, [r1, #0] -2000e3be: 4203 tst r3, r0 -2000e3c0: d10b bne.n 2000e3da -2000e3c2: 4b0b ldr r3, [pc, #44] ; (2000e3f0 ) -2000e3c4: 2208 movs r2, #8 -2000e3c6: e005 b.n 2000e3d4 -2000e3c8: 6808 ldr r0, [r1, #0] -2000e3ca: 4202 tst r2, r0 -2000e3cc: d105 bne.n 2000e3da -2000e3ce: 3b02 subs r3, #2 -2000e3d0: 2b00 cmp r3, #0 -2000e3d2: d002 beq.n 2000e3da -2000e3d4: 6808 ldr r0, [r1, #0] -2000e3d6: 4202 tst r2, r0 -2000e3d8: d0f6 beq.n 2000e3c8 - { - timeout++; - } - - return I2C1_DAT; -2000e3da: 4906 ldr r1, [pc, #24] ; (2000e3f4 ) -2000e3dc: 680b ldr r3, [r1, #0] -2000e3de: b2d8 uxtb r0, r3 -} -2000e3e0: 4770 bx lr - if (ack) - { - I2C1_CONSET = I2C_CONSET_AA; - } else - { - I2C1_CONCLR = I2C_CONCLR_AAC; -2000e3e2: 4802 ldr r0, [pc, #8] ; (2000e3ec ) -2000e3e4: 6002 str r2, [r0, #0] -2000e3e6: e7e5 b.n 2000e3b4 -2000e3e8: 400e0000 .word 0x400e0000 -2000e3ec: 400e0018 .word 0x400e0018 -2000e3f0: 00002710 .word 0x00002710 -2000e3f4: 400e0008 .word 0x400e0008 - -2000e3f8 : -} - -/* transmit stop bit */ -void i2c0_stop(void) -{ - if (I2C0_CONSET & I2C_CONSET_STA) { -2000e3f8: 4b06 ldr r3, [pc, #24] ; (2000e414 ) -2000e3fa: 2020 movs r0, #32 -2000e3fc: 681a ldr r2, [r3, #0] -2000e3fe: 4210 tst r0, r2 -2000e400: d001 beq.n 2000e406 - I2C0_CONCLR = I2C_CONCLR_STAC; -2000e402: 4905 ldr r1, [pc, #20] ; (2000e418 ) -2000e404: 6008 str r0, [r1, #0] - } - I2C0_CONSET = I2C_CONSET_STO; -2000e406: 4b03 ldr r3, [pc, #12] ; (2000e414 ) - I2C0_CONCLR = I2C_CONCLR_SIC; -2000e408: 4903 ldr r1, [pc, #12] ; (2000e418 ) -void i2c0_stop(void) -{ - if (I2C0_CONSET & I2C_CONSET_STA) { - I2C0_CONCLR = I2C_CONCLR_STAC; - } - I2C0_CONSET = I2C_CONSET_STO; -2000e40a: 2210 movs r2, #16 - I2C0_CONCLR = I2C_CONCLR_SIC; -2000e40c: 2008 movs r0, #8 -void i2c0_stop(void) -{ - if (I2C0_CONSET & I2C_CONSET_STA) { - I2C0_CONCLR = I2C_CONCLR_STAC; - } - I2C0_CONSET = I2C_CONSET_STO; -2000e40e: 601a str r2, [r3, #0] - I2C0_CONCLR = I2C_CONCLR_SIC; -2000e410: 6008 str r0, [r1, #0] -} -2000e412: 4770 bx lr -2000e414: 400a1000 .word 0x400a1000 -2000e418: 400a1018 .word 0x400a1018 - -2000e41c : - -/* transmit stop bit */ -void i2c1_stop(void) -{ - if (I2C1_CONSET & I2C_CONSET_STA) { -2000e41c: 4b06 ldr r3, [pc, #24] ; (2000e438 ) -2000e41e: 2020 movs r0, #32 -2000e420: 681a ldr r2, [r3, #0] -2000e422: 4210 tst r0, r2 -2000e424: d001 beq.n 2000e42a - I2C1_CONCLR = I2C_CONCLR_STAC; -2000e426: 4905 ldr r1, [pc, #20] ; (2000e43c ) -2000e428: 6008 str r0, [r1, #0] - } - I2C1_CONSET = I2C_CONSET_STO; -2000e42a: 4b03 ldr r3, [pc, #12] ; (2000e438 ) - I2C1_CONCLR = I2C_CONCLR_SIC; -2000e42c: 4903 ldr r1, [pc, #12] ; (2000e43c ) -void i2c1_stop(void) -{ - if (I2C1_CONSET & I2C_CONSET_STA) { - I2C1_CONCLR = I2C_CONCLR_STAC; - } - I2C1_CONSET = I2C_CONSET_STO; -2000e42e: 2210 movs r2, #16 - I2C1_CONCLR = I2C_CONCLR_SIC; -2000e430: 2008 movs r0, #8 -void i2c1_stop(void) -{ - if (I2C1_CONSET & I2C_CONSET_STA) { - I2C1_CONCLR = I2C_CONCLR_STAC; - } - I2C1_CONSET = I2C_CONSET_STO; -2000e432: 601a str r2, [r3, #0] - I2C1_CONCLR = I2C_CONCLR_SIC; -2000e434: 6008 str r0, [r1, #0] -} -2000e436: 4770 bx lr -2000e438: 400e0000 .word 0x400e0000 -2000e43c: 400e0018 .word 0x400e0018 - -2000e440 : - uint8_t serial_clock_rate, - uint8_t clk_prescale, - ssp_mode_t mode, - ssp_master_slave_t master_slave, - ssp_slave_option_t slave_option) -{ -2000e440: b5f0 push {r4, r5, r6, r7, lr} -2000e442: 465f mov r7, fp -2000e444: 464d mov r5, r9 -2000e446: 4656 mov r6, sl -2000e448: 4644 mov r4, r8 -2000e44a: b4f0 push {r4, r5, r6, r7} -2000e44c: b083 sub sp, #12 -2000e44e: 469c mov ip, r3 -2000e450: ab0c add r3, sp, #48 ; 0x30 -2000e452: 781c ldrb r4, [r3, #0] -2000e454: ad0d add r5, sp, #52 ; 0x34 -2000e456: 782e ldrb r6, [r5, #0] -2000e458: af0e add r7, sp, #56 ; 0x38 -2000e45a: 46a3 mov fp, r4 -2000e45c: ac10 add r4, sp, #64 ; 0x40 -2000e45e: 46b1 mov r9, r6 -2000e460: 783e ldrb r6, [r7, #0] -2000e462: 7827 ldrb r7, [r4, #0] -2000e464: ab0f add r3, sp, #60 ; 0x3c -2000e466: 781d ldrb r5, [r3, #0] -2000e468: 9701 str r7, [sp, #4] - uint32_t clock; - - if (ssp_num == SSP0_NUM) - { - ssp_port = SSP0; - CGU_BASE_SSP0_CLK = CGU_BASE_SSP0_CLK_CLK_SEL(CGU_SRC_PLL1) -2000e46a: 4b1a ldr r3, [pc, #104] ; (2000e4d4 ) - ssp_slave_option_t slave_option) -{ - uint32_t ssp_port; - uint32_t clock; - - if (ssp_num == SSP0_NUM) -2000e46c: 2800 cmp r0, #0 -2000e46e: d024 beq.n 2000e4ba - /* use PLL1 as clock source for SSP0 */ - } else - { - ssp_port = SSP1; - /* use PLL1 as clock source for SSP1 */ - CGU_BASE_SSP1_CLK = CGU_BASE_SSP1_CLK_CLK_SEL(CGU_SRC_PLL1) -2000e470: 4819 ldr r0, [pc, #100] ; (2000e4d8 ) - | CGU_BASE_SSP1_CLK_AUTOBLOCK; - CCU1_CLK_M4_SSP1_CFG |= 1; /* Enable SSP1 Clock */ -2000e472: 4f1a ldr r7, [pc, #104] ; (2000e4dc ) - /* use PLL1 as clock source for SSP0 */ - } else - { - ssp_port = SSP1; - /* use PLL1 as clock source for SSP1 */ - CGU_BASE_SSP1_CLK = CGU_BASE_SSP1_CLK_CLK_SEL(CGU_SRC_PLL1) -2000e474: 6003 str r3, [r0, #0] - | CGU_BASE_SSP1_CLK_AUTOBLOCK; - CCU1_CLK_M4_SSP1_CFG |= 1; /* Enable SSP1 Clock */ -2000e476: 683c ldr r4, [r7, #0] -2000e478: 2301 movs r3, #1 -2000e47a: 4323 orrs r3, r4 -2000e47c: 4c18 ldr r4, [pc, #96] ; (2000e4e0 ) -2000e47e: 603b str r3, [r7, #0] -2000e480: 4818 ldr r0, [pc, #96] ; (2000e4e4 ) -2000e482: 4f19 ldr r7, [pc, #100] ; (2000e4e8 ) -2000e484: 46a0 mov r8, r4 - } - - /* Disable SSP before to configure it */ - SSP_CR1(ssp_port) = 0x0; -2000e486: 2300 movs r3, #0 -2000e488: 6003 str r3, [r0, #0] - - /* Configure SSP */ - clock = serial_clock_rate; - SSP_CPSR(ssp_port) = clk_prescale; -2000e48a: 4644 mov r4, r8 -2000e48c: 464b mov r3, r9 -2000e48e: 6023 str r3, [r4, #0] - SSP_CR0(ssp_port) = - (data_size | frame_format | cpol_cpha_format | (clock<<8)); -2000e490: 4311 orrs r1, r2 -2000e492: 465b mov r3, fp -2000e494: 4662 mov r2, ip -2000e496: 021c lsls r4, r3, #8 -2000e498: 4311 orrs r1, r2 -2000e49a: 4321 orrs r1, r4 - SSP_CR1(ssp_port) = 0x0; - - /* Configure SSP */ - clock = serial_clock_rate; - SSP_CPSR(ssp_port) = clk_prescale; - SSP_CR0(ssp_port) = -2000e49c: 6039 str r1, [r7, #0] - (data_size | frame_format | cpol_cpha_format | (clock<<8)); - - /* Enable SSP */ - SSP_CR1(ssp_port) = (SSP_ENABLE | mode | master_slave | slave_option); -2000e49e: 2102 movs r1, #2 -2000e4a0: 4331 orrs r1, r6 -2000e4a2: 9e01 ldr r6, [sp, #4] -2000e4a4: 4329 orrs r1, r5 -2000e4a6: 4331 orrs r1, r6 -2000e4a8: b2cd uxtb r5, r1 -2000e4aa: 6005 str r5, [r0, #0] -} -2000e4ac: b003 add sp, #12 -2000e4ae: bc3c pop {r2, r3, r4, r5} -2000e4b0: 4690 mov r8, r2 -2000e4b2: 4699 mov r9, r3 -2000e4b4: 46a2 mov sl, r4 -2000e4b6: 46ab mov fp, r5 -2000e4b8: bdf0 pop {r4, r5, r6, r7, pc} - uint32_t clock; - - if (ssp_num == SSP0_NUM) - { - ssp_port = SSP0; - CGU_BASE_SSP0_CLK = CGU_BASE_SSP0_CLK_CLK_SEL(CGU_SRC_PLL1) -2000e4ba: 4f0c ldr r7, [pc, #48] ; (2000e4ec ) - | CGU_BASE_SSP0_CLK_AUTOBLOCK; - CCU1_CLK_M4_SSP0_CFG |= 1; /* Enable SSP0 Clock */ -2000e4bc: 480c ldr r0, [pc, #48] ; (2000e4f0 ) - uint32_t clock; - - if (ssp_num == SSP0_NUM) - { - ssp_port = SSP0; - CGU_BASE_SSP0_CLK = CGU_BASE_SSP0_CLK_CLK_SEL(CGU_SRC_PLL1) -2000e4be: 603b str r3, [r7, #0] - | CGU_BASE_SSP0_CLK_AUTOBLOCK; - CCU1_CLK_M4_SSP0_CFG |= 1; /* Enable SSP0 Clock */ -2000e4c0: 6803 ldr r3, [r0, #0] -2000e4c2: 2701 movs r7, #1 -2000e4c4: 431f orrs r7, r3 -2000e4c6: 6007 str r7, [r0, #0] -2000e4c8: 480a ldr r0, [pc, #40] ; (2000e4f4 ) -2000e4ca: 4f0b ldr r7, [pc, #44] ; (2000e4f8 ) -2000e4cc: 4680 mov r8, r0 -2000e4ce: 480b ldr r0, [pc, #44] ; (2000e4fc ) -2000e4d0: e7d9 b.n 2000e486 -2000e4d2: 46c0 nop ; (mov r8, r8) -2000e4d4: 09000800 .word 0x09000800 -2000e4d8: 40050098 .word 0x40050098 -2000e4dc: 40051628 .word 0x40051628 -2000e4e0: 400c5010 .word 0x400c5010 -2000e4e4: 400c5004 .word 0x400c5004 -2000e4e8: 400c5000 .word 0x400c5000 -2000e4ec: 40050094 .word 0x40050094 -2000e4f0: 40051518 .word 0x40051518 -2000e4f4: 40083010 .word 0x40083010 -2000e4f8: 40083000 .word 0x40083000 -2000e4fc: 40083004 .word 0x40083004 - -2000e500 : - while ((SSP_SR(ssp_port) & SSP_SR_BSY)); -} - -/* This Function Wait Data TX Ready, and Write Data to SSP */ -uint16_t ssp_transfer(ssp_num_t ssp_num, uint16_t data) -{ -2000e500: b530 push {r4, r5, lr} - uint32_t ssp_port; - - if (ssp_num == SSP0_NUM) { -2000e502: 2800 cmp r0, #0 -2000e504: d116 bne.n 2000e534 -2000e506: 4d0d ldr r5, [pc, #52] ; (2000e53c ) -2000e508: 4b0d ldr r3, [pc, #52] ; (2000e540 ) - } else { - ssp_port = SSP1; - } - - /* Wait Until FIFO not full */ - while ((SSP_SR(ssp_port) & SSP_SR_TNF) == 0); -2000e50a: 2402 movs r4, #2 -2000e50c: 681a ldr r2, [r3, #0] -2000e50e: 4214 tst r4, r2 -2000e510: d0fc beq.n 2000e50c - - SSP_DR(ssp_port) = data; -2000e512: 6029 str r1, [r5, #0] - -static void ssp_wait_until_not_busy(ssp_num_t ssp_num) -{ - uint32_t ssp_port; - - if (ssp_num == SSP0_NUM) { -2000e514: 2800 cmp r0, #0 -2000e516: d10b bne.n 2000e530 -2000e518: 4809 ldr r0, [pc, #36] ; (2000e540 ) - ssp_port = SSP0; - } else { - ssp_port = SSP1; - } - - while ((SSP_SR(ssp_port) & SSP_SR_BSY)); -2000e51a: 2110 movs r1, #16 -2000e51c: 6804 ldr r4, [r0, #0] -2000e51e: 4221 tst r1, r4 -2000e520: d1fc bne.n 2000e51c - * example... - */ - ssp_wait_until_not_busy(ssp_num); - - /* Wait Until Data Received (Rx FIFO not Empty) */ - while ((SSP_SR(ssp_port) & SSP_SR_RNE) == 0); -2000e522: 2004 movs r0, #4 -2000e524: 681a ldr r2, [r3, #0] -2000e526: 4210 tst r0, r2 -2000e528: d0fc beq.n 2000e524 - - return SSP_DR(ssp_port); -2000e52a: 682d ldr r5, [r5, #0] -2000e52c: b2a8 uxth r0, r5 -} -2000e52e: bd30 pop {r4, r5, pc} - -static void ssp_wait_until_not_busy(ssp_num_t ssp_num) -{ - uint32_t ssp_port; - - if (ssp_num == SSP0_NUM) { -2000e530: 4804 ldr r0, [pc, #16] ; (2000e544 ) -2000e532: e7f2 b.n 2000e51a -/* This Function Wait Data TX Ready, and Write Data to SSP */ -uint16_t ssp_transfer(ssp_num_t ssp_num, uint16_t data) -{ - uint32_t ssp_port; - - if (ssp_num == SSP0_NUM) { -2000e534: 4d04 ldr r5, [pc, #16] ; (2000e548 ) -2000e536: 4b03 ldr r3, [pc, #12] ; (2000e544 ) -2000e538: e7e7 b.n 2000e50a -2000e53a: 46c0 nop ; (mov r8, r8) -2000e53c: 40083008 .word 0x40083008 -2000e540: 4008300c .word 0x4008300c -2000e544: 400c500c .word 0x400c500c -2000e548: 400c5008 .word 0x400c5008 - -2000e54c : - } - -} - -void blocking_handler(void) -{ -2000e54c: e7fe b.n 2000e54c -2000e54e: 46c0 nop ; (mov r8, r8) - -2000e550 : -} - -void null_handler(void) -{ - /* Do nothing. */ -} -2000e550: 4770 bx lr -2000e552: 46c0 nop ; (mov r8, r8) - -2000e554 : -void WEAK __attribute__ ((naked)) reset_handler(void) -{ - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; -2000e554: 4a4f ldr r2, [pc, #316] ; (2000e694 ) -2000e556: 4b50 ldr r3, [pc, #320] ; (2000e698 ) -2000e558: 429a cmp r2, r3 -2000e55a: d21f bcs.n 2000e59c - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) -2000e55c: 1cdf adds r7, r3, #3 -2000e55e: 1d14 adds r4, r2, #4 -2000e560: 1b38 subs r0, r7, r4 -2000e562: 0881 lsrs r1, r0, #2 -2000e564: 3101 adds r1, #1 -2000e566: 008f lsls r7, r1, #2 -2000e568: 4b4c ldr r3, [pc, #304] ; (2000e69c ) -2000e56a: 1f38 subs r0, r7, #4 -2000e56c: 0741 lsls r1, r0, #29 -2000e56e: 18fe adds r6, r7, r3 -2000e570: 0fc8 lsrs r0, r1, #31 - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; - dest < &_edata; - src++, dest++) { - *dest = *src; -2000e572: cb02 ldmia r3!, {r1} -2000e574: 6011 str r1, [r2, #0] -void WEAK __attribute__ ((naked)) reset_handler(void) -{ - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; -2000e576: 42b3 cmp r3, r6 -2000e578: d00f beq.n 2000e59a -2000e57a: 2800 cmp r0, #0 -2000e57c: d003 beq.n 2000e586 - dest < &_edata; - src++, dest++) { - *dest = *src; -2000e57e: cb01 ldmia r3!, {r0} -2000e580: c401 stmia r4!, {r0} -void WEAK __attribute__ ((naked)) reset_handler(void) -{ - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; -2000e582: 42b3 cmp r3, r6 -2000e584: d009 beq.n 2000e59a - dest < &_edata; - src++, dest++) { - *dest = *src; -2000e586: 1c18 adds r0, r3, #0 -2000e588: c820 ldmia r0!, {r5} -2000e58a: 1c21 adds r1, r4, #0 -2000e58c: c120 stmia r1!, {r5} -2000e58e: 685b ldr r3, [r3, #4] -2000e590: 6063 str r3, [r4, #4] - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; - dest < &_edata; - src++, dest++) { -2000e592: 1d03 adds r3, r0, #4 -2000e594: 1d0c adds r4, r1, #4 -void WEAK __attribute__ ((naked)) reset_handler(void) -{ - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; -2000e596: 42b3 cmp r3, r6 -2000e598: d1f5 bne.n 2000e586 -2000e59a: 19d2 adds r2, r2, r7 - dest < &_edata; - src++, dest++) { - *dest = *src; - } - - while (dest < &_ebss) { -2000e59c: 4840 ldr r0, [pc, #256] ; (2000e6a0 ) -2000e59e: 4282 cmp r2, r0 -2000e5a0: d216 bcs.n 2000e5d0 - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) -2000e5a2: 1cc4 adds r4, r0, #3 -2000e5a4: 1d13 adds r3, r2, #4 -2000e5a6: 1ae5 subs r5, r4, r3 -2000e5a8: 08a9 lsrs r1, r5, #2 -2000e5aa: 3101 adds r1, #1 -2000e5ac: 0088 lsls r0, r1, #2 -2000e5ae: 1810 adds r0, r2, r0 -2000e5b0: 1ac4 subs r4, r0, r3 - src++, dest++) { - *dest = *src; - } - - while (dest < &_ebss) { - *dest++ = 0; -2000e5b2: 2100 movs r1, #0 -2000e5b4: 0765 lsls r5, r4, #29 -2000e5b6: d508 bpl.n 2000e5ca -2000e5b8: 6011 str r1, [r2, #0] -2000e5ba: 1c1a adds r2, r3, #0 -2000e5bc: 3304 adds r3, #4 -2000e5be: 6011 str r1, [r2, #0] - dest < &_edata; - src++, dest++) { - *dest = *src; - } - - while (dest < &_ebss) { -2000e5c0: 4283 cmp r3, r0 -2000e5c2: d005 beq.n 2000e5d0 - *dest++ = 0; -2000e5c4: 1d1a adds r2, r3, #4 -2000e5c6: 6019 str r1, [r3, #0] -2000e5c8: 1d13 adds r3, r2, #4 -2000e5ca: 6011 str r1, [r2, #0] - dest < &_edata; - src++, dest++) { - *dest = *src; - } - - while (dest < &_ebss) { -2000e5cc: 4283 cmp r3, r0 -2000e5ce: d1f9 bne.n 2000e5c4 - *dest++ = 0; - } - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { -2000e5d0: 4834 ldr r0, [pc, #208] ; (2000e6a4 ) -2000e5d2: 4935 ldr r1, [pc, #212] ; (2000e6a8 ) -2000e5d4: 4288 cmp r0, r1 -2000e5d6: d21b bcs.n 2000e610 - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) -2000e5d8: 3103 adds r1, #3 -2000e5da: 1d06 adds r6, r0, #4 -2000e5dc: 1b8f subs r7, r1, r6 -2000e5de: 08bd lsrs r5, r7, #2 -2000e5e0: 2401 movs r4, #1 -2000e5e2: 1c6f adds r7, r5, #1 -2000e5e4: 402c ands r4, r5 - *dest++ = 0; - } - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - (*fp)(); -2000e5e6: 6802 ldr r2, [r0, #0] -2000e5e8: 2501 movs r5, #1 -2000e5ea: 4790 blx r2 - while (dest < &_ebss) { - *dest++ = 0; - } - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { -2000e5ec: 42bd cmp r5, r7 -2000e5ee: d00f beq.n 2000e610 -2000e5f0: 2c00 cmp r4, #0 -2000e5f2: d004 beq.n 2000e5fe - (*fp)(); -2000e5f4: ce08 ldmia r6!, {r3} -2000e5f6: 2502 movs r5, #2 -2000e5f8: 4798 blx r3 - while (dest < &_ebss) { - *dest++ = 0; - } - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { -2000e5fa: 42bd cmp r5, r7 -2000e5fc: d008 beq.n 2000e610 - (*fp)(); -2000e5fe: 1c34 adds r4, r6, #0 -2000e600: cc01 ldmia r4!, {r0} -2000e602: 4780 blx r0 -2000e604: 3502 adds r5, #2 -2000e606: 6876 ldr r6, [r6, #4] -2000e608: 47b0 blx r6 - while (dest < &_ebss) { - *dest++ = 0; - } - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { -2000e60a: 1d26 adds r6, r4, #4 -2000e60c: 42bd cmp r5, r7 -2000e60e: d1f6 bne.n 2000e5fe - (*fp)(); - } - for (fp = &__init_array_start; fp < &__init_array_end; fp++) { -2000e610: 4b26 ldr r3, [pc, #152] ; (2000e6ac ) -2000e612: 4927 ldr r1, [pc, #156] ; (2000e6b0 ) -2000e614: 428b cmp r3, r1 -2000e616: d21b bcs.n 2000e650 - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) -2000e618: 3103 adds r1, #3 -2000e61a: 1d1e adds r6, r3, #4 -2000e61c: 1b8f subs r7, r1, r6 -2000e61e: 08bd lsrs r5, r7, #2 -2000e620: 2401 movs r4, #1 -2000e622: 1c6f adds r7, r5, #1 -2000e624: 402c ands r4, r5 - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - (*fp)(); - } - for (fp = &__init_array_start; fp < &__init_array_end; fp++) { - (*fp)(); -2000e626: 681a ldr r2, [r3, #0] -2000e628: 2501 movs r5, #1 -2000e62a: 4790 blx r2 - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - (*fp)(); - } - for (fp = &__init_array_start; fp < &__init_array_end; fp++) { -2000e62c: 42bd cmp r5, r7 -2000e62e: d00f beq.n 2000e650 -2000e630: 2c00 cmp r4, #0 -2000e632: d004 beq.n 2000e63e - (*fp)(); -2000e634: ce01 ldmia r6!, {r0} -2000e636: 2502 movs r5, #2 -2000e638: 4780 blx r0 - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - (*fp)(); - } - for (fp = &__init_array_start; fp < &__init_array_end; fp++) { -2000e63a: 42bd cmp r5, r7 -2000e63c: d008 beq.n 2000e650 - (*fp)(); -2000e63e: 1c34 adds r4, r6, #0 -2000e640: cc08 ldmia r4!, {r3} -2000e642: 4798 blx r3 -2000e644: 3502 adds r5, #2 -2000e646: 6876 ldr r6, [r6, #4] -2000e648: 47b0 blx r6 - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - (*fp)(); - } - for (fp = &__init_array_start; fp < &__init_array_end; fp++) { -2000e64a: 1d26 adds r6, r4, #4 -2000e64c: 42bd cmp r5, r7 -2000e64e: d1f6 bne.n 2000e63e - - /* might be provided by platform specific vector.c */ - pre_main(); - - /* Call the application's entry point. */ - main(); -2000e650: f7fd fdc8 bl 2000c1e4
- - /* Destructors. */ - for (fp = &__fini_array_start; fp < &__fini_array_end; fp++) { -2000e654: 4817 ldr r0, [pc, #92] ; (2000e6b4 ) -2000e656: 4918 ldr r1, [pc, #96] ; (2000e6b8 ) -2000e658: 4288 cmp r0, r1 -2000e65a: d21b bcs.n 2000e694 - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) -2000e65c: 3103 adds r1, #3 -2000e65e: 1d06 adds r6, r0, #4 -2000e660: 1b8f subs r7, r1, r6 -2000e662: 08bd lsrs r5, r7, #2 -2000e664: 2401 movs r4, #1 -2000e666: 1c6f adds r7, r5, #1 -2000e668: 402c ands r4, r5 - /* Call the application's entry point. */ - main(); - - /* Destructors. */ - for (fp = &__fini_array_start; fp < &__fini_array_end; fp++) { - (*fp)(); -2000e66a: 6802 ldr r2, [r0, #0] -2000e66c: 2501 movs r5, #1 -2000e66e: 4790 blx r2 - - /* Call the application's entry point. */ - main(); - - /* Destructors. */ - for (fp = &__fini_array_start; fp < &__fini_array_end; fp++) { -2000e670: 42bd cmp r5, r7 -2000e672: d00f beq.n 2000e694 -2000e674: 2c00 cmp r4, #0 -2000e676: d004 beq.n 2000e682 - (*fp)(); -2000e678: ce08 ldmia r6!, {r3} -2000e67a: 2502 movs r5, #2 -2000e67c: 4798 blx r3 - - /* Call the application's entry point. */ - main(); - - /* Destructors. */ - for (fp = &__fini_array_start; fp < &__fini_array_end; fp++) { -2000e67e: 42bd cmp r5, r7 -2000e680: d008 beq.n 2000e694 - (*fp)(); -2000e682: 1c34 adds r4, r6, #0 -2000e684: cc01 ldmia r4!, {r0} -2000e686: 4780 blx r0 -2000e688: 3502 adds r5, #2 -2000e68a: 6876 ldr r6, [r6, #4] -2000e68c: 47b0 blx r6 - - /* Call the application's entry point. */ - main(); - - /* Destructors. */ - for (fp = &__fini_array_start; fp < &__fini_array_end; fp++) { -2000e68e: 1d26 adds r6, r4, #4 -2000e690: 42bd cmp r5, r7 -2000e692: d1f6 bne.n 2000e682 -2000e694: 2000ef30 .word 0x2000ef30 -2000e698: 2000ef30 .word 0x2000ef30 -2000e69c: 2000ec6c .word 0x2000ec6c -2000e6a0: 2000fb04 .word 0x2000fb04 -2000e6a4: 2000ec6c .word 0x2000ec6c -2000e6a8: 2000ec6c .word 0x2000ec6c -2000e6ac: 2000ec6c .word 0x2000ec6c -2000e6b0: 2000ec6c .word 0x2000ec6c -2000e6b4: 2000ec6c .word 0x2000ec6c -2000e6b8: 2000ec6c .word 0x2000ec6c - -2000e6bc : - * @param[in] irqn Unsigned int8. Interrupt number @ref nvic_stm32f1_userint - */ - -void nvic_enable_irq(uint8_t irqn) -{ - NVIC_ISER(irqn / 32) = (1 << (irqn % 32)); -2000e6bc: 0943 lsrs r3, r0, #5 -2000e6be: 4a04 ldr r2, [pc, #16] ; (2000e6d0 ) -2000e6c0: 0099 lsls r1, r3, #2 -2000e6c2: 188b adds r3, r1, r2 -2000e6c4: 211f movs r1, #31 -2000e6c6: 4008 ands r0, r1 -2000e6c8: 2201 movs r2, #1 -2000e6ca: 4082 lsls r2, r0 -2000e6cc: 601a str r2, [r3, #0] -} -2000e6ce: 4770 bx lr -2000e6d0: e000e100 .word 0xe000e100 - -2000e6d4 : -void nvic_set_priority(uint8_t irqn, uint8_t priority) -{ - /* code from lpc43xx/nvic.c -- this is quite a hack and alludes to the - * negative interrupt numbers assigned to the system interrupts. better - * handling would mean signed integers. */ - if (irqn >= NVIC_IRQ_COUNT) { -2000e6d4: 281f cmp r0, #31 -2000e6d6: d803 bhi.n 2000e6e0 - /* Cortex-M system interrupts */ - SCS_SHPR((irqn & 0xF) - 4) = priority; - } else { - /* Device specific interrupts */ - NVIC_IPR(irqn) = priority; -2000e6d8: 4b04 ldr r3, [pc, #16] ; (2000e6ec ) -2000e6da: 18c0 adds r0, r0, r3 -2000e6dc: 7001 strb r1, [r0, #0] - } -} -2000e6de: 4770 bx lr - /* code from lpc43xx/nvic.c -- this is quite a hack and alludes to the - * negative interrupt numbers assigned to the system interrupts. better - * handling would mean signed integers. */ - if (irqn >= NVIC_IRQ_COUNT) { - /* Cortex-M system interrupts */ - SCS_SHPR((irqn & 0xF) - 4) = priority; -2000e6e0: 220f movs r2, #15 -2000e6e2: 4b03 ldr r3, [pc, #12] ; (2000e6f0 ) -2000e6e4: 4010 ands r0, r2 -2000e6e6: 18c0 adds r0, r0, r3 -2000e6e8: 7001 strb r1, [r0, #0] -2000e6ea: e7f8 b.n 2000e6de -2000e6ec: e000e400 .word 0xe000e400 -2000e6f0: e000ed14 .word 0xe000ed14 - -2000e6f4 <__gnu_thumb1_case_uqi>: -2000e6f4: b402 push {r1} -2000e6f6: 4671 mov r1, lr -2000e6f8: 0849 lsrs r1, r1, #1 -2000e6fa: 0049 lsls r1, r1, #1 -2000e6fc: 5c09 ldrb r1, [r1, r0] -2000e6fe: 0049 lsls r1, r1, #1 -2000e700: 448e add lr, r1 -2000e702: bc02 pop {r1} -2000e704: 4770 bx lr -2000e706: 46c0 nop ; (mov r8, r8) - -2000e708 <__aeabi_uidiv>: -2000e708: 2900 cmp r1, #0 -2000e70a: d034 beq.n 2000e776 <.udivsi3_skip_div0_test+0x6a> - -2000e70c <.udivsi3_skip_div0_test>: -2000e70c: 2301 movs r3, #1 -2000e70e: 2200 movs r2, #0 -2000e710: b410 push {r4} -2000e712: 4288 cmp r0, r1 -2000e714: d32c bcc.n 2000e770 <.udivsi3_skip_div0_test+0x64> -2000e716: 2401 movs r4, #1 -2000e718: 0724 lsls r4, r4, #28 -2000e71a: 42a1 cmp r1, r4 -2000e71c: d204 bcs.n 2000e728 <.udivsi3_skip_div0_test+0x1c> -2000e71e: 4281 cmp r1, r0 -2000e720: d202 bcs.n 2000e728 <.udivsi3_skip_div0_test+0x1c> -2000e722: 0109 lsls r1, r1, #4 -2000e724: 011b lsls r3, r3, #4 -2000e726: e7f8 b.n 2000e71a <.udivsi3_skip_div0_test+0xe> -2000e728: 00e4 lsls r4, r4, #3 -2000e72a: 42a1 cmp r1, r4 -2000e72c: d204 bcs.n 2000e738 <.udivsi3_skip_div0_test+0x2c> -2000e72e: 4281 cmp r1, r0 -2000e730: d202 bcs.n 2000e738 <.udivsi3_skip_div0_test+0x2c> -2000e732: 0049 lsls r1, r1, #1 -2000e734: 005b lsls r3, r3, #1 -2000e736: e7f8 b.n 2000e72a <.udivsi3_skip_div0_test+0x1e> -2000e738: 4288 cmp r0, r1 -2000e73a: d301 bcc.n 2000e740 <.udivsi3_skip_div0_test+0x34> -2000e73c: 1a40 subs r0, r0, r1 -2000e73e: 431a orrs r2, r3 -2000e740: 084c lsrs r4, r1, #1 -2000e742: 42a0 cmp r0, r4 -2000e744: d302 bcc.n 2000e74c <.udivsi3_skip_div0_test+0x40> -2000e746: 1b00 subs r0, r0, r4 -2000e748: 085c lsrs r4, r3, #1 -2000e74a: 4322 orrs r2, r4 -2000e74c: 088c lsrs r4, r1, #2 -2000e74e: 42a0 cmp r0, r4 -2000e750: d302 bcc.n 2000e758 <.udivsi3_skip_div0_test+0x4c> -2000e752: 1b00 subs r0, r0, r4 -2000e754: 089c lsrs r4, r3, #2 -2000e756: 4322 orrs r2, r4 -2000e758: 08cc lsrs r4, r1, #3 -2000e75a: 42a0 cmp r0, r4 -2000e75c: d302 bcc.n 2000e764 <.udivsi3_skip_div0_test+0x58> -2000e75e: 1b00 subs r0, r0, r4 -2000e760: 08dc lsrs r4, r3, #3 -2000e762: 4322 orrs r2, r4 -2000e764: 2800 cmp r0, #0 -2000e766: d003 beq.n 2000e770 <.udivsi3_skip_div0_test+0x64> -2000e768: 091b lsrs r3, r3, #4 -2000e76a: d001 beq.n 2000e770 <.udivsi3_skip_div0_test+0x64> -2000e76c: 0909 lsrs r1, r1, #4 -2000e76e: e7e3 b.n 2000e738 <.udivsi3_skip_div0_test+0x2c> -2000e770: 1c10 adds r0, r2, #0 -2000e772: bc10 pop {r4} -2000e774: 4770 bx lr -2000e776: 2800 cmp r0, #0 -2000e778: d001 beq.n 2000e77e <.udivsi3_skip_div0_test+0x72> -2000e77a: 2000 movs r0, #0 -2000e77c: 43c0 mvns r0, r0 -2000e77e: b407 push {r0, r1, r2} -2000e780: 4802 ldr r0, [pc, #8] ; (2000e78c <.udivsi3_skip_div0_test+0x80>) -2000e782: a102 add r1, pc, #8 ; (adr r1, 2000e78c <.udivsi3_skip_div0_test+0x80>) -2000e784: 1840 adds r0, r0, r1 -2000e786: 9002 str r0, [sp, #8] -2000e788: bd03 pop {r0, r1, pc} -2000e78a: 46c0 nop ; (mov r8, r8) -2000e78c: 00000019 .word 0x00000019 - -2000e790 <__aeabi_uidivmod>: -2000e790: 2900 cmp r1, #0 -2000e792: d0f0 beq.n 2000e776 <.udivsi3_skip_div0_test+0x6a> -2000e794: b503 push {r0, r1, lr} -2000e796: f7ff ffb9 bl 2000e70c <.udivsi3_skip_div0_test> -2000e79a: bc0e pop {r1, r2, r3} -2000e79c: 4342 muls r2, r0 -2000e79e: 1a89 subs r1, r1, r2 -2000e7a0: 4718 bx r3 -2000e7a2: 46c0 nop ; (mov r8, r8) - -2000e7a4 <__aeabi_idiv0>: -2000e7a4: 4770 bx lr -2000e7a6: 46c0 nop ; (mov r8, r8) - -2000e7a8 <__aeabi_lmul>: -2000e7a8: 469c mov ip, r3 -2000e7aa: 0403 lsls r3, r0, #16 -2000e7ac: b5f0 push {r4, r5, r6, r7, lr} -2000e7ae: 0c1b lsrs r3, r3, #16 -2000e7b0: 0417 lsls r7, r2, #16 -2000e7b2: 0c3f lsrs r7, r7, #16 -2000e7b4: 0c15 lsrs r5, r2, #16 -2000e7b6: 1c1e adds r6, r3, #0 -2000e7b8: 1c04 adds r4, r0, #0 -2000e7ba: 0c00 lsrs r0, r0, #16 -2000e7bc: 437e muls r6, r7 -2000e7be: 436b muls r3, r5 -2000e7c0: 4347 muls r7, r0 -2000e7c2: 4345 muls r5, r0 -2000e7c4: 18fb adds r3, r7, r3 -2000e7c6: 0c30 lsrs r0, r6, #16 -2000e7c8: 1818 adds r0, r3, r0 -2000e7ca: 4287 cmp r7, r0 -2000e7cc: d902 bls.n 2000e7d4 <__aeabi_lmul+0x2c> -2000e7ce: 2780 movs r7, #128 ; 0x80 -2000e7d0: 027b lsls r3, r7, #9 -2000e7d2: 18ed adds r5, r5, r3 -2000e7d4: 0c07 lsrs r7, r0, #16 -2000e7d6: 19ed adds r5, r5, r7 -2000e7d8: 4667 mov r7, ip -2000e7da: 437c muls r4, r7 -2000e7dc: 434a muls r2, r1 -2000e7de: 0436 lsls r6, r6, #16 -2000e7e0: 0c33 lsrs r3, r6, #16 -2000e7e2: 18a1 adds r1, r4, r2 -2000e7e4: 0400 lsls r0, r0, #16 -2000e7e6: 1949 adds r1, r1, r5 -2000e7e8: 18c0 adds r0, r0, r3 -2000e7ea: bdf0 pop {r4, r5, r6, r7, pc} - -2000e7ec : -2000e7ec: b5f0 push {r4, r5, r6, r7, lr} -2000e7ee: 464f mov r7, r9 -2000e7f0: 4646 mov r6, r8 -2000e7f2: b4c0 push {r6, r7} -2000e7f4: 2a0f cmp r2, #15 -2000e7f6: d972 bls.n 2000e8de -2000e7f8: 1c0b adds r3, r1, #0 -2000e7fa: 4303 orrs r3, r0 -2000e7fc: 079c lsls r4, r3, #30 -2000e7fe: d000 beq.n 2000e802 -2000e800: e090 b.n 2000e924 -2000e802: 1c17 adds r7, r2, #0 -2000e804: 3f10 subs r7, #16 -2000e806: 093c lsrs r4, r7, #4 -2000e808: 3401 adds r4, #1 -2000e80a: 0127 lsls r7, r4, #4 -2000e80c: 680c ldr r4, [r1, #0] -2000e80e: 1c3b adds r3, r7, #0 -2000e810: 6004 str r4, [r0, #0] -2000e812: 3b10 subs r3, #16 -2000e814: 06de lsls r6, r3, #27 -2000e816: 684b ldr r3, [r1, #4] -2000e818: 19cd adds r5, r1, r7 -2000e81a: 6043 str r3, [r0, #4] -2000e81c: 688c ldr r4, [r1, #8] -2000e81e: 0ff6 lsrs r6, r6, #31 -2000e820: 6084 str r4, [r0, #8] -2000e822: 68cb ldr r3, [r1, #12] -2000e824: 1c04 adds r4, r0, #0 -2000e826: 60c3 str r3, [r0, #12] -2000e828: 1c0b adds r3, r1, #0 -2000e82a: 3310 adds r3, #16 -2000e82c: 3410 adds r4, #16 -2000e82e: 429d cmp r5, r3 -2000e830: d027 beq.n 2000e882 -2000e832: 2e00 cmp r6, #0 -2000e834: d00b beq.n 2000e84e -2000e836: 6819 ldr r1, [r3, #0] -2000e838: 6021 str r1, [r4, #0] -2000e83a: 685e ldr r6, [r3, #4] -2000e83c: 6066 str r6, [r4, #4] -2000e83e: 6899 ldr r1, [r3, #8] -2000e840: 60a1 str r1, [r4, #8] -2000e842: 68de ldr r6, [r3, #12] -2000e844: 3310 adds r3, #16 -2000e846: 60e6 str r6, [r4, #12] -2000e848: 3410 adds r4, #16 -2000e84a: 429d cmp r5, r3 -2000e84c: d019 beq.n 2000e882 -2000e84e: 6819 ldr r1, [r3, #0] -2000e850: 6021 str r1, [r4, #0] -2000e852: 685e ldr r6, [r3, #4] -2000e854: 6066 str r6, [r4, #4] -2000e856: 6899 ldr r1, [r3, #8] -2000e858: 60a1 str r1, [r4, #8] -2000e85a: 68de ldr r6, [r3, #12] -2000e85c: 1c19 adds r1, r3, #0 -2000e85e: 60e6 str r6, [r4, #12] -2000e860: 691b ldr r3, [r3, #16] -2000e862: 1c26 adds r6, r4, #0 -2000e864: 6123 str r3, [r4, #16] -2000e866: 694c ldr r4, [r1, #20] -2000e868: 6174 str r4, [r6, #20] -2000e86a: 698b ldr r3, [r1, #24] -2000e86c: 61b3 str r3, [r6, #24] -2000e86e: 69cc ldr r4, [r1, #28] -2000e870: 3110 adds r1, #16 -2000e872: 61f4 str r4, [r6, #28] -2000e874: 1c0b adds r3, r1, #0 -2000e876: 3610 adds r6, #16 -2000e878: 1c34 adds r4, r6, #0 -2000e87a: 3310 adds r3, #16 -2000e87c: 3410 adds r4, #16 -2000e87e: 429d cmp r5, r3 -2000e880: d1e5 bne.n 2000e84e -2000e882: 183f adds r7, r7, r0 -2000e884: 210f movs r1, #15 -2000e886: 46b8 mov r8, r7 -2000e888: 4011 ands r1, r2 -2000e88a: 2903 cmp r1, #3 -2000e88c: d94d bls.n 2000e92a -2000e88e: 3904 subs r1, #4 -2000e890: 088e lsrs r6, r1, #2 -2000e892: 00b3 lsls r3, r6, #2 -2000e894: 3304 adds r3, #4 -2000e896: 18ec adds r4, r5, r3 -2000e898: 46a4 mov ip, r4 -2000e89a: 3b04 subs r3, #4 -2000e89c: 1c2c adds r4, r5, #0 -2000e89e: 075f lsls r7, r3, #29 -2000e8a0: cc08 ldmia r4!, {r3} -2000e8a2: 4641 mov r1, r8 -2000e8a4: 46b1 mov r9, r6 -2000e8a6: c108 stmia r1!, {r3} -2000e8a8: 0ffe lsrs r6, r7, #31 -2000e8aa: 4564 cmp r4, ip -2000e8ac: d00f beq.n 2000e8ce -2000e8ae: 2e00 cmp r6, #0 -2000e8b0: d003 beq.n 2000e8ba -2000e8b2: cc80 ldmia r4!, {r7} -2000e8b4: c180 stmia r1!, {r7} -2000e8b6: 4564 cmp r4, ip -2000e8b8: d009 beq.n 2000e8ce -2000e8ba: 1c27 adds r7, r4, #0 -2000e8bc: cf08 ldmia r7!, {r3} -2000e8be: 1c0e adds r6, r1, #0 -2000e8c0: c608 stmia r6!, {r3} -2000e8c2: 6864 ldr r4, [r4, #4] -2000e8c4: 604c str r4, [r1, #4] -2000e8c6: 1d3c adds r4, r7, #4 -2000e8c8: 1d31 adds r1, r6, #4 -2000e8ca: 4564 cmp r4, ip -2000e8cc: d1f5 bne.n 2000e8ba -2000e8ce: 4649 mov r1, r9 -2000e8d0: 3101 adds r1, #1 -2000e8d2: 008e lsls r6, r1, #2 -2000e8d4: 2703 movs r7, #3 -2000e8d6: 19ad adds r5, r5, r6 -2000e8d8: 403a ands r2, r7 -2000e8da: 4446 add r6, r8 -2000e8dc: e001 b.n 2000e8e2 -2000e8de: 1c0d adds r5, r1, #0 -2000e8e0: 1c06 adds r6, r0, #0 -2000e8e2: 2a00 cmp r2, #0 -2000e8e4: d01a beq.n 2000e91c -2000e8e6: 782f ldrb r7, [r5, #0] -2000e8e8: 18b2 adds r2, r6, r2 -2000e8ea: 43f3 mvns r3, r6 -2000e8ec: 18d1 adds r1, r2, r3 -2000e8ee: 2401 movs r4, #1 -2000e8f0: 7037 strb r7, [r6, #0] -2000e8f2: 3601 adds r6, #1 -2000e8f4: 400c ands r4, r1 -2000e8f6: 3501 adds r5, #1 -2000e8f8: 4296 cmp r6, r2 -2000e8fa: d00f beq.n 2000e91c -2000e8fc: 2c00 cmp r4, #0 -2000e8fe: d005 beq.n 2000e90c -2000e900: 782b ldrb r3, [r5, #0] -2000e902: 3501 adds r5, #1 -2000e904: 7033 strb r3, [r6, #0] -2000e906: 3601 adds r6, #1 -2000e908: 4296 cmp r6, r2 -2000e90a: d007 beq.n 2000e91c -2000e90c: 7829 ldrb r1, [r5, #0] -2000e90e: 7031 strb r1, [r6, #0] -2000e910: 786c ldrb r4, [r5, #1] -2000e912: 3502 adds r5, #2 -2000e914: 7074 strb r4, [r6, #1] -2000e916: 3602 adds r6, #2 -2000e918: 4296 cmp r6, r2 -2000e91a: d1f7 bne.n 2000e90c -2000e91c: bc0c pop {r2, r3} -2000e91e: 4690 mov r8, r2 -2000e920: 4699 mov r9, r3 -2000e922: bdf0 pop {r4, r5, r6, r7, pc} -2000e924: 1c06 adds r6, r0, #0 -2000e926: 1c0d adds r5, r1, #0 -2000e928: e7dd b.n 2000e8e6 -2000e92a: 1c3e adds r6, r7, #0 -2000e92c: 1c0a adds r2, r1, #0 -2000e92e: e7d8 b.n 2000e8e2 - -2000e930 : -2000e930: 1c03 adds r3, r0, #0 -2000e932: 780a ldrb r2, [r1, #0] -2000e934: 3101 adds r1, #1 -2000e936: 701a strb r2, [r3, #0] -2000e938: 3301 adds r3, #1 -2000e93a: 2a00 cmp r2, #0 -2000e93c: d1f9 bne.n 2000e932 -2000e93e: 4770 bx lr - -2000e940 : -2000e940: 2300 movs r3, #0 -2000e942: 5cc2 ldrb r2, [r0, r3] -2000e944: 3301 adds r3, #1 -2000e946: 2a00 cmp r2, #0 -2000e948: d1fb bne.n 2000e942 -2000e94a: 1e58 subs r0, r3, #1 -2000e94c: 4770 bx lr -2000e94e: 46c0 nop ; (mov r8, r8) - -2000e950 : -2000e950: 7620 2e31 2e30 2d30 6372 3031 342d 672d v1.0.0-rc10-4-g -2000e960: 6138 3735 6435 2d36 6964 7472 2079 3032 8a575d6-dirty 20 -2000e970: 3032 302d 2d35 3730 0000 0000 20-05-07.... - -2000e97c : -2000e97c: dfbd 2000 0000 0000 c305 2000 0000 0000 ... ....... .... - -2000e98c : -2000e98c: ed1f 2000 ed23 2000 ed74 2000 ecd7 2000 ... #.. t.. ... -2000e99c: 0000 0000 .... - -2000e9a0 : -2000e9a0: 3130 3332 3534 3736 3938 4241 4443 4645 0123456789ABCDEF -2000e9b0: 80e0 0060 0e0f 0c0d 0a0b 0809 0607 0405 ..`............. -2000e9c0: 0203 0001 .... - -2000e9c4 : -2000e9c4: 0101 0101 0201 0202 0202 0303 0303 0403 ................ -2000e9d4: 0404 0404 0505 0505 0605 0606 0606 0707 ................ -2000e9e4: 0707 0707 0707 0707 0808 0808 0808 0808 ................ -2000e9f4: 0808 0909 0909 0909 0909 0909 0a0a 0a0a ................ -2000ea04: 0a0a 0a0a 0a0a 0b0b 0b0b 0b0b 0b0b 0b0b ................ -2000ea14: 0b0b 0b0b 0b0b 0b0b 0b0b 0c0c 0c0c 0c0c ................ -2000ea24: 0c0c 0c0c 0c0c 0c0c 0c0c 0c0c 0c0c 0c0c ................ -2000ea34: 0c0c 0c0c 0c0c 0c0c 0c0c 0c0c 0c0c 0c0c ................ -2000ea44: 0c0c 0d0d 0d0d 0d0d 0d0d 0d0d 0d0d 0d0d ................ -2000ea54: 0d0d 0d0d 0d0d 0d0d 0d0d 0d0d 0d0d 0d0d ................ -2000ea64: 0d0d 0d0d 0d0d 0d0d 0d0d 0e0e 0e0e 0e0e ................ -2000ea74: 0e0e 0e0e 0e0e 0e0e 0e0e 0e0e 0e0e 0e0e ................ -2000ea84: 0e0e 0e0e 0e0e 0e0e 0f0f 0f0f 0f0f 0f0f ................ -2000ea94: 0f0f 0f0f 0f0f 0f0f 0f0f 0f0f 0f0f 0f0f ................ -2000eaa4: 0f0f 0f0f 0f0f 1010 1010 1010 1010 1010 ................ -2000eab4: 1010 1010 1010 1010 1010 1010 1010 1010 ................ -2000eac4: 1010 1010 1111 1111 1111 1111 1111 1111 ................ -2000ead4: 1111 1111 1111 1111 1111 1111 1111 1111 ................ -2000eae4: 1111 1111 1111 1111 1111 1111 1111 1111 ................ -2000eaf4: 1111 1111 1111 1111 1111 1111 1111 1111 ................ -2000eb04: 1111 1111 1111 1111 1111 1111 1111 1111 ................ -2000eb14: 1111 1111 1111 1111 1111 1111 1111 1111 ................ -2000eb24: 1111 1111 1111 1111 1111 1111 1111 1111 ................ -2000eb34: 1111 1111 1111 1111 1111 1111 1111 1111 ................ -2000eb44: 1111 1111 1111 1111 1111 1111 1111 1111 ................ -2000eb54: 1212 1212 1212 1212 1212 1212 1212 1212 ................ -2000eb64: 1212 1212 1212 1212 1212 1212 1212 1212 ................ -2000eb74: 1212 1212 1212 1212 1212 1212 1212 1212 ................ -2000eb84: 1212 1212 1212 1212 1212 1212 1212 1212 ................ -2000eb94: 1212 1212 1212 1212 1212 1212 1212 1212 ................ -2000eba4: 1212 1212 1212 1212 1212 1212 1212 1212 ................ -2000ebb4: 1212 1212 1212 1212 1212 1212 1212 1212 ................ -2000ebc4: 1212 1212 1212 1212 1212 1212 1212 1212 ................ -2000ebd4: 1212 1212 1212 1212 1212 1313 1313 1313 ................ -2000ebe4: 1313 1313 1313 1313 1313 1313 1313 1313 ................ -2000ebf4: 1313 1313 1313 1313 1313 1313 1313 1313 ................ -2000ec04: 1313 1313 1313 1313 1313 1313 1313 1313 ................ -2000ec14: 1313 1313 1313 1313 ........ - -2000ec1c : -2000ec1c: 0208 08df be02 0208 088b 7b02 0208 0869 ...........{..i. -2000ec2c: 5802 0200 0044 4402 0200 0034 3402 0200 .X..D..D..4..4.. -2000ec3c: 0024 2402 0200 0014 1302 0200 0013 1102 $..$............ -2000ec4c: 0200 0000 0041 4100 0000 0040 4000 0000 ....A..A..@..@. - -2000ec5b : -2000ec5b: 0800 0c04 0a02 0e06 0901 0d05 0b03 0f07 ................ - ... diff --git a/airspy_m0/airspy_m0.map b/airspy_m0/airspy_m0.map deleted file mode 100644 index 4032f35..0000000 --- a/airspy_m0/airspy_m0.map +++ /dev/null @@ -1,2244 +0,0 @@ -Archive member included because of file (symbol) - -../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - airspy_core.o (scu_pinmux) -../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - airspy_m0.o (i2c0_init) -../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - w25q80bv.o (ssp_init) -../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - (reset_handler) -../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - airspy_m0.o (nvic_enable_irq) -c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_thumb1_case_uqi.o) - usb_standard_request.o (__gnu_thumb1_case_uqi) -c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_udivsi3.o) - r820t.o (__aeabi_uidiv) -c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_dvmd_tls.o) - c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_udivsi3.o) (__aeabi_idiv0) -c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_aeabi_ldivmod.o) - airspy_core.o (__aeabi_ldivmod) -c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_muldi3.o) - airspy_core.o (__aeabi_lmul) -c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(bpabi.o) - c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_aeabi_ldivmod.o) (__gnu_ldivmod_helper) -c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_divdi3.o) - c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(bpabi.o) (__divdi3) -c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_udivdi3.o) - c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(bpabi.o) (__udivdi3) -c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_clzsi2.o) - c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_divdi3.o) (__clzsi2) -c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-memcpy.o) - si5351c.o (memcpy) -c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-strcpy.o) - airspy_usb_req.o (strcpy) -c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-strlen.o) - airspy_usb_req.o (strlen) - -Allocating common symbols -Common symbol size file - -usb_qh 0x300 usb.o -device_id 0x1 w25q80bv.o -set_sample_r_params - 0x8 airspy_m0.o -vendor_request_handler - 0x70 airspy_usb_req.o -hard_fault_stack_pt - 0x4 fault_handler.o -r820t_read_data 0x20 r820t.o -set_freq_params 0x4 airspy_m0.o -__gnu_lto_v1 0x1 airspy_m0.o -spiflash_buffer 0x100 airspy_usb_req.o -USB_EpStatus 0x2 usb_standard_request.o -sample_rate_conf_no - 0x1 airspy_usb_req.o -usb_endpoint_control_out_transfers - 0x200 usb_endpoint.o - -Discarded input sections - - .text 0x00000000 0x0 airspy_m0.o - .data 0x00000000 0x0 airspy_m0.o - .bss 0x00000000 0x0 airspy_m0.o - .gnu.lto_.jmpfuncs.f192c55c - 0x00000000 0xba airspy_m0.o - .gnu.lto_.inline.f192c55c - 0x00000000 0xbd airspy_m0.o - .gnu.lto_.pureconst.f192c55c - 0x00000000 0x24 airspy_m0.o - .gnu.lto_usb_configuration_changed.part.0.f192c55c - 0x00000000 0x128 airspy_m0.o - .gnu.lto_usb_configuration_changed.f192c55c - 0x00000000 0x179 airspy_m0.o - .gnu.lto_set_samplerate_m4.f192c55c - 0x00000000 0x1f2 airspy_m0.o - .gnu.lto_set_packing_m4.f192c55c - 0x00000000 0x1ee airspy_m0.o - .gnu.lto_ADCHS_start.f192c55c - 0x00000000 0x53f airspy_m0.o - .gnu.lto_ADCHS_stop.f192c55c - 0x00000000 0x2d8 airspy_m0.o - .gnu.lto_m4core_isr.f192c55c - 0x00000000 0x9c airspy_m0.o - .gnu.lto_main.f192c55c - 0x00000000 0x502 airspy_m0.o - .gnu.lto_.cgraph.f192c55c - 0x00000000 0x12f airspy_m0.o - .gnu.lto_.vars.f192c55c - 0x00000000 0x5b airspy_m0.o - .gnu.lto_.refs.f192c55c - 0x00000000 0x4d airspy_m0.o - .gnu.lto_.statics.f192c55c - 0x00000000 0x14 airspy_m0.o - .gnu.lto_.decls.f192c55c - 0x00000000 0x21e2 airspy_m0.o - .gnu.lto_.symtab.f192c55c - 0x00000000 0x64a airspy_m0.o - .gnu.lto_.opts - 0x00000000 0x52 airspy_m0.o - .rodata.usb_bulk_buffer - 0x00000000 0x4 airspy_m0.o - .text 0x00000000 0x0 airspy_rx.o - .data 0x00000000 0x0 airspy_rx.o - .bss 0x00000000 0x0 airspy_rx.o - .gnu.lto_.jmpfuncs.f192a432 - 0x00000000 0x3c airspy_rx.o - .gnu.lto_.inline.f192a432 - 0x00000000 0x58 airspy_rx.o - .gnu.lto_.pureconst.f192a432 - 0x00000000 0x18 airspy_rx.o - .gnu.lto_set_receiver_mode.f192a432 - 0x00000000 0x1b9 airspy_rx.o - .gnu.lto_get_receiver_mode.f192a432 - 0x00000000 0xc7 airspy_rx.o - .gnu.lto_.cgraph.f192a432 - 0x00000000 0x59 airspy_rx.o - .gnu.lto_.vars.f192a432 - 0x00000000 0x22 airspy_rx.o - .gnu.lto_.refs.f192a432 - 0x00000000 0x20 airspy_rx.o - .gnu.lto_.statics.f192a432 - 0x00000000 0x14 airspy_rx.o - .gnu.lto_.decls.f192a432 - 0x00000000 0x9ed airspy_rx.o - .gnu.lto_.symtab.f192a432 - 0x00000000 0x104 airspy_rx.o - .gnu.lto_.opts - 0x00000000 0x52 airspy_rx.o - .text 0x00000000 0x0 airspy_usb_req.o - .data 0x00000000 0x0 airspy_usb_req.o - .bss 0x00000000 0x0 airspy_usb_req.o - .gnu.lto_.jmpfuncs.f192c8ad - 0x00000000 0x1c7 airspy_usb_req.o - .gnu.lto_.inline.f192c8ad - 0x00000000 0x307 airspy_usb_req.o - .gnu.lto_.pureconst.f192c8ad - 0x00000000 0x72 airspy_usb_req.o - .gnu.lto_usb_vendor_request.f192c8ad - 0x00000000 0x28a airspy_usb_req.o - .gnu.lto_usb_vendor_request_reset.f192c8ad - 0x00000000 0x121 airspy_usb_req.o - .gnu.lto_usb_vendor_request_erase_sector_spiflash.part.0.f192c8ad - 0x00000000 0x271 airspy_usb_req.o - .gnu.lto_usb_vendor_request_erase_sector_spiflash.f192c8ad - 0x00000000 0x186 airspy_usb_req.o - .gnu.lto_usb_vendor_request_gpiodir_write_command.part.1.f192c8ad - 0x00000000 0x41d airspy_usb_req.o - .gnu.lto_usb_vendor_request_gpiodir_write_command.f192c8ad - 0x00000000 0x1ac airspy_usb_req.o - .gnu.lto_usb_vendor_request_erase_spiflash.part.2.f192c8ad - 0x00000000 0x16d airspy_usb_req.o - .gnu.lto_usb_vendor_request_erase_spiflash.f192c8ad - 0x00000000 0x125 airspy_usb_req.o - .gnu.lto_usb_vendor_request_get_samplerates_command.part.3.f192c8ad - 0x00000000 0x528 airspy_usb_req.o - .gnu.lto_usb_vendor_request_get_samplerates_command.f192c8ad - 0x00000000 0x1b6 airspy_usb_req.o - .gnu.lto_usb_vendor_request_gpiodir_read_command.part.4.f192c8ad - 0x00000000 0x3fe airspy_usb_req.o - .gnu.lto_usb_vendor_request_gpiodir_read_command.f192c8ad - 0x00000000 0x197 airspy_usb_req.o - .gnu.lto_usb_vendor_request_ms_vendor_command.part.5.f192c8ad - 0x00000000 0x1fb airspy_usb_req.o - .gnu.lto_usb_vendor_request_ms_vendor_command.f192c8ad - 0x00000000 0x2a3 airspy_usb_req.o - .gnu.lto_usb_vendor_request_read_board_id.part.6.f192c8ad - 0x00000000 0x1c6 airspy_usb_req.o - .gnu.lto_usb_vendor_request_read_board_id.f192c8ad - 0x00000000 0x126 airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_rf_bias_command.part.7.f192c8ad - 0x00000000 0x1d2 airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_rf_bias_command.f192c8ad - 0x00000000 0x126 airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_mixer_agc.part.8.f192c8ad - 0x00000000 0x2d7 airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_mixer_agc.f192c8ad - 0x00000000 0x147 airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_lna_agc.part.9.f192c8ad - 0x00000000 0x2da airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_lna_agc.f192c8ad - 0x00000000 0x146 airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_vga_gain.part.10.f192c8ad - 0x00000000 0x2d7 airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_vga_gain.f192c8ad - 0x00000000 0x147 airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_mixer_gain.part.11.f192c8ad - 0x00000000 0x2da airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_mixer_gain.f192c8ad - 0x00000000 0x146 airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_lna_gain.part.12.f192c8ad - 0x00000000 0x2da airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_lna_gain.f192c8ad - 0x00000000 0x147 airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_freq.part.13.f192c8ad - 0x00000000 0x1f1 airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_freq.f192c8ad - 0x00000000 0x1b4 airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_samplerate.part.14.f192c8ad - 0x00000000 0x7ee airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_samplerate.f192c8ad - 0x00000000 0x1ec airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_packing_command.part.15.f192c8ad - 0x00000000 0x245 airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_packing_command.f192c8ad - 0x00000000 0x2ce airspy_usb_req.o - .gnu.lto_usb_vendor_request_read_partid_serialno.part.16.f192c8ad - 0x00000000 0x3cb airspy_usb_req.o - .gnu.lto_usb_vendor_request_read_partid_serialno.f192c8ad - 0x00000000 0x1b9 airspy_usb_req.o - .gnu.lto_usb_vendor_request_read_version_string.part.17.f192c8ad - 0x00000000 0x3bd airspy_usb_req.o - .gnu.lto_usb_vendor_request_read_version_string.f192c8ad - 0x00000000 0x176 airspy_usb_req.o - .gnu.lto_usb_vendor_request_read_spiflash.part.18.f192c8ad - 0x00000000 0x5c7 airspy_usb_req.o - .gnu.lto_usb_vendor_request_read_spiflash.f192c8ad - 0x00000000 0x308 airspy_usb_req.o - .gnu.lto_usb_vendor_request_write_spiflash.part.19.f192c8ad - 0x00000000 0x339 airspy_usb_req.o - .gnu.lto_usb_vendor_request_write_spiflash.f192c8ad - 0x00000000 0x3a1 airspy_usb_req.o - .gnu.lto_usb_vendor_request_read_r820t.part.20.f192c8ad - 0x00000000 0x2f1 airspy_usb_req.o - .gnu.lto_usb_vendor_request_read_r820t.f192c8ad - 0x00000000 0x16e airspy_usb_req.o - .gnu.lto_usb_vendor_request_write_r820t.part.21.f192c8ad - 0x00000000 0x2a4 airspy_usb_req.o - .gnu.lto_usb_vendor_request_write_r820t.f192c8ad - 0x00000000 0x14e airspy_usb_req.o - .gnu.lto_usb_vendor_request_read_si5351c.part.22.f192c8ad - 0x00000000 0x296 airspy_usb_req.o - .gnu.lto_usb_vendor_request_read_si5351c.f192c8ad - 0x00000000 0x16e airspy_usb_req.o - .gnu.lto_usb_vendor_request_write_si5351c.part.23.f192c8ad - 0x00000000 0x243 airspy_usb_req.o - .gnu.lto_usb_vendor_request_write_si5351c.f192c8ad - 0x00000000 0x14e airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_receiver_mode.part.24.f192c8ad - 0x00000000 0x217 airspy_usb_req.o - .gnu.lto_usb_vendor_request_set_receiver_mode.f192c8ad - 0x00000000 0x154 airspy_usb_req.o - .gnu.lto_usb_vendor_request_write_gpio_command.part.25.f192c8ad - 0x00000000 0x430 airspy_usb_req.o - .gnu.lto_usb_vendor_request_write_gpio_command.f192c8ad - 0x00000000 0x1af airspy_usb_req.o - .gnu.lto_usb_vendor_request_read_gpio_command.part.26.f192c8ad - 0x00000000 0x510 airspy_usb_req.o - .gnu.lto_usb_vendor_request_read_gpio_command.f192c8ad - 0x00000000 0x197 airspy_usb_req.o - .gnu.lto_gpio_set.f192c8ad - 0x00000000 0x130 airspy_usb_req.o - .gnu.lto_gpio_clear.f192c8ad - 0x00000000 0x132 airspy_usb_req.o - .gnu.lto_gpio_get.f192c8ad - 0x00000000 0x185 airspy_usb_req.o - .gnu.lto_usb_streaming_disable.f192c8ad - 0x00000000 0xa9 airspy_usb_req.o - .gnu.lto_airspy_usb_req_init.f192c8ad - 0x00000000 0x237 airspy_usb_req.o - .gnu.lto_.cgraph.f192c8ad - 0x00000000 0x3ea airspy_usb_req.o - .gnu.lto_.vars.f192c8ad - 0x00000000 0x40 airspy_usb_req.o - .gnu.lto_.refs.f192c8ad - 0x00000000 0x9d airspy_usb_req.o - .gnu.lto_.statics.f192c8ad - 0x00000000 0x14 airspy_usb_req.o - .gnu.lto_.decls.f192c8ad - 0x00000000 0x2e1e airspy_usb_req.o - .gnu.lto_.symtab.f192c8ad - 0x00000000 0xb5f airspy_usb_req.o - .gnu.lto_.opts - 0x00000000 0x52 airspy_usb_req.o - .text.gpio_get - 0x00000000 0x10 airspy_usb_req.o - .text 0x00000000 0x0 usb_descriptor.o - .data 0x00000000 0x0 usb_descriptor.o - .bss 0x00000000 0x0 usb_descriptor.o - .gnu.lto_.jmpfuncs.f192d87d - 0x00000000 0x15 usb_descriptor.o - .gnu.lto_.inline.f192d87d - 0x00000000 0x25 usb_descriptor.o - .gnu.lto_.pureconst.f192d87d - 0x00000000 0x15 usb_descriptor.o - .gnu.lto_usb_descriptor_fill_string_serial_number.f192d87d - 0x00000000 0x50f usb_descriptor.o - .gnu.lto_.cgraph.f192d87d - 0x00000000 0x22 usb_descriptor.o - .gnu.lto_.vars.f192d87d - 0x00000000 0x39 usb_descriptor.o - .gnu.lto_.refs.f192d87d - 0x00000000 0x27 usb_descriptor.o - .gnu.lto_.statics.f192d87d - 0x00000000 0x14 usb_descriptor.o - .gnu.lto_.decls.f192d87d - 0x00000000 0xaa9 usb_descriptor.o - .gnu.lto_.symtab.f192d87d - 0x00000000 0x264 usb_descriptor.o - .gnu.lto_.opts - 0x00000000 0x52 usb_descriptor.o - .text 0x00000000 0x0 usb_device.o - .data 0x00000000 0x0 usb_device.o - .bss 0x00000000 0x0 usb_device.o - .gnu.lto_.inline.f192ce34 - 0x00000000 0x12 usb_device.o - .gnu.lto_.pureconst.f192ce34 - 0x00000000 0x12 usb_device.o - .gnu.lto_.cgraph.f192ce34 - 0x00000000 0x13 usb_device.o - .gnu.lto_.vars.f192ce34 - 0x00000000 0x2f usb_device.o - .gnu.lto_.refs.f192ce34 - 0x00000000 0x30 usb_device.o - .gnu.lto_.statics.f192ce34 - 0x00000000 0x14 usb_device.o - .gnu.lto_.decls.f192ce34 - 0x00000000 0x5ad usb_device.o - .gnu.lto_.symtab.f192ce34 - 0x00000000 0x17c usb_device.o - .gnu.lto_.opts - 0x00000000 0x52 usb_device.o - .text 0x00000000 0x0 usb_endpoint.o - .data 0x00000000 0x0 usb_endpoint.o - .bss 0x00000000 0x0 usb_endpoint.o - .gnu.lto_.inline.f192e3cc - 0x00000000 0x12 usb_endpoint.o - .gnu.lto_.pureconst.f192e3cc - 0x00000000 0x12 usb_endpoint.o - .gnu.lto_.cgraph.f192e3cc - 0x00000000 0x30 usb_endpoint.o - .gnu.lto_.vars.f192e3cc - 0x00000000 0x3d usb_endpoint.o - .gnu.lto_.refs.f192e3cc - 0x00000000 0x4e usb_endpoint.o - .gnu.lto_.statics.f192e3cc - 0x00000000 0x14 usb_endpoint.o - .gnu.lto_.decls.f192e3cc - 0x00000000 0xc91 usb_endpoint.o - .gnu.lto_.symtab.f192e3cc - 0x00000000 0x230 usb_endpoint.o - .gnu.lto_.opts - 0x00000000 0x52 usb_endpoint.o - .text 0x00000000 0x0 airspy_core.o - .data 0x00000000 0x0 airspy_core.o - .bss 0x00000000 0x0 airspy_core.o - .gnu.lto_.jmpfuncs.f192fee8 - 0x00000000 0x75 airspy_core.o - .gnu.lto_.inline.f192fee8 - 0x00000000 0xdf airspy_core.o - .gnu.lto_.pureconst.f192fee8 - 0x00000000 0x30 airspy_core.o - .gnu.lto_sys_clock_samplerate.part.0.f192fee8 - 0x00000000 0x276 airspy_core.o - .gnu.lto_delay.f192fee8 - 0x00000000 0x162 airspy_core.o - .gnu.lto_cpu_reset.f192fee8 - 0x00000000 0xb8 airspy_core.o - .gnu.lto_sys_clock_samplerate.f192fee8 - 0x00000000 0x373 airspy_core.o - .gnu.lto_sys_calib_r820t.f192fee8 - 0x00000000 0x1d9 airspy_core.o - .gnu.lto_cpu_clock_pll1_low_speed.f192fee8 - 0x00000000 0x2c7 airspy_core.o - .gnu.lto_sys_clock_init.f192fee8 - 0x00000000 0x12f3 airspy_core.o - .gnu.lto_cpu_clock_pll1_high_speed.f192fee8 - 0x00000000 0x361 airspy_core.o - .gnu.lto_led_on.f192fee8 - 0x00000000 0xab airspy_core.o - .gnu.lto_led_off.f192fee8 - 0x00000000 0xab airspy_core.o - .gnu.lto_enable_r820t_power.f192fee8 - 0x00000000 0xc3 airspy_core.o - .gnu.lto_enable_biast_power.f192fee8 - 0x00000000 0xac airspy_core.o - .gnu.lto_disable_biast_power.f192fee8 - 0x00000000 0xac airspy_core.o - .gnu.lto_pin_setup.f192fee8 - 0x00000000 0x2b3 airspy_core.o - .gnu.lto_.cgraph.f192fee8 - 0x00000000 0x144 airspy_core.o - .gnu.lto_.vars.f192fee8 - 0x00000000 0x30 airspy_core.o - .gnu.lto_.refs.f192fee8 - 0x00000000 0x33 airspy_core.o - .gnu.lto_.statics.f192fee8 - 0x00000000 0x14 airspy_core.o - .gnu.lto_.decls.f192fee8 - 0x00000000 0x1e9d airspy_core.o - .gnu.lto_.symtab.f192fee8 - 0x00000000 0x447 airspy_core.o - .gnu.lto_.opts - 0x00000000 0x52 airspy_core.o - .text.sys_clock_samplerate - 0x00000000 0x98 airspy_core.o - .text.sys_calib_r820t - 0x00000000 0x38 airspy_core.o - .text.cpu_clock_pll1_low_speed - 0x00000000 0x3c airspy_core.o - .text.sys_clock_init - 0x00000000 0x430 airspy_core.o - .text.cpu_clock_pll1_high_speed - 0x00000000 0x64 airspy_core.o - .text.led_on 0x00000000 0x14 airspy_core.o - .text.led_off 0x00000000 0x14 airspy_core.o - .text.enable_r820t_power - 0x00000000 0x1c airspy_core.o - .text.pin_setup - 0x00000000 0x8c airspy_core.o - .bss.si5351c_read - 0x00000000 0x4 airspy_core.o - .rodata.gpio_conf - 0x00000000 0x508 airspy_core.o - .text 0x00000000 0x0 fault_handler.o - .data 0x00000000 0x0 fault_handler.o - .bss 0x00000000 0x0 fault_handler.o - .gnu.lto_.jmpfuncs.f192fa70 - 0x00000000 0x1e fault_handler.o - .gnu.lto_.inline.f192fa70 - 0x00000000 0x3f fault_handler.o - .gnu.lto_.pureconst.f192fa70 - 0x00000000 0x1e fault_handler.o - .gnu.lto_hard_fault_handler.f192fa70 - 0x00000000 0x107 fault_handler.o - .gnu.lto_hard_fault_handler_c.f192fa70 - 0x00000000 0x101 fault_handler.o - .gnu.lto_mem_manage_handler.f192fa70 - 0x00000000 0x88 fault_handler.o - .gnu.lto_bus_fault_handler.f192fa70 - 0x00000000 0x88 fault_handler.o - .gnu.lto_usage_fault_handler.f192fa70 - 0x00000000 0x88 fault_handler.o - .gnu.lto_.cgraph.f192fa70 - 0x00000000 0x3c fault_handler.o - .gnu.lto_.vars.f192fa70 - 0x00000000 0x19 fault_handler.o - .gnu.lto_.refs.f192fa70 - 0x00000000 0x17 fault_handler.o - .gnu.lto_.statics.f192fa70 - 0x00000000 0x14 fault_handler.o - .gnu.lto_.decls.f192fa70 - 0x00000000 0x3cb fault_handler.o - .gnu.lto_.symtab.f192fa70 - 0x00000000 0xcf fault_handler.o - .gnu.lto_.opts - 0x00000000 0x52 fault_handler.o - .text.mem_manage_handler - 0x00000000 0x2 fault_handler.o - .text.bus_fault_handler - 0x00000000 0x2 fault_handler.o - .text.usage_fault_handler - 0x00000000 0x2 fault_handler.o - .text 0x00000000 0x0 si5351c.o - .data 0x00000000 0x0 si5351c.o - .bss 0x00000000 0x0 si5351c.o - .gnu.lto_.jmpfuncs.f192a158 - 0x00000000 0x66 si5351c.o - .gnu.lto_.inline.f192a158 - 0x00000000 0xa5 si5351c.o - .gnu.lto_.pureconst.f192a158 - 0x00000000 0x29 si5351c.o - .gnu.lto_si5351c_airspy_config.f192a158 - 0x00000000 0x269 si5351c.o - .gnu.lto_si5351c_write_single.f192a158 - 0x00000000 0x113 si5351c.o - .gnu.lto_si5351c_read_single.f192a158 - 0x00000000 0x143 si5351c.o - .gnu.lto_si5351c_write.f192a158 - 0x00000000 0x1fc si5351c.o - .gnu.lto_si5351c_disable_all_outputs.f192a158 - 0x00000000 0x111 si5351c.o - .gnu.lto_si5351c_disable_oeb_pin_control.f192a158 - 0x00000000 0x2ac si5351c.o - .gnu.lto_si5351c_power_down_all_clocks.f192a158 - 0x00000000 0x112 si5351c.o - .gnu.lto_si5351c_init_fanout.f192a158 - 0x00000000 0x111 si5351c.o - .gnu.lto_si5351c_init_xtal.f192a158 - 0x00000000 0x110 si5351c.o - .gnu.lto_si5351c_init_pll_soft_reset.f192a158 - 0x00000000 0x111 si5351c.o - .gnu.lto_si5351c_enable_clock_outputs.f192a158 - 0x00000000 0x112 si5351c.o - .gnu.lto_.cgraph.f192a158 - 0x00000000 0xeb si5351c.o - .gnu.lto_.vars.f192a158 - 0x00000000 0x2b si5351c.o - .gnu.lto_.refs.f192a158 - 0x00000000 0x28 si5351c.o - .gnu.lto_.statics.f192a158 - 0x00000000 0x14 si5351c.o - .gnu.lto_.decls.f192a158 - 0x00000000 0x78d si5351c.o - .gnu.lto_.symtab.f192a158 - 0x00000000 0x219 si5351c.o - .gnu.lto_.opts - 0x00000000 0x52 si5351c.o - .text.si5351c_airspy_config - 0x00000000 0x4a si5351c.o - .text.si5351c_write - 0x00000000 0x26 si5351c.o - .text.si5351c_disable_all_outputs - 0x00000000 0x1c si5351c.o - .text.si5351c_disable_oeb_pin_control - 0x00000000 0x74 si5351c.o - .text.si5351c_power_down_all_clocks - 0x00000000 0x20 si5351c.o - .text.si5351c_init_fanout - 0x00000000 0x20 si5351c.o - .text.si5351c_init_xtal - 0x00000000 0x20 si5351c.o - .text.si5351c_init_pll_soft_reset - 0x00000000 0x20 si5351c.o - .text.si5351c_enable_clock_outputs - 0x00000000 0x20 si5351c.o - .rodata 0x00000000 0x13 si5351c.o - .text 0x00000000 0x0 r820t.o - .data 0x00000000 0x0 r820t.o - .bss 0x00000000 0x0 r820t.o - .gnu.lto_.jmpfuncs.f192c400 - 0x00000000 0x196 r820t.o - .gnu.lto_.inline.f192c400 - 0x00000000 0x233 r820t.o - .gnu.lto_.pureconst.f192c400 - 0x00000000 0x3d r820t.o - .gnu.lto_r82xx_bitrev.f192c400 - 0x00000000 0x1f0 r820t.o - .gnu.lto_airspy_r820t_write_direct.part.0.f192c400 - 0x00000000 0x175 r820t.o - .gnu.lto_airspy_r820t_write_direct.f192c400 - 0x00000000 0x2a2 r820t.o - .gnu.lto_r820t_freq_get_idx.part.1.f192c400 - 0x00000000 0x1ab r820t.o - .gnu.lto_airspy_r820t_write_init.part.2.f192c400 - 0x00000000 0x23a r820t.o - .gnu.lto_airspy_r820t_read.part.3.f192c400 - 0x00000000 0x3e5 r820t.o - .gnu.lto_r820t_freq_get_idx.f192c400 - 0x00000000 0x148 r820t.o - .gnu.lto_airspy_r820t_write_init.f192c400 - 0x00000000 0x29b r820t.o - .gnu.lto_airspy_r820t_read.f192c400 - 0x00000000 0x4c5 r820t.o - .gnu.lto_airspy_r820t_write_single.f192c400 - 0x00000000 0x349 r820t.o - .gnu.lto_r820t_write_reg.f192c400 - 0x00000000 0x284 r820t.o - .gnu.lto_r820t_write_reg_mask.f192c400 - 0x00000000 0x334 r820t.o - .gnu.lto_r820t_set_tf.f192c400 - 0x00000000 0x374 r820t.o - .gnu.lto_airspy_r820t_read_single.f192c400 - 0x00000000 0x191 r820t.o - .gnu.lto_r820t_set_pll.f192c400 - 0x00000000 0x80d r820t.o - .gnu.lto_r820t_set_freq.f192c400 - 0x00000000 0x1fb r820t.o - .gnu.lto_r820t_set_lna_gain.f192c400 - 0x00000000 0x126 r820t.o - .gnu.lto_r820t_set_mixer_gain.f192c400 - 0x00000000 0x126 r820t.o - .gnu.lto_r820t_set_vga_gain.f192c400 - 0x00000000 0x127 r820t.o - .gnu.lto_r820t_set_lna_agc.f192c400 - 0x00000000 0x167 r820t.o - .gnu.lto_r820t_set_mixer_agc.f192c400 - 0x00000000 0x166 r820t.o - .gnu.lto_r820t_calibrate.f192c400 - 0x00000000 0x428 r820t.o - .gnu.lto_r820t_init.f192c400 - 0x00000000 0x281 r820t.o - .gnu.lto_r820t_set_if_bandwidth.f192c400 - 0x00000000 0x28b r820t.o - .gnu.lto_r820t_standby.f192c400 - 0x00000000 0x129 r820t.o - .gnu.lto_r820t_startup.f192c400 - 0x00000000 0x14a r820t.o - .gnu.lto_.cgraph.f192c400 - 0x00000000 0x213 r820t.o - .gnu.lto_.vars.f192c400 - 0x00000000 0x2c r820t.o - .gnu.lto_.refs.f192c400 - 0x00000000 0x3b r820t.o - .gnu.lto_.statics.f192c400 - 0x00000000 0x14 r820t.o - .gnu.lto_.decls.f192c400 - 0x00000000 0x1777 r820t.o - .gnu.lto_.symtab.f192c400 - 0x00000000 0x349 r820t.o - .gnu.lto_.opts - 0x00000000 0x52 r820t.o - .text 0x00000000 0x0 w25q80bv.o - .data 0x00000000 0x0 w25q80bv.o - .bss 0x00000000 0x0 w25q80bv.o - .gnu.lto_.jmpfuncs.f192c07b - 0x00000000 0x106 w25q80bv.o - .gnu.lto_.inline.f192c07b - 0x00000000 0x15e w25q80bv.o - .gnu.lto_.pureconst.f192c07b - 0x00000000 0x30 w25q80bv.o - .gnu.lto_w25q80bv_page_program.part.0.f192c07b - 0x00000000 0x1ce w25q80bv.o - .gnu.lto_w25q80bv_get_status.f192c07b - 0x00000000 0x147 w25q80bv.o - .gnu.lto_w25q80bv_get_device_id.f192c07b - 0x00000000 0x161 w25q80bv.o - .gnu.lto_w25q80bv_setup.f192c07b - 0x00000000 0x318 w25q80bv.o - .gnu.lto_w25q80bv_get_unique_id.f192c07b - 0x00000000 0x3b4 w25q80bv.o - .gnu.lto_w25q80bv_wait_while_busy.f192c07b - 0x00000000 0x13c w25q80bv.o - .gnu.lto_w25q80bv_read.part.2.f192c07b - 0x00000000 0x321 w25q80bv.o - .gnu.lto_w25q80bv_write_enable.f192c07b - 0x00000000 0xda w25q80bv.o - .gnu.lto_w25q80bv_chip_erase.f192c07b - 0x00000000 0x1d5 w25q80bv.o - .gnu.lto_w25q80bv_sector_erase.f192c07b - 0x00000000 0x2d1 w25q80bv.o - .gnu.lto_w25q80bv_page_program.f192c07b - 0x00000000 0x3c0 w25q80bv.o - .gnu.lto_w25q80bv_program.part.1.f192c07b - 0x00000000 0x3cb w25q80bv.o - .gnu.lto_w25q80bv_program.f192c07b - 0x00000000 0x253 w25q80bv.o - .gnu.lto_w25q80bv_read.f192c07b - 0x00000000 0x1a6 w25q80bv.o - .gnu.lto_.cgraph.f192c07b - 0x00000000 0x1a6 w25q80bv.o - .gnu.lto_.vars.f192c07b - 0x00000000 0x19 w25q80bv.o - .gnu.lto_.refs.f192c07b - 0x00000000 0x23 w25q80bv.o - .gnu.lto_.statics.f192c07b - 0x00000000 0x14 w25q80bv.o - .gnu.lto_.decls.f192c07b - 0x00000000 0x118c w25q80bv.o - .gnu.lto_.symtab.f192c07b - 0x00000000 0x21d w25q80bv.o - .gnu.lto_.opts - 0x00000000 0x52 w25q80bv.o - .text.w25q80bv_chip_erase - 0x00000000 0x48 w25q80bv.o - .text 0x00000000 0x0 rom_iap.o - .data 0x00000000 0x0 rom_iap.o - .bss 0x00000000 0x0 rom_iap.o - .gnu.lto_.jmpfuncs.f192dfdb - 0x00000000 0x27 rom_iap.o - .gnu.lto_.inline.f192dfdb - 0x00000000 0x51 rom_iap.o - .gnu.lto_.pureconst.f192dfdb - 0x00000000 0x18 rom_iap.o - .gnu.lto_iap_is_implemented.f192dfdb - 0x00000000 0x147 rom_iap.o - .gnu.lto_iap_cmd_call.f192dfdb - 0x00000000 0x39a rom_iap.o - .gnu.lto_.cgraph.f192dfdb - 0x00000000 0x4f rom_iap.o - .gnu.lto_.vars.f192dfdb - 0x00000000 0x12 rom_iap.o - .gnu.lto_.refs.f192dfdb - 0x00000000 0x13 rom_iap.o - .gnu.lto_.statics.f192dfdb - 0x00000000 0x14 rom_iap.o - .gnu.lto_.decls.f192dfdb - 0x00000000 0x88a rom_iap.o - .gnu.lto_.symtab.f192dfdb - 0x00000000 0x82 rom_iap.o - .gnu.lto_.opts - 0x00000000 0x52 rom_iap.o - .text 0x00000000 0x0 signal_mcu.o - .data 0x00000000 0x0 signal_mcu.o - .bss 0x00000000 0x0 signal_mcu.o - .gnu.lto_.inline.f192cbd1 - 0x00000000 0x12 signal_mcu.o - .gnu.lto_.pureconst.f192cbd1 - 0x00000000 0x12 signal_mcu.o - .gnu.lto_.cgraph.f192cbd1 - 0x00000000 0x13 signal_mcu.o - .gnu.lto_.vars.f192cbd1 - 0x00000000 0x12 signal_mcu.o - .gnu.lto_.refs.f192cbd1 - 0x00000000 0x13 signal_mcu.o - .gnu.lto_.statics.f192cbd1 - 0x00000000 0x14 signal_mcu.o - .gnu.lto_.decls.f192cbd1 - 0x00000000 0x1a signal_mcu.o - .gnu.lto_.symtab.f192cbd1 - 0x00000000 0x0 signal_mcu.o - .gnu.lto_.opts - 0x00000000 0x52 signal_mcu.o - .debug_line 0x00000000 0x0 signal_mcu.o - .comment 0x00000000 0x71 signal_mcu.o - .ARM.attributes - 0x00000000 0x31 signal_mcu.o - .text 0x00000000 0x0 usb.o - .data 0x00000000 0x0 usb.o - .bss 0x00000000 0x0 usb.o - .gnu.lto_.jmpfuncs.f192ffd7 - 0x00000000 0xae usb.o - .gnu.lto_.inline.f192ffd7 - 0x00000000 0x220 usb.o - .gnu.lto_.pureconst.f192ffd7 - 0x00000000 0x5c usb.o - .gnu.lto_usb_phy_enable.f192ffd7 - 0x00000000 0xf8 usb.o - .gnu.lto_usb_clear_pending_interrupts.f192ffd7 - 0x00000000 0x174 usb.o - .gnu.lto_usb_clear_all_pending_interrupts.f192ffd7 - 0x00000000 0x9c usb.o - .gnu.lto_usb_wait_for_endpoint_priming_to_finish.f192ffd7 - 0x00000000 0x145 usb.o - .gnu.lto_usb_wait_for_endpoint_flushing_to_finish.f192ffd7 - 0x00000000 0x147 usb.o - .gnu.lto_usb_flush_primed_endpoints.f192ffd7 - 0x00000000 0x127 usb.o - .gnu.lto_usb_flush_all_primed_endpoints.f192ffd7 - 0x00000000 0x9c usb.o - .gnu.lto_usb_endpoint_set_type.f192ffd7 - 0x00000000 0x2a5 usb.o - .gnu.lto_usb_endpoint_enable.f192ffd7 - 0x00000000 0x294 usb.o - .gnu.lto_usb_endpoint_clear_pending_interrupts.f192ffd7 - 0x00000000 0x273 usb.o - .gnu.lto_usb_endpoint_is_priming.f192ffd7 - 0x00000000 0x2da usb.o - .gnu.lto_usb_controller_run.f192ffd7 - 0x00000000 0xf7 usb.o - .gnu.lto_usb_controller_stop.f192ffd7 - 0x00000000 0xf9 usb.o - .gnu.lto_usb_controller_is_resetting.f192ffd7 - 0x00000000 0x127 usb.o - .gnu.lto_usb_controller_set_device_mode.f192ffd7 - 0x00000000 0xb6 usb.o - .gnu.lto_usb_get_status.f192ffd7 - 0x00000000 0x158 usb.o - .gnu.lto_usb_disable_all_endpoints.f192ffd7 - 0x00000000 0x1a3 usb.o - .gnu.lto_usb_reset_all_endpoints.f192ffd7 - 0x00000000 0xa7 usb.o - .gnu.lto_usb_controller_reset.f192ffd7 - 0x00000000 0x140 usb.o - .gnu.lto_copy_setup.f192ffd7 - 0x00000000 0x20c usb.o - .gnu.lto_usb_interrupt_enable.f192ffd7 - 0x00000000 0x147 usb.o - .gnu.lto_usb_speed.part.1.f192ffd7 - 0x00000000 0x1cc usb.o - .gnu.lto_usb_device_init.part.2.f192ffd7 - 0x00000000 0x1e2 usb.o - .gnu.lto_usb_queue_head.f192ffd7 - 0x00000000 0x15e usb.o - .gnu.lto_usb_endpoint_from_address.f192ffd7 - 0x00000000 0x143 usb.o - .gnu.lto_usb_check_for_transfer_events.f192ffd7 - 0x00000000 0x494 usb.o - .gnu.lto_usb_check_for_setup_events.f192ffd7 - 0x00000000 0x4c8 usb.o - .gnu.lto_usb_peripheral_reset.f192ffd7 - 0x00000000 0x13f usb.o - .gnu.lto_usb_endpoint_prime.f192ffd7 - 0x00000000 0x32f usb.o - .gnu.lto_usb_endpoint_flush.f192ffd7 - 0x00000000 0x298 usb.o - .gnu.lto_usb_endpoint_disable.f192ffd7 - 0x00000000 0x2c2 usb.o - .gnu.lto_usb_endpoint_is_ready.f192ffd7 - 0x00000000 0x2db usb.o - .gnu.lto_usb_endpoint_schedule_append.part.0.f192ffd7 - 0x00000000 0x26e usb.o - .gnu.lto_usb_endpoint_schedule_append.f192ffd7 - 0x00000000 0x1a6 usb.o - .gnu.lto_usb_endpoint_schedule_wait.f192ffd7 - 0x00000000 0x17f usb.o - .gnu.lto_usb_endpoint_is_complete.f192ffd7 - 0x00000000 0x2dd usb.o - .gnu.lto_usb_endpoint_stall.f192ffd7 - 0x00000000 0x1f6 usb.o - .gnu.lto_usb_speed.f192ffd7 - 0x00000000 0x178 usb.o - .gnu.lto_usb_set_address_immediate.f192ffd7 - 0x00000000 0x18f usb.o - .gnu.lto_usb_bus_reset.f192ffd7 - 0x00000000 0xf0 usb.o - .gnu.lto_usb0_isr.part.3.f192ffd7 - 0x00000000 0x13b usb.o - .gnu.lto_usb_set_address_deferred.f192ffd7 - 0x00000000 0x1aa usb.o - .gnu.lto_usb_device_init.f192ffd7 - 0x00000000 0x119 usb.o - .gnu.lto_usb_run.f192ffd7 - 0x00000000 0xdb usb.o - .gnu.lto_usb_endpoint_init.f192ffd7 - 0x00000000 0x457 usb.o - .gnu.lto_usb0_isr.f192ffd7 - 0x00000000 0x1a4 usb.o - .gnu.lto_.cgraph.f192ffd7 - 0x00000000 0x214 usb.o - .gnu.lto_.vars.f192ffd7 - 0x00000000 0x1d usb.o - .gnu.lto_.refs.f192ffd7 - 0x00000000 0x2e usb.o - .gnu.lto_.statics.f192ffd7 - 0x00000000 0x14 usb.o - .gnu.lto_.decls.f192ffd7 - 0x00000000 0x19fe usb.o - .gnu.lto_.symtab.f192ffd7 - 0x00000000 0x37c usb.o - .gnu.lto_.opts - 0x00000000 0x52 usb.o - .text.usb_endpoint_is_complete - 0x00000000 0x2c usb.o - .text 0x00000000 0x0 usb_queue.o - .data 0x00000000 0x0 usb_queue.o - .bss 0x00000000 0x0 usb_queue.o - .gnu.lto_.jmpfuncs.f192d722 - 0x00000000 0x52 usb_queue.o - .gnu.lto_.inline.f192d722 - 0x00000000 0x103 usb_queue.o - .gnu.lto_.pureconst.f192d722 - 0x00000000 0x30 usb_queue.o - .gnu.lto_cm_enable_interrupts.f192d722 - 0x00000000 0x9f usb_queue.o - .gnu.lto_cm_disable_interrupts.f192d722 - 0x00000000 0x9f usb_queue.o - .gnu.lto_endpoint_queue.f192d722 - 0x00000000 0x1eb usb_queue.o - .gnu.lto_allocate_transfer.f192d722 - 0x00000000 0x1e3 usb_queue.o - .gnu.lto_free_transfer.f192d722 - 0x00000000 0x18e usb_queue.o - .gnu.lto_free_transfer_nolock.f192d722 - 0x00000000 0x16b usb_queue.o - .gnu.lto_endpoint_queue_transfer.f192d722 - 0x00000000 0x256 usb_queue.o - .gnu.lto_usb_queue_flush_queue.f192d722 - 0x00000000 0x1e9 usb_queue.o - .gnu.lto_usb_queue_init.f192d722 - 0x00000000 0x355 usb_queue.o - .gnu.lto_usb_queue_flush_endpoint.f192d722 - 0x00000000 0x108 usb_queue.o - .gnu.lto_usb_transfer_schedule.f192d722 - 0x00000000 0x492 usb_queue.o - .gnu.lto_usb_transfer_schedule_block.f192d722 - 0x00000000 0x185 usb_queue.o - .gnu.lto_usb_transfer_schedule_ack.f192d722 - 0x00000000 0x100 usb_queue.o - .gnu.lto_usb_queue_transfer_complete.f192d722 - 0x00000000 0x34d usb_queue.o - .gnu.lto_.cgraph.f192d722 - 0x00000000 0xda usb_queue.o - .gnu.lto_.vars.f192d722 - 0x00000000 0x19 usb_queue.o - .gnu.lto_.refs.f192d722 - 0x00000000 0x1b usb_queue.o - .gnu.lto_.statics.f192d722 - 0x00000000 0x14 usb_queue.o - .gnu.lto_.decls.f192d722 - 0x00000000 0xfdf usb_queue.o - .gnu.lto_.symtab.f192d722 - 0x00000000 0x15f usb_queue.o - .gnu.lto_.opts - 0x00000000 0x52 usb_queue.o - .text 0x00000000 0x0 usb_request.o - .data 0x00000000 0x0 usb_request.o - .bss 0x00000000 0x0 usb_request.o - .gnu.lto_.jmpfuncs.f192e91d - 0x00000000 0x41 usb_request.o - .gnu.lto_.inline.f192e91d - 0x00000000 0x58 usb_request.o - .gnu.lto_.pureconst.f192e91d - 0x00000000 0x1c usb_request.o - .gnu.lto_usb_request.f192e91d - 0x00000000 0x342 usb_request.o - .gnu.lto_usb_setup_complete.f192e91d - 0x00000000 0xd9 usb_request.o - .gnu.lto_usb_control_out_complete.f192e91d - 0x00000000 0x1da usb_request.o - .gnu.lto_usb_control_in_complete.f192e91d - 0x00000000 0x1da usb_request.o - .gnu.lto_.cgraph.f192e91d - 0x00000000 0x72 usb_request.o - .gnu.lto_.vars.f192e91d - 0x00000000 0x19 usb_request.o - .gnu.lto_.refs.f192e91d - 0x00000000 0x19 usb_request.o - .gnu.lto_.statics.f192e91d - 0x00000000 0x14 usb_request.o - .gnu.lto_.decls.f192e91d - 0x00000000 0xb7e usb_request.o - .gnu.lto_.symtab.f192e91d - 0x00000000 0xe2 usb_request.o - .gnu.lto_.opts - 0x00000000 0x52 usb_request.o - .text 0x00000000 0x0 usb_standard_request.o - .data 0x00000000 0x0 usb_standard_request.o - .bss 0x00000000 0x0 usb_standard_request.o - .gnu.lto_.jmpfuncs.f192a3c5 - 0x00000000 0xf6 usb_standard_request.o - .gnu.lto_.inline.f192a3c5 - 0x00000000 0x1d2 usb_standard_request.o - .gnu.lto_.pureconst.f192a3c5 - 0x00000000 0x40 usb_standard_request.o - .gnu.lto_usb_standard_request_get_status_endpoint.f192a3c5 - 0x00000000 0x312 usb_standard_request.o - .gnu.lto_usb_standard_request_get_status.f192a3c5 - 0x00000000 0x2be usb_standard_request.o - .gnu.lto_usb_standard_request_clear_feature_endpoint.f192a3c5 - 0x00000000 0x284 usb_standard_request.o - .gnu.lto_usb_standard_request_clear_feature.f192a3c5 - 0x00000000 0x203 usb_standard_request.o - .gnu.lto_usb_standard_request_set_feature_endpoint.f192a3c5 - 0x00000000 0x285 usb_standard_request.o - .gnu.lto_usb_standard_request_set_feature.f192a3c5 - 0x00000000 0x202 usb_standard_request.o - .gnu.lto_usb_standard_request_get_interface.f192a3c5 - 0x00000000 0x252 usb_standard_request.o - .gnu.lto_usb_standard_request_set_interface.f192a3c5 - 0x00000000 0x21c usb_standard_request.o - .gnu.lto_usb_send_descriptor.f192a3c5 - 0x00000000 0x356 usb_standard_request.o - .gnu.lto_usb_send_descriptor_config.f192a3c5 - 0x00000000 0x349 usb_standard_request.o - .gnu.lto_usb_send_descriptor_string.f192a3c5 - 0x00000000 0x315 usb_standard_request.o - .gnu.lto_usb_standard_request_get_configuration_setup.f192a3c5 - 0x00000000 0x2e2 usb_standard_request.o - .gnu.lto_usb_standard_request_get_configuration.f192a3c5 - 0x00000000 0x19c usb_standard_request.o - .gnu.lto_usb_standard_request_get_descriptor_setup.f192a3c5 - 0x00000000 0x3bd usb_standard_request.o - .gnu.lto_usb_standard_request_get_descriptor.f192a3c5 - 0x00000000 0x19e usb_standard_request.o - .gnu.lto_usb_standard_request_set_address_setup.f192a3c5 - 0x00000000 0x1b7 usb_standard_request.o - .gnu.lto_usb_standard_request_set_address.f192a3c5 - 0x00000000 0x19b usb_standard_request.o - .gnu.lto_usb_endpoint_descriptor.f192a3c5 - 0x00000000 0x2fe usb_standard_request.o - .gnu.lto_usb_endpoint_descriptor_max_packet_size.f192a3c5 - 0x00000000 0x19b usb_standard_request.o - .gnu.lto_usb_endpoint_descriptor_transfer_type.f192a3c5 - 0x00000000 0x12d usb_standard_request.o - .gnu.lto_usb_set_configuration_changed_cb.f192a3c5 - 0x00000000 0xea usb_standard_request.o - .gnu.lto_usb_set_configuration.f192a3c5 - 0x00000000 0x479 usb_standard_request.o - .gnu.lto_usb_standard_request_set_configuration_setup.f192a3c5 - 0x00000000 0x279 usb_standard_request.o - .gnu.lto_usb_standard_request_set_configuration.f192a3c5 - 0x00000000 0x19d usb_standard_request.o - .gnu.lto_usb_standard_request.f192a3c5 - 0x00000000 0x2da usb_standard_request.o - .gnu.lto_.cgraph.f192a3c5 - 0x00000000 0x190 usb_standard_request.o - .gnu.lto_.vars.f192a3c5 - 0x00000000 0x2c usb_standard_request.o - .gnu.lto_.refs.f192a3c5 - 0x00000000 0x2c usb_standard_request.o - .gnu.lto_.statics.f192a3c5 - 0x00000000 0x14 usb_standard_request.o - .gnu.lto_.decls.f192a3c5 - 0x00000000 0x14d2 usb_standard_request.o - .gnu.lto_.symtab.f192a3c5 - 0x00000000 0x2a4 usb_standard_request.o - .gnu.lto_.opts - 0x00000000 0x52 usb_standard_request.o - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .text 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .data 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .bss 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .text 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .data 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .bss 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_macro 0x00000000 0x7de ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_macro 0x00000000 0x3a ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_macro 0x00000000 0x10 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_macro 0x00000000 0x2e ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_macro 0x00000000 0xa2 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_macro 0x00000000 0x20e ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_macro 0x00000000 0x22 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_macro 0x00000000 0xfa ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_macro 0x00000000 0x16f ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .text 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .data 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .bss 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .text.ssp_disable - 0x00000000 0x18 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_macro 0x00000000 0x7de ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_macro 0x00000000 0x3a ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_macro 0x00000000 0x10 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_macro 0x00000000 0x2e ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_macro 0x00000000 0xa2 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_macro 0x00000000 0x20e ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_macro 0x00000000 0x22 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_macro 0x00000000 0xfa ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_macro 0x00000000 0x16f ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_macro 0x00000000 0xaca ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .text 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .data 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .bss 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_macro 0x00000000 0x7de ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_macro 0x00000000 0x3a ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_macro 0x00000000 0x10 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_macro 0x00000000 0x2e ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_macro 0x00000000 0xa2 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_macro 0x00000000 0x20e ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_macro 0x00000000 0x22 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_macro 0x00000000 0xfa ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .text 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .data 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .bss 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .text.nvic_disable_irq - 0x00000000 0x18 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .text.nvic_get_pending_irq - 0x00000000 0x20 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .text.nvic_set_pending_irq - 0x00000000 0x18 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .text.nvic_clear_pending_irq - 0x00000000 0x18 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .text.nvic_get_irq_enabled - 0x00000000 0x20 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .debug_macro 0x00000000 0x7de ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .debug_macro 0x00000000 0x3a ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .debug_macro 0x00000000 0x10 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .debug_macro 0x00000000 0x2e ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .debug_macro 0x00000000 0xa2 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .debug_macro 0x00000000 0x20e ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .debug_macro 0x00000000 0x22 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .debug_macro 0x00000000 0xfa ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .debug_macro 0x00000000 0x2e ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .debug_macro 0x00000000 0x47 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .debug_macro 0x00000000 0xc4 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .data 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_thumb1_case_uqi.o) - .bss 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_thumb1_case_uqi.o) - .data 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_udivsi3.o) - .bss 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_udivsi3.o) - .data 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_dvmd_tls.o) - .bss 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_dvmd_tls.o) - .text 0x00000000 0x48 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_aeabi_ldivmod.o) - .data 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_aeabi_ldivmod.o) - .bss 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_aeabi_ldivmod.o) - .ARM.attributes - 0x00000000 0x1e c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_aeabi_ldivmod.o) - .data 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_muldi3.o) - .bss 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_muldi3.o) - .text 0x00000000 0x74 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(bpabi.o) - .data 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(bpabi.o) - .bss 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(bpabi.o) - .ARM.attributes - 0x00000000 0x2c c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(bpabi.o) - .debug_frame 0x00000000 0x60 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(bpabi.o) - .text 0x00000000 0x3d0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_divdi3.o) - .data 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_divdi3.o) - .bss 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_divdi3.o) - .ARM.extab 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_divdi3.o) - .ARM.exidx 0x00000000 0x8 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_divdi3.o) - .ARM.attributes - 0x00000000 0x2c c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_divdi3.o) - .debug_frame 0x00000000 0x3c c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_divdi3.o) - .text 0x00000000 0x38c c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_udivdi3.o) - .data 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_udivdi3.o) - .bss 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_udivdi3.o) - .ARM.extab 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_udivdi3.o) - .ARM.exidx 0x00000000 0x8 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_udivdi3.o) - .ARM.attributes - 0x00000000 0x2c c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_udivdi3.o) - .debug_frame 0x00000000 0x3c c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_udivdi3.o) - .text 0x00000000 0x3c c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_clzsi2.o) - .data 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_clzsi2.o) - .bss 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_clzsi2.o) - .ARM.attributes - 0x00000000 0x1e c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_clzsi2.o) - .text 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-memcpy.o) - .data 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-memcpy.o) - .bss 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-memcpy.o) - .text 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-strcpy.o) - .data 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-strcpy.o) - .bss 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-strcpy.o) - .text 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-strlen.o) - .data 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-strlen.o) - .bss 0x00000000 0x0 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-strlen.o) - -Memory Configuration - -Name Origin Length Attributes -rom 0x00000000 0x00100000 xr -ram_local1 0x10000000 0x00020000 xrw -ram_local2 0x10080000 0x00012000 xrw -ram_local_m0sub 0x18000000 0x00004800 xrw -ram_ahb1_m0_stack 0x20000000 0x00001000 xrw -ram_ahb1_spare 0x20001000 0x00000c00 xrw -ram_ahb1_m4_share 0x20001c00 0x00000400 xrw -ram_ahb1_adchs 0x20002000 0x00001000 xrw -ram_ahb1_m0_share 0x20003000 0x00001000 xrw -ram_ahb2 0x2000c000 0x00004000 xrw -*default* 0x00000000 0xffffffff - -Linker script and memory map - -LOAD c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a -LOAD c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libnosys.a -LOAD airspy_m0.o -LOAD airspy_rx.o -LOAD airspy_usb_req.o -LOAD usb_descriptor.o -LOAD usb_device.o -LOAD usb_endpoint.o -LOAD airspy_core.o -LOAD fault_handler.o -LOAD si5351c.o -LOAD r820t.o -LOAD w25q80bv.o -LOAD rom_iap.o -LOAD signal_mcu.o -LOAD usb.o -LOAD usb_queue.o -LOAD usb_request.o -LOAD usb_standard_request.o -LOAD ../libopencm3/lib\libopencm3_lpc43xx_m0.a -START GROUP -LOAD c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a -LOAD c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a -END GROUP - 0x20001c00 cm4_data_share = ORIGIN (ram_ahb1_m4_share) - 0x20002000 adchs_data = ORIGIN (ram_ahb1_adchs) - 0x20003000 cm0_data_share = ORIGIN (ram_ahb1_m0_share) - 0x2000c000 cm0_exec_baseaddr = ORIGIN (ram_ahb2) - 0x18000000 cm0s_exec_baseaddr = ORIGIN (ram_local_m0sub) - 0x20001000 conf_data_share = ORIGIN (ram_ahb1_spare) - 0x00000c00 conf_data_share_size = 0xc00 - 0x2000c000 . = ORIGIN (ram_ahb2) - -.text 0x2000c000 0x2c6c - 0x2000c000 . = ALIGN (0x400) - *(.vectors) - .vectors 0x2000c000 0xc0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - 0x2000c000 vector_table - *(.text*) - .text.usb_configuration_changed - 0x2000c0c0 0x14 airspy_m0.o - 0x2000c0c0 usb_configuration_changed - .text.set_samplerate_m4 - 0x2000c0d4 0x1c airspy_m0.o - 0x2000c0d4 set_samplerate_m4 - .text.set_packing_m4 - 0x2000c0f0 0x1c airspy_m0.o - 0x2000c0f0 set_packing_m4 - .text.ADCHS_start - 0x2000c10c 0x90 airspy_m0.o - 0x2000c10c ADCHS_start - .text.ADCHS_stop - 0x2000c19c 0x3c airspy_m0.o - 0x2000c19c ADCHS_stop - .text.m4core_isr - 0x2000c1d8 0xc airspy_m0.o - 0x2000c1d8 m4core_isr - .text.startup.main - 0x2000c1e4 0xe0 airspy_m0.o - 0x2000c1e4 main - .text.set_receiver_mode - 0x2000c2c4 0x34 airspy_rx.o - 0x2000c2c4 set_receiver_mode - .text.get_receiver_mode - 0x2000c2f8 0xc airspy_rx.o - 0x2000c2f8 get_receiver_mode - .text.usb_vendor_request - 0x2000c304 0x24 airspy_usb_req.o - 0x2000c304 usb_vendor_request - .text.usb_vendor_request_reset - 0x2000c328 0xe airspy_usb_req.o - 0x2000c328 usb_vendor_request_reset - .text.usb_vendor_request_erase_sector_spiflash - 0x2000c336 0x2a airspy_usb_req.o - 0x2000c336 usb_vendor_request_erase_sector_spiflash - .text.usb_vendor_request_gpiodir_write_command - 0x2000c360 0x44 airspy_usb_req.o - 0x2000c360 usb_vendor_request_gpiodir_write_command - .text.usb_vendor_request_erase_spiflash - 0x2000c3a4 0x1c airspy_usb_req.o - 0x2000c3a4 usb_vendor_request_erase_spiflash - .text.usb_vendor_request_get_samplerates_command - 0x2000c3c0 0x6c airspy_usb_req.o - 0x2000c3c0 usb_vendor_request_get_samplerates_command - .text.usb_vendor_request_gpiodir_read_command - 0x2000c42c 0x4c airspy_usb_req.o - 0x2000c42c usb_vendor_request_gpiodir_read_command - .text.usb_vendor_request_ms_vendor_command - 0x2000c478 0x48 airspy_usb_req.o - 0x2000c478 usb_vendor_request_ms_vendor_command - .text.usb_vendor_request_read_board_id - 0x2000c4c0 0x20 airspy_usb_req.o - 0x2000c4c0 usb_vendor_request_read_board_id - .text.usb_vendor_request_set_rf_bias_command - 0x2000c4e0 0x22 airspy_usb_req.o - 0x2000c4e0 usb_vendor_request_set_rf_bias_command - *fill* 0x2000c502 0x2 00 - .text.usb_vendor_request_set_mixer_agc - 0x2000c504 0x30 airspy_usb_req.o - 0x2000c504 usb_vendor_request_set_mixer_agc - .text.usb_vendor_request_set_lna_agc - 0x2000c534 0x30 airspy_usb_req.o - 0x2000c534 usb_vendor_request_set_lna_agc - .text.usb_vendor_request_set_vga_gain - 0x2000c564 0x30 airspy_usb_req.o - 0x2000c564 usb_vendor_request_set_vga_gain - .text.usb_vendor_request_set_mixer_gain - 0x2000c594 0x30 airspy_usb_req.o - 0x2000c594 usb_vendor_request_set_mixer_gain - .text.usb_vendor_request_set_lna_gain - 0x2000c5c4 0x30 airspy_usb_req.o - 0x2000c5c4 usb_vendor_request_set_lna_gain - .text.usb_vendor_request_set_freq - 0x2000c5f4 0x38 airspy_usb_req.o - 0x2000c5f4 usb_vendor_request_set_freq - .text.usb_vendor_request_set_samplerate - 0x2000c62c 0xc0 airspy_usb_req.o - 0x2000c62c usb_vendor_request_set_samplerate - .text.usb_vendor_request_set_packing_command - 0x2000c6ec 0x54 airspy_usb_req.o - 0x2000c6ec usb_vendor_request_set_packing_command - .text.usb_vendor_request_read_partid_serialno - 0x2000c740 0x60 airspy_usb_req.o - 0x2000c740 usb_vendor_request_read_partid_serialno - .text.usb_vendor_request_read_version_string - 0x2000c7a0 0x60 airspy_usb_req.o - 0x2000c7a0 usb_vendor_request_read_version_string - .text.usb_vendor_request_read_spiflash - 0x2000c800 0x8c airspy_usb_req.o - 0x2000c800 usb_vendor_request_read_spiflash - .text.usb_vendor_request_write_spiflash - 0x2000c88c 0x78 airspy_usb_req.o - 0x2000c88c usb_vendor_request_write_spiflash - .text.usb_vendor_request_read_r820t - 0x2000c904 0x40 airspy_usb_req.o - 0x2000c904 usb_vendor_request_read_r820t - .text.usb_vendor_request_write_r820t - 0x2000c944 0x38 airspy_usb_req.o - 0x2000c944 usb_vendor_request_write_r820t - .text.usb_vendor_request_read_si5351c - 0x2000c97c 0x34 airspy_usb_req.o - 0x2000c97c usb_vendor_request_read_si5351c - .text.usb_vendor_request_write_si5351c - 0x2000c9b0 0x2c airspy_usb_req.o - 0x2000c9b0 usb_vendor_request_write_si5351c - .text.usb_vendor_request_set_receiver_mode - 0x2000c9dc 0x26 airspy_usb_req.o - 0x2000c9dc usb_vendor_request_set_receiver_mode - *fill* 0x2000ca02 0x2 00 - .text.usb_vendor_request_write_gpio_command - 0x2000ca04 0x48 airspy_usb_req.o - 0x2000ca04 usb_vendor_request_write_gpio_command - .text.usb_vendor_request_read_gpio_command - 0x2000ca4c 0x58 airspy_usb_req.o - 0x2000ca4c usb_vendor_request_read_gpio_command - .text.gpio_set - 0x2000caa4 0xa airspy_usb_req.o - 0x2000caa4 gpio_set - .text.gpio_clear - 0x2000caae 0xa airspy_usb_req.o - 0x2000caae gpio_clear - .text.usb_streaming_disable - 0x2000cab8 0x18 airspy_usb_req.o - 0x2000cab8 usb_streaming_disable - .text.airspy_usb_req_init - 0x2000cad0 0x100 airspy_usb_req.o - 0x2000cad0 airspy_usb_req_init - .text.usb_descriptor_fill_string_serial_number - 0x2000cbd0 0xc0 usb_descriptor.o - 0x2000cbd0 usb_descriptor_fill_string_serial_number - .text.delay 0x2000cc90 0xe airspy_core.o - 0x2000cc90 delay - *fill* 0x2000cc9e 0x2 00 - .text.cpu_reset - 0x2000cca0 0xc airspy_core.o - 0x2000cca0 cpu_reset - .text.enable_biast_power - 0x2000ccac 0x14 airspy_core.o - 0x2000ccac enable_biast_power - .text.disable_biast_power - 0x2000ccc0 0x14 airspy_core.o - 0x2000ccc0 disable_biast_power - .text.hard_fault_handler - 0x2000ccd4 0x14 fault_handler.o - 0x2000ccd4 hard_fault_handler - .text.hard_fault_handler_c - 0x2000cce8 0xc fault_handler.o - 0x2000cce8 hard_fault_handler_c - .text.si5351c_write_single - 0x2000ccf4 0x22 si5351c.o - 0x2000ccf4 si5351c_write_single - .text.si5351c_read_single - 0x2000cd16 0x2c si5351c.o - 0x2000cd16 si5351c_read_single - *fill* 0x2000cd42 0x2 00 - .text.airspy_r820t_write_direct - 0x2000cd44 0x3c r820t.o - .text.r820t_freq_get_idx - 0x2000cd80 0x20 r820t.o - 0x2000cd80 r820t_freq_get_idx - .text.airspy_r820t_write_init - 0x2000cda0 0x44 r820t.o - 0x2000cda0 airspy_r820t_write_init - .text.airspy_r820t_read - 0x2000cde4 0xa4 r820t.o - 0x2000cde4 airspy_r820t_read - .text.airspy_r820t_write_single - 0x2000ce88 0x44 r820t.o - 0x2000ce88 airspy_r820t_write_single - .text.r820t_write_reg - 0x2000cecc 0x1e r820t.o - .text.r820t_write_reg_mask - 0x2000ceea 0x20 r820t.o - *fill* 0x2000cf0a 0x2 00 - .text.airspy_r820t_read_single - 0x2000cf0c 0x18 r820t.o - 0x2000cf0c airspy_r820t_read_single - .text.r820t_set_pll - 0x2000cf24 0xd4 r820t.o - 0x2000cf24 r820t_set_pll - .text.r820t_set_freq - 0x2000cff8 0xa8 r820t.o - 0x2000cff8 r820t_set_freq - .text.r820t_set_lna_gain - 0x2000d0a0 0xe r820t.o - 0x2000d0a0 r820t_set_lna_gain - .text.r820t_set_mixer_gain - 0x2000d0ae 0xe r820t.o - 0x2000d0ae r820t_set_mixer_gain - .text.r820t_set_vga_gain - 0x2000d0bc 0xe r820t.o - 0x2000d0bc r820t_set_vga_gain - .text.r820t_set_lna_agc - 0x2000d0ca 0x12 r820t.o - 0x2000d0ca r820t_set_lna_agc - .text.r820t_set_mixer_agc - 0x2000d0dc 0x12 r820t.o - 0x2000d0dc r820t_set_mixer_agc - *fill* 0x2000d0ee 0x2 00 - .text.r820t_calibrate - 0x2000d0f0 0xa8 r820t.o - 0x2000d0f0 r820t_calibrate - .text.r820t_init - 0x2000d198 0x40 r820t.o - 0x2000d198 r820t_init - .text.r820t_set_if_bandwidth - 0x2000d1d8 0x4c r820t.o - 0x2000d1d8 r820t_set_if_bandwidth - .text.r820t_standby - 0x2000d224 0x68 r820t.o - 0x2000d224 r820t_standby - .text.r820t_startup - 0x2000d28c 0x18 r820t.o - 0x2000d28c r820t_startup - .text.w25q80bv_get_status - 0x2000d2a4 0x34 w25q80bv.o - 0x2000d2a4 w25q80bv_get_status - .text.w25q80bv_get_device_id - 0x2000d2d8 0x4c w25q80bv.o - 0x2000d2d8 w25q80bv_get_device_id - .text.w25q80bv_setup - 0x2000d324 0xf4 w25q80bv.o - 0x2000d324 w25q80bv_setup - .text.w25q80bv_get_unique_id - 0x2000d418 0x94 w25q80bv.o - 0x2000d418 w25q80bv_get_unique_id - .text.w25q80bv_wait_while_busy - 0x2000d4ac 0xc w25q80bv.o - 0x2000d4ac w25q80bv_wait_while_busy - .text.w25q80bv_write_enable - 0x2000d4b8 0x2c w25q80bv.o - 0x2000d4b8 w25q80bv_write_enable - .text.w25q80bv_sector_erase - 0x2000d4e4 0x68 w25q80bv.o - 0x2000d4e4 w25q80bv_sector_erase - .text.w25q80bv_page_program - 0x2000d54c 0x78 w25q80bv.o - 0x2000d54c w25q80bv_page_program - .text.w25q80bv_program - 0x2000d5c4 0x7e w25q80bv.o - 0x2000d5c4 w25q80bv_program - *fill* 0x2000d642 0x2 00 - .text.w25q80bv_read - 0x2000d644 0x7c w25q80bv.o - 0x2000d644 w25q80bv_read - .text.iap_is_implemented - 0x2000d6c0 0x18 rom_iap.o - 0x2000d6c0 iap_is_implemented - .text.iap_cmd_call - 0x2000d6d8 0x5c rom_iap.o - 0x2000d6d8 iap_cmd_call - .text.usb_clear_pending_interrupts - 0x2000d734 0x34 usb.o - .text.usb_flush_primed_endpoints - 0x2000d768 0x1c usb.o - .text.usb_disable_all_endpoints - 0x2000d784 0x50 usb.o - .text.usb_queue_head - 0x2000d7d4 0x18 usb.o - 0x2000d7d4 usb_queue_head - .text.usb_peripheral_reset - 0x2000d7ec 0x20 usb.o - 0x2000d7ec usb_peripheral_reset - .text.usb_endpoint_prime - 0x2000d80c 0x30 usb.o - 0x2000d80c usb_endpoint_prime - .text.usb_endpoint_flush - 0x2000d83c 0x20 usb.o - 0x2000d83c usb_endpoint_flush - .text.usb_endpoint_disable - 0x2000d85c 0x54 usb.o - 0x2000d85c usb_endpoint_disable - .text.usb_endpoint_is_ready - 0x2000d8b0 0x2c usb.o - 0x2000d8b0 usb_endpoint_is_ready - .text.usb_endpoint_schedule_append - 0x2000d8dc 0x68 usb.o - 0x2000d8dc usb_endpoint_schedule_append - .text.usb_endpoint_schedule_wait - 0x2000d944 0x1e usb.o - 0x2000d944 usb_endpoint_schedule_wait - *fill* 0x2000d962 0x2 00 - .text.usb_endpoint_stall - 0x2000d964 0x20 usb.o - 0x2000d964 usb_endpoint_stall - .text.usb_speed - 0x2000d984 0x2c usb.o - 0x2000d984 usb_speed - .text.usb_set_address_immediate - 0x2000d9b0 0x18 usb.o - 0x2000d9b0 usb_set_address_immediate - .text.usb_set_address_deferred - 0x2000d9c8 0x20 usb.o - 0x2000d9c8 usb_set_address_deferred - .text.usb_device_init - 0x2000d9e8 0x88 usb.o - 0x2000d9e8 usb_device_init - .text.usb_run 0x2000da70 0x24 usb.o - 0x2000da70 usb_run - .text.usb_endpoint_init - 0x2000da94 0x90 usb.o - 0x2000da94 usb_endpoint_init - .text.usb0_isr - 0x2000db24 0x18c usb.o - 0x2000db24 usb0_isr - .text.endpoint_queue - 0x2000dcb0 0x20 usb_queue.o - .text.usb_queue_init - 0x2000dcd0 0x54 usb_queue.o - 0x2000dcd0 usb_queue_init - .text.usb_queue_flush_endpoint - 0x2000dd24 0x22 usb_queue.o - 0x2000dd24 usb_queue_flush_endpoint - *fill* 0x2000dd46 0x2 00 - .text.usb_transfer_schedule - 0x2000dd48 0xa0 usb_queue.o - 0x2000dd48 usb_transfer_schedule - .text.usb_transfer_schedule_block - 0x2000dde8 0x1a usb_queue.o - 0x2000dde8 usb_transfer_schedule_block - .text.usb_transfer_schedule_ack - 0x2000de02 0xc usb_queue.o - 0x2000de02 usb_transfer_schedule_ack - .text.usb_queue_transfer_complete - 0x2000de0e 0x36 usb_queue.o - 0x2000de0e usb_queue_transfer_complete - .text.usb_request - 0x2000de44 0x4c usb_request.o - .text.usb_setup_complete - 0x2000de90 0xa usb_request.o - 0x2000de90 usb_setup_complete - .text.usb_control_out_complete - 0x2000de9a 0x1c usb_request.o - 0x2000de9a usb_control_out_complete - .text.usb_control_in_complete - 0x2000deb6 0x1c usb_request.o - 0x2000deb6 usb_control_in_complete - .text.usb_send_descriptor - 0x2000ded2 0x30 usb_standard_request.o - .text.usb_send_descriptor_config - 0x2000df02 0x28 usb_standard_request.o - .text.usb_endpoint_descriptor - 0x2000df2a 0x2a usb_standard_request.o - 0x2000df2a usb_endpoint_descriptor - .text.usb_endpoint_descriptor_max_packet_size - 0x2000df54 0xc usb_standard_request.o - 0x2000df54 usb_endpoint_descriptor_max_packet_size - .text.usb_endpoint_descriptor_transfer_type - 0x2000df60 0x8 usb_standard_request.o - 0x2000df60 usb_endpoint_descriptor_transfer_type - .text.usb_set_configuration_changed_cb - 0x2000df68 0xc usb_standard_request.o - 0x2000df68 usb_set_configuration_changed_cb - .text.usb_set_configuration - 0x2000df74 0x48 usb_standard_request.o - 0x2000df74 usb_set_configuration - .text.usb_standard_request - 0x2000dfbc 0x20c usb_standard_request.o - 0x2000dfbc usb_standard_request - .text.scu_pinmux - 0x2000e1c8 0x4 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - 0x2000e1c8 scu_pinmux - .text.i2c0_init - 0x2000e1cc 0x34 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - 0x2000e1cc i2c0_init - .text.i2c1_init - 0x2000e200 0x38 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - 0x2000e200 i2c1_init - .text.i2c0_tx_start - 0x2000e238 0x40 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - 0x2000e238 i2c0_tx_start - .text.i2c1_tx_start - 0x2000e278 0x40 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - 0x2000e278 i2c1_tx_start - .text.i2c0_tx_byte - 0x2000e2b8 0x4c ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - 0x2000e2b8 i2c0_tx_byte - .text.i2c1_tx_byte - 0x2000e304 0x4c ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - 0x2000e304 i2c1_tx_byte - .text.i2c0_rx_byte - 0x2000e350 0x4c ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - 0x2000e350 i2c0_rx_byte - .text.i2c1_rx_byte - 0x2000e39c 0x5c ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - 0x2000e39c i2c1_rx_byte - .text.i2c0_stop - 0x2000e3f8 0x24 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - 0x2000e3f8 i2c0_stop - .text.i2c1_stop - 0x2000e41c 0x24 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - 0x2000e41c i2c1_stop - .text.ssp_init - 0x2000e440 0xc0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - 0x2000e440 ssp_init - .text.ssp_transfer - 0x2000e500 0x4c ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - 0x2000e500 ssp_transfer - .text.blocking_handler - 0x2000e54c 0x4 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - 0x2000e54c adc0_isr - 0x2000e54c m0sub_isr - 0x2000e54c usart2_or_c_can1_isr - 0x2000e54c usart3_isr - 0x2000e54c rtc_isr - 0x2000e54c gint1_isr - 0x2000e54c flasheepromat_isr - 0x2000e54c usart0_isr - 0x2000e54c blocking_handler - 0x2000e54c i2c0_or_irc1_isr - 0x2000e54c sdio_isr - 0x2000e54c ritimer_or_wwdt_isr - 0x2000e54c dma_isr - 0x2000e54c ethernet_isr - 0x2000e54c c_can0_isr - 0x2000e54c eventrouter_isr - 0x2000e54c spifi_or_adchs_isr - 0x2000e54c uart1_isr - 0x2000e54c ssp0_or_ssp1_isr - 0x2000e54c sct_isr - 0x2000e54c timer3_isr - 0x2000e54c lcd_isr - 0x2000e54c spi_or_dac_isr - 0x2000e54c sgpio_isr - 0x2000e54c i2s0_or_i2s1_isr - 0x2000e54c adc1_isr - 0x2000e54c mcpwm_isr - 0x2000e54c timer0_isr - 0x2000e54c usb1_isr - 0x2000e54c pin_int4_isr - .text.null_handler - 0x2000e550 0x4 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - 0x2000e550 sv_call_handler - 0x2000e550 pend_sv_handler - 0x2000e550 sys_tick_handler - 0x2000e550 nmi_handler - 0x2000e550 null_handler - .text.reset_handler - 0x2000e554 0x168 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - 0x2000e554 reset_handler - .text.nvic_enable_irq - 0x2000e6bc 0x18 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - 0x2000e6bc nvic_enable_irq - .text.nvic_set_priority - 0x2000e6d4 0x20 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - 0x2000e6d4 nvic_set_priority - .text 0x2000e6f4 0x14 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_thumb1_case_uqi.o) - 0x2000e6f4 __gnu_thumb1_case_uqi - .text 0x2000e708 0x9c c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_udivsi3.o) - 0x2000e708 __aeabi_uidiv - 0x2000e708 __udivsi3 - 0x2000e790 __aeabi_uidivmod - .text 0x2000e7a4 0x4 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_dvmd_tls.o) - 0x2000e7a4 __aeabi_idiv0 - 0x2000e7a4 __aeabi_ldiv0 - .text 0x2000e7a8 0x44 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_muldi3.o) - 0x2000e7a8 __muldi3 - 0x2000e7a8 __aeabi_lmul - .text.memcpy 0x2000e7ec 0x144 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-memcpy.o) - 0x2000e7ec memcpy - .text.strcpy 0x2000e930 0x10 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-strcpy.o) - 0x2000e930 strcpy - .text.strlen 0x2000e940 0x10 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-strlen.o) - 0x2000e940 strlen - 0x2000e950 . = ALIGN (0x4) - *(.rodata*) - .rodata.version_string - 0x2000e950 0x29 airspy_m0.o - 0x2000e950 version_string - *fill* 0x2000e979 0x3 00 - .rodata.usb_request_handlers - 0x2000e97c 0x10 airspy_usb_req.o - 0x2000e97c usb_request_handlers - .rodata.usb_descriptor_strings - 0x2000e98c 0x14 usb_descriptor.o - 0x2000e98c usb_descriptor_strings - .rodata.htoa 0x2000e9a0 0x10 usb_descriptor.o - .rodata 0x2000e9b0 0x14 r820t.o - .rodata.freq_to_idx - 0x2000e9c4 0x258 r820t.o - 0x2000e9c4 freq_to_idx - .rodata.freq_ranges - 0x2000ec1c 0x3f r820t.o - 0x2000ec1c freq_ranges - .rodata.lut 0x2000ec5b 0x10 r820t.o - 0x2000ec5b lut - 0x2000ec6c . = ALIGN (0x4) - *fill* 0x2000ec6b 0x1 00 - -.glue_7 0x2000ec6c 0x0 - .glue_7 0x00000000 0x0 linker stubs - -.glue_7t 0x2000ec6c 0x0 - .glue_7t 0x00000000 0x0 linker stubs - -.vfp11_veneer 0x2000ec6c 0x0 - .vfp11_veneer 0x00000000 0x0 linker stubs - -.v4_bx 0x2000ec6c 0x0 - .v4_bx 0x00000000 0x0 linker stubs - -.iplt 0x2000ec6c 0x0 - .iplt 0x00000000 0x0 airspy_m0.o - -.rel.dyn 0x2000ec6c 0x0 - .rel.iplt 0x00000000 0x0 airspy_m0.o - -.preinit_array 0x2000ec6c 0x0 - 0x2000ec6c . = ALIGN (0x4) - 0x2000ec6c __preinit_array_start = . - *(.preinit_array) - 0x2000ec6c __preinit_array_end = . - -.init_array 0x2000ec6c 0x0 - 0x2000ec6c . = ALIGN (0x4) - 0x2000ec6c __init_array_start = . - *(SORT(.init_array.*)) - *(.init_array) - 0x2000ec6c __init_array_end = . - -.fini_array 0x2000ec6c 0x0 - 0x2000ec6c . = ALIGN (0x4) - 0x2000ec6c __fini_array_start = . - *(.fini_array) - *(SORT(.fini_array.*)) - 0x2000ec6c __fini_array_end = . - -.ARM.extab - *(.ARM.extab*) - *(.ARM.extab*) - -.ARM.exidx 0x2000ec6c 0x0 - 0x2000ec6c __exidx_start = . - *(.ARM.exidx*) - 0x2000ec6c __exidx_end = . - 0x2000ec6c . = ALIGN (0x4) - 0x2000ec6c _etext = . - 0x00000000 _etext_ram = 0x0 - 0x00000000 _etext_rom = 0x0 - 0x2000c000 . = ORIGIN (ram_ahb2) - -.data 0x2000ec6c 0x2c4 - 0x2000ec6c _data = . - *(.data*) - .data.set_samplerate - 0x2000ec6c 0x4 airspy_m0.o - 0x2000ec6c set_samplerate - .data.set_packing - 0x2000ec70 0x4 airspy_m0.o - 0x2000ec70 set_packing - .data.usb_bulk_buffer_offset - 0x2000ec74 0x4 airspy_m0.o - 0x2000ec74 usb_bulk_buffer_offset - .data.start_adchs - 0x2000ec78 0x4 airspy_m0.o - 0x2000ec78 start_adchs - .data.usb_bulk_buffer_length - 0x2000ec7c 0x4 airspy_m0.o - 0x2000ec7c usb_bulk_buffer_length - .data.last_offset_m0 - 0x2000ec80 0x4 airspy_m0.o - 0x2000ec80 last_offset_m0 - .data.usb_descriptor_device_qualifier - 0x2000ec84 0xa usb_descriptor.o - 0x2000ec84 usb_descriptor_device_qualifier - .data.usb_descriptor_configuration_full_speed - 0x2000ec8e 0x21 usb_descriptor.o - 0x2000ec8e usb_descriptor_configuration_full_speed - .data.usb_descriptor_CompatIDDescriptor - 0x2000ecaf 0x28 usb_descriptor.o - 0x2000ecaf usb_descriptor_CompatIDDescriptor - .data.usb_descriptor_string_serial_number - 0x2000ecd7 0x36 usb_descriptor.o - 0x2000ecd7 usb_descriptor_string_serial_number - .data.usb_descriptor_device - 0x2000ed0d 0x12 usb_descriptor.o - 0x2000ed0d usb_descriptor_device - .data.usb_descriptor_string_languages - 0x2000ed1f 0x4 usb_descriptor.o - 0x2000ed1f usb_descriptor_string_languages - .data.usb_descriptor_string_manufacturer - 0x2000ed23 0x1e usb_descriptor.o - 0x2000ed23 usb_descriptor_string_manufacturer - .data.usb_descriptor_MSDescriptor - 0x2000ed41 0x12 usb_descriptor.o - 0x2000ed41 usb_descriptor_MSDescriptor - .data.usb_descriptor_configuration_high_speed - 0x2000ed53 0x21 usb_descriptor.o - 0x2000ed53 usb_descriptor_configuration_high_speed - .data.usb_descriptor_string_product - 0x2000ed74 0xe usb_descriptor.o - 0x2000ed74 usb_descriptor_string_product - .data.usb_descriptor_ExtProps - 0x2000ed82 0x8e usb_descriptor.o - 0x2000ed82 usb_descriptor_ExtProps - .data.usb_configuration_high_speed - 0x2000ee10 0xc usb_device.o - 0x2000ee10 usb_configuration_high_speed - .data.usb_device - 0x2000ee1c 0x14 usb_device.o - 0x2000ee1c usb_device - .data.usb_configuration_full_speed - 0x2000ee30 0xc usb_device.o - 0x2000ee30 usb_configuration_full_speed - .data.usb_configurations - 0x2000ee3c 0xc usb_device.o - 0x2000ee3c usb_configurations - .data.usb_endpoint_control_out_queue - 0x2000ee48 0x10 usb_endpoint.o - 0x2000ee48 usb_endpoint_control_out_queue - .data.usb_endpoint_bulk_out_queue - 0x2000ee58 0x10 usb_endpoint.o - 0x2000ee58 usb_endpoint_bulk_out_queue - .data.usb_endpoint_control_in_queue - 0x2000ee68 0x10 usb_endpoint.o - 0x2000ee68 usb_endpoint_control_in_queue - .data.usb_endpoint_control_out - 0x2000ee78 0x28 usb_endpoint.o - 0x2000ee78 usb_endpoint_control_out - .data.usb_endpoint_bulk_out - 0x2000eea0 0x28 usb_endpoint.o - 0x2000eea0 usb_endpoint_bulk_out - .data.usb_endpoint_control_in - 0x2000eec8 0x28 usb_endpoint.o - 0x2000eec8 usb_endpoint_control_in - .data.usb_endpoint_bulk_in_queue - 0x2000eef0 0x10 usb_endpoint.o - 0x2000eef0 usb_endpoint_bulk_in_queue - .data.usb_endpoint_bulk_in - 0x2000ef00 0x28 usb_endpoint.o - 0x2000ef00 usb_endpoint_bulk_in - .data.airspy_conf - 0x2000ef28 0x4 airspy_core.o - 0x2000ef28 airspy_conf - .data.r820t_state_standby - 0x2000ef2c 0x1 r820t.o - 0x2000ef2c r820t_state_standby - 0x2000ef30 . = ALIGN (0x4) - *fill* 0x2000ef2d 0x3 00 - 0x2000ec6c _data_loadaddr = LOADADDR (.data) - 0x2000ef30 _data = . - 0x2000ef30 _edata = . - -.igot.plt 0x2000ef30 0x0 - .igot.plt 0x00000000 0x0 airspy_m0.o - -.bss 0x2000f000 0xb04 - 0x2000f000 _bss = . - *(.bss_aligned*) - *(.bss*) - .bss.phase 0x2000f000 0x4 airspy_m0.o - 0x2000f000 phase - .bss.receiver_mode - 0x2000f004 0x1 airspy_rx.o - *fill* 0x2000f005 0x3b 00 - .bss.usb_endpoint_bulk_in_transfers - 0x2000f040 0x80 usb_endpoint.o - .bss.usb_endpoint_control_in_transfers - 0x2000f0c0 0x200 usb_endpoint.o - .bss.usb_endpoint_bulk_out_transfers - 0x2000f2c0 0x80 usb_endpoint.o - .bss.usb_device_usb0 - 0x2000f340 0x4 usb.o - 0x2000f340 usb_device_usb0 - .bss.endpoint_queues - 0x2000f344 0x30 usb_queue.o - 0x2000f344 endpoint_queues - .bss.usb_configuration_changed_cb - 0x2000f374 0x4 usb_standard_request.o - 0x2000f374 usb_configuration_changed_cb - .bss.USB_InterfaceStatus - 0x2000f378 0x2 usb_standard_request.o - 0x2000f378 USB_InterfaceStatus - .bss.USB_DeviceStatus - 0x2000f37a 0x2 usb_standard_request.o - 0x2000f37a USB_DeviceStatus - .bss.USB_CurrentInterface - 0x2000f37c 0x1 usb_standard_request.o - 0x2000f37c USB_CurrentInterface - *(COMMON) - *fill* 0x2000f37d 0x3 00 - COMMON 0x2000f380 0xd airspy_m0.o - 0x2000f380 set_sample_r_params - 0x2000f388 set_freq_params - 0x2000f38c __gnu_lto_v1 - *fill* 0x2000f38d 0x3 00 - COMMON 0x2000f390 0x171 airspy_usb_req.o - 0x2000f390 vendor_request_handler - 0x2000f400 spiflash_buffer - 0x2000f500 sample_rate_conf_no - *fill* 0x2000f501 0x3f 00 - COMMON 0x2000f540 0x200 usb_endpoint.o - 0x2000f540 usb_endpoint_control_out_transfers - COMMON 0x2000f740 0x4 fault_handler.o - 0x2000f740 hard_fault_stack_pt - COMMON 0x2000f744 0x20 r820t.o - 0x2000f744 r820t_read_data - COMMON 0x2000f764 0x1 w25q80bv.o - 0x2000f764 device_id - *fill* 0x2000f765 0x9b 00 - COMMON 0x2000f800 0x300 usb.o - 0x2000f800 usb_qh - COMMON 0x2000fb00 0x2 usb_standard_request.o - 0x2000fb00 USB_EpStatus - 0x2000fb04 . = ALIGN (0x4) - *fill* 0x2000fb02 0x2 00 - 0x2000fb04 _ebss = . - -/DISCARD/ - *(.eh_frame) - 0x2000fb04 . = ALIGN (0x4) - 0x2000fb04 end = . - 0x20000fe0 __StackTop = ((ORIGIN (ram_ahb1_m0_stack) + 0x1000) - 0x20) - 0x20000fe0 PROVIDE (_stack, __StackTop) -OUTPUT(airspy_m0.elf elf32-littlearm) - -.debug_info 0x00000000 0xdda3 - .debug_info 0x00000000 0x123e airspy_m0.o - .debug_info 0x0000123e 0x47e airspy_rx.o - .debug_info 0x000016bc 0x27d5 airspy_usb_req.o - .debug_info 0x00003e91 0x3e6 usb_descriptor.o - .debug_info 0x00004277 0x241 usb_device.o - .debug_info 0x000044b8 0x596 usb_endpoint.o - .debug_info 0x00004a4e 0x143c airspy_core.o - .debug_info 0x00005e8a 0x3a5 fault_handler.o - .debug_info 0x0000622f 0x72a si5351c.o - .debug_info 0x00006959 0x1446 r820t.o - .debug_info 0x00007d9f 0x1530 w25q80bv.o - .debug_info 0x000092cf 0x37a rom_iap.o - .debug_info 0x00009649 0x1624 usb.o - .debug_info 0x0000ac6d 0xa20 usb_queue.o - .debug_info 0x0000b68d 0x641 usb_request.o - .debug_info 0x0000bcce 0xef0 usb_standard_request.o - .debug_info 0x0000cbbe 0x7b9 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .debug_info 0x0000d377 0x248 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_info 0x0000d5bf 0x345 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_info 0x0000d904 0x2e5 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_info 0x0000dbe9 0x1ba ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - -.debug_abbrev 0x00000000 0x28fe - .debug_abbrev 0x00000000 0x30c airspy_m0.o - .debug_abbrev 0x0000030c 0x194 airspy_rx.o - .debug_abbrev 0x000004a0 0x3e3 airspy_usb_req.o - .debug_abbrev 0x00000883 0x103 usb_descriptor.o - .debug_abbrev 0x00000986 0xae usb_device.o - .debug_abbrev 0x00000a34 0x11c usb_endpoint.o - .debug_abbrev 0x00000b50 0x2da airspy_core.o - .debug_abbrev 0x00000e2a 0x113 fault_handler.o - .debug_abbrev 0x00000f3d 0x18f si5351c.o - .debug_abbrev 0x000010cc 0x363 r820t.o - .debug_abbrev 0x0000142f 0x29a w25q80bv.o - .debug_abbrev 0x000016c9 0x17c rom_iap.o - .debug_abbrev 0x00001845 0x4cc usb.o - .debug_abbrev 0x00001d11 0x2c3 usb_queue.o - .debug_abbrev 0x00001fd4 0x1a7 usb_request.o - .debug_abbrev 0x0000217b 0x342 usb_standard_request.o - .debug_abbrev 0x000024bd 0x86 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .debug_abbrev 0x00002543 0xbe ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_abbrev 0x00002601 0x11e ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_abbrev 0x0000271f 0x137 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_abbrev 0x00002856 0xa8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - -.debug_loc 0x00000000 0x6177 - .debug_loc 0x00000000 0x188 airspy_m0.o - .debug_loc 0x00000188 0x41 airspy_rx.o - .debug_loc 0x000001c9 0x1c42 airspy_usb_req.o - .debug_loc 0x00001e0b 0x235 usb_descriptor.o - .debug_loc 0x00002040 0x6ca airspy_core.o - .debug_loc 0x0000270a 0x31f si5351c.o - .debug_loc 0x00002a29 0x1146 r820t.o - .debug_loc 0x00003b6f 0x53d w25q80bv.o - .debug_loc 0x000040ac 0xae rom_iap.o - .debug_loc 0x0000415a 0xa86 usb.o - .debug_loc 0x00004be0 0x527 usb_queue.o - .debug_loc 0x00005107 0x211 usb_request.o - .debug_loc 0x00005318 0xa0b usb_standard_request.o - .debug_loc 0x00005d23 0x136 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_loc 0x00005e59 0x1ea ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_loc 0x00006043 0x34 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_loc 0x00006077 0x100 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - -.debug_aranges 0x00000000 0x740 - .debug_aranges - 0x00000000 0x50 airspy_m0.o - .debug_aranges - 0x00000050 0x28 airspy_rx.o - .debug_aranges - 0x00000078 0x128 airspy_usb_req.o - .debug_aranges - 0x000001a0 0x20 usb_descriptor.o - .debug_aranges - 0x000001c0 0x18 usb_device.o - .debug_aranges - 0x000001d8 0x18 usb_endpoint.o - .debug_aranges - 0x000001f0 0x80 airspy_core.o - .debug_aranges - 0x00000270 0x40 fault_handler.o - .debug_aranges - 0x000002b0 0x70 si5351c.o - .debug_aranges - 0x00000320 0xb8 r820t.o - .debug_aranges - 0x000003d8 0x70 w25q80bv.o - .debug_aranges - 0x00000448 0x28 rom_iap.o - .debug_aranges - 0x00000470 0xb8 usb.o - .debug_aranges - 0x00000528 0x50 usb_queue.o - .debug_aranges - 0x00000578 0x38 usb_request.o - .debug_aranges - 0x000005b0 0x58 usb_standard_request.o - .debug_aranges - 0x00000608 0x20 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .debug_aranges - 0x00000628 0x68 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_aranges - 0x00000690 0x30 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_aranges - 0x000006c0 0x30 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_aranges - 0x000006f0 0x50 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - -.debug_ranges 0x00000000 0xc78 - .debug_ranges 0x00000000 0x58 airspy_m0.o - .debug_ranges 0x00000058 0x18 airspy_rx.o - .debug_ranges 0x00000070 0x198 airspy_usb_req.o - .debug_ranges 0x00000208 0x10 usb_descriptor.o - .debug_ranges 0x00000218 0xa0 airspy_core.o - .debug_ranges 0x000002b8 0x30 fault_handler.o - .debug_ranges 0x000002e8 0x60 si5351c.o - .debug_ranges 0x00000348 0x1f8 r820t.o - .debug_ranges 0x00000540 0xb0 w25q80bv.o - .debug_ranges 0x000005f0 0x18 rom_iap.o - .debug_ranges 0x00000608 0x390 usb.o - .debug_ranges 0x00000998 0x140 usb_queue.o - .debug_ranges 0x00000ad8 0x28 usb_request.o - .debug_ranges 0x00000b00 0x60 usb_standard_request.o - .debug_ranges 0x00000b60 0x10 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .debug_ranges 0x00000b70 0x58 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_ranges 0x00000bc8 0x50 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_ranges 0x00000c18 0x20 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_ranges 0x00000c38 0x40 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - -.debug_line 0x00000000 0x3c14 - .debug_line 0x00000000 0x31d airspy_m0.o - .debug_line 0x0000031d 0x13b airspy_rx.o - .debug_line 0x00000458 0x6d1 airspy_usb_req.o - .debug_line 0x00000b29 0x148 usb_descriptor.o - .debug_line 0x00000c71 0xe3 usb_device.o - .debug_line 0x00000d54 0x122 usb_endpoint.o - .debug_line 0x00000e76 0x46f airspy_core.o - .debug_line 0x000012e5 0x133 fault_handler.o - .debug_line 0x00001418 0x243 si5351c.o - .debug_line 0x0000165b 0x405 r820t.o - .debug_line 0x00001a60 0x2c6 w25q80bv.o - .debug_line 0x00001d26 0x117 rom_iap.o - .debug_line 0x00001e3d 0x505 usb.o - .debug_line 0x00002342 0x2b2 usb_queue.o - .debug_line 0x000025f4 0x160 usb_request.o - .debug_line 0x00002754 0x285 usb_standard_request.o - .debug_line 0x000029d9 0x2ee ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .debug_line 0x00002cc7 0x42e ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_line 0x000030f5 0x351 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_line 0x00003446 0x424 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_line 0x0000386a 0x3aa ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - -.debug_str 0x00000000 0x11b69 - .debug_str 0x00000000 0xbd2 airspy_m0.o - 0xdcf (size before relaxing) - .debug_str 0x00000bd2 0x48 airspy_rx.o - 0x382 (size before relaxing) - .debug_str 0x00000c1a 0xa41 airspy_usb_req.o - 0x146a (size before relaxing) - .debug_str 0x0000165b 0x26f usb_descriptor.o - 0x675 (size before relaxing) - .debug_str 0x000018ca 0x5a usb_device.o - 0x2d1 (size before relaxing) - .debug_str 0x00001924 0x93 usb_endpoint.o - 0x4c9 (size before relaxing) - .debug_str 0x000019b7 0x6df airspy_core.o - 0xc0f (size before relaxing) - .debug_str 0x00002096 0x18d fault_handler.o - 0x28e (size before relaxing) - .debug_str 0x00002223 0x8a si5351c.o - 0x2ae (size before relaxing) - .debug_str 0x000022ad 0x235 r820t.o - 0x4c4 (size before relaxing) - .debug_str 0x000024e2 0x346 w25q80bv.o - 0x897 (size before relaxing) - .debug_str 0x00002828 0x49 rom_iap.o - 0x413 (size before relaxing) - .debug_str 0x00002871 0x6b5 usb.o - 0xa9b (size before relaxing) - .debug_str 0x00002f26 0xfa usb_queue.o - 0x50c (size before relaxing) - .debug_str 0x00003020 0x2da usb_request.o - 0x6ca (size before relaxing) - .debug_str 0x000032fa 0x55b usb_standard_request.o - 0xe21 (size before relaxing) - .debug_str 0x00003855 0x5f4c ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - 0x6413 (size before relaxing) - .debug_str 0x000097a1 0x54ff ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - 0xb5d0 (size before relaxing) - .debug_str 0x0000eca0 0x1ab8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - 0xa4cf (size before relaxing) - .debug_str 0x00010758 0xb09 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - 0x3d20 (size before relaxing) - .debug_str 0x00011261 0x908 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - 0x4058 (size before relaxing) - -.comment 0x00000000 0x70 - .comment 0x00000000 0x70 airspy_m0.o - 0x71 (size before relaxing) - .comment 0x00000000 0x71 airspy_rx.o - .comment 0x00000000 0x71 airspy_usb_req.o - .comment 0x00000000 0x71 usb_descriptor.o - .comment 0x00000000 0x71 usb_device.o - .comment 0x00000000 0x71 usb_endpoint.o - .comment 0x00000000 0x71 airspy_core.o - .comment 0x00000000 0x71 fault_handler.o - .comment 0x00000000 0x71 si5351c.o - .comment 0x00000000 0x71 r820t.o - .comment 0x00000000 0x71 w25q80bv.o - .comment 0x00000000 0x71 rom_iap.o - .comment 0x00000000 0x71 usb.o - .comment 0x00000000 0x71 usb_queue.o - .comment 0x00000000 0x71 usb_request.o - .comment 0x00000000 0x71 usb_standard_request.o - .comment 0x00000000 0x71 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .comment 0x00000000 0x71 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .comment 0x00000000 0x71 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .comment 0x00000000 0x71 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .comment 0x00000000 0x71 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - -.ARM.attributes - 0x00000000 0x31 - .ARM.attributes - 0x00000000 0x31 airspy_m0.o - .ARM.attributes - 0x00000031 0x31 airspy_rx.o - .ARM.attributes - 0x00000062 0x31 airspy_usb_req.o - .ARM.attributes - 0x00000093 0x31 usb_descriptor.o - .ARM.attributes - 0x000000c4 0x31 usb_device.o - .ARM.attributes - 0x000000f5 0x31 usb_endpoint.o - .ARM.attributes - 0x00000126 0x31 airspy_core.o - .ARM.attributes - 0x00000157 0x31 fault_handler.o - .ARM.attributes - 0x00000188 0x31 si5351c.o - .ARM.attributes - 0x000001b9 0x31 r820t.o - .ARM.attributes - 0x000001ea 0x31 w25q80bv.o - .ARM.attributes - 0x0000021b 0x31 rom_iap.o - .ARM.attributes - 0x0000024c 0x31 usb.o - .ARM.attributes - 0x0000027d 0x31 usb_queue.o - .ARM.attributes - 0x000002ae 0x31 usb_request.o - .ARM.attributes - 0x000002df 0x31 usb_standard_request.o - .ARM.attributes - 0x00000310 0x31 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .ARM.attributes - 0x00000341 0x31 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .ARM.attributes - 0x00000372 0x31 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .ARM.attributes - 0x000003a3 0x31 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .ARM.attributes - 0x000003d4 0x31 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .ARM.attributes - 0x00000405 0x1e c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_thumb1_case_uqi.o) - .ARM.attributes - 0x00000423 0x1e c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_udivsi3.o) - .ARM.attributes - 0x00000441 0x1e c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_dvmd_tls.o) - .ARM.attributes - 0x0000045f 0x2c c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_muldi3.o) - .ARM.attributes - 0x0000048b 0x2c c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-memcpy.o) - .ARM.attributes - 0x000004b7 0x2c c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-strcpy.o) - .ARM.attributes - 0x000004e3 0x2c c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-strlen.o) - -.debug_frame 0x00000000 0x11b8 - .debug_frame 0x00000000 0xac airspy_m0.o - .debug_frame 0x000000ac 0x3c airspy_rx.o - .debug_frame 0x000000e8 0x374 airspy_usb_req.o - .debug_frame 0x0000045c 0x30 usb_descriptor.o - .debug_frame 0x0000048c 0x158 airspy_core.o - .debug_frame 0x000005e4 0x60 fault_handler.o - .debug_frame 0x00000644 0x148 si5351c.o - .debug_frame 0x0000078c 0x228 r820t.o - .debug_frame 0x000009b4 0x14c w25q80bv.o - .debug_frame 0x00000b00 0x3c rom_iap.o - .debug_frame 0x00000b3c 0x1cc usb.o - .debug_frame 0x00000d08 0xbc usb_queue.o - .debug_frame 0x00000dc4 0x70 usb_request.o - .debug_frame 0x00000e34 0xc8 usb_standard_request.o - .debug_frame 0x00000efc 0x20 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .debug_frame 0x00000f1c 0xb0 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_frame 0x00000fcc 0x68 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_frame 0x00001034 0x40 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_frame 0x00001074 0x80 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .debug_frame 0x000010f4 0x20 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_udivsi3.o) - .debug_frame 0x00001114 0x30 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a(_muldi3.o) - .debug_frame 0x00001144 0x34 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-memcpy.o) - .debug_frame 0x00001178 0x20 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-strcpy.o) - .debug_frame 0x00001198 0x20 c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-strlen.o) - -.debug_macro 0x00000000 0x31e3 - .debug_macro 0x00000000 0x94 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .debug_macro 0x00000094 0x7de ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .debug_macro 0x00000872 0x3a ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .debug_macro 0x000008ac 0x10 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .debug_macro 0x000008bc 0x2e ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .debug_macro 0x000008ea 0xa2 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .debug_macro 0x0000098c 0x20e ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .debug_macro 0x00000b9a 0x22 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .debug_macro 0x00000bbc 0xfa ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .debug_macro 0x00000cb6 0x16f ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .debug_macro 0x00000e25 0x6db ../libopencm3/lib\libopencm3_lpc43xx_m0.a(scu.o) - .debug_macro 0x00001500 0xb2 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_macro 0x000015b2 0x180 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_macro 0x00001732 0x6e1 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_macro 0x00001e13 0xaca ../libopencm3/lib\libopencm3_lpc43xx_m0.a(i2c.o) - .debug_macro 0x000028dd 0xa6 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_macro 0x00002983 0xf5 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_macro 0x00002a78 0x328 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(ssp.o) - .debug_macro 0x00002da0 0xc8 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_macro 0x00002e68 0x2e ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_macro 0x00002e96 0x47 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_macro 0x00002edd 0xc4 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(vector.o) - .debug_macro 0x00002fa1 0xb5 ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) - .debug_macro 0x00003056 0x18d ../libopencm3/lib\libopencm3_lpc43xx_m0.a(nvic.o) diff --git a/airspy_m0/airspy_m0.o b/airspy_m0/airspy_m0.o deleted file mode 100644 index 3e1f9f0da9c4a3cdc648f4bcac6645b495bd1488..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38380 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 diff --git a/airspy_m0/airspy_m0.srec b/airspy_m0/airspy_m0.srec deleted file mode 100644 index 618ded9..0000000 --- a/airspy_m0/airspy_m0.srec +++ /dev/null @@ -1,758 +0,0 @@ -S01100006169727370795F6D302E737265637F -S3152000C000E00F002055E5002051E50020D5CC00208A -S3152000C01000000000000000000000000000000000FA -S3152000C02000000000000000000000000051E5002094 -S3152000C030000000000000000051E5002051E500202E -S3152000C0404DE50020D9C100204DE50020000000006C -S3152000C0504DE500204DE500204DE500204DE5002072 -S3152000C06025DB00204DE500204DE500204DE5002094 -S3152000C0704DE500204DE500204DE500204DE5002052 -S3152000C0804DE500204DE500204DE500204DE5002042 -S3152000C0904DE500204DE500204DE500204DE5002032 -S3152000C0A04DE500204DE500204DE500204DE5002022 -S3152000C0B04DE500204DE500204DE500204DE5002012 -S3152000C0C008B503695868002801D000F015F900F07A -S3152000C0D0F9F808BD054B0122196848700A70BFF3AC -S3152000C0E04F8F40BF08680028FCD170476CEC0020B9 -S3152000C0F0054B0122196848700A70BFF34F8F40BF65 -S3152000C10008680028FCD1704770EC002038B5204B19 -S3152000C110051C1868012245700270BFF34F8F40BF7F -S3152000C12001680029FCD11B4C2368188B02F04EF8BD -S3152000C1302068408B02F064F86AB2002A12DA7F2067 -S3152000C1402168054018225543081C0431CB6F48301E -S3152000C1505919096901F020F82468201C0434483054 -S3152000C160E36F0DE0182321685D438A6F081C51197F -S3152000C1704830096901F010F82468201CA36F483064 -S3152000C1805D19297D01F028F8034A0120106038BD89 -S3152000C19078EC002028EF002000F0002010B5041CC9 -S3152000C1A001F040F80A4B0222186844700270BFF36F -S3152000C1B04F8F40BF01680029FCD1064C2368188B9D -S3152000C1C002F004F82068808B02F01AF810BDC046F1 -S3152000C1D078EC002028EF0020014B00221A607047DF -S3152000C1E03031044070B58CB000F072FC274B01ACA6 -S3152000C1F01868483001F04AF8254801F0B5FE01F0EC -S3152000C200F5FA244D0020291C01F0EEFB224801F00E -S3152000C2105FFD224801F05CFD214801F059FD2148CF -S3152000C22001F056FD204801F035FC204801F032FC93 -S3152000C2303A202070201C01F04FFA218B002903D1CF -S3152000C240606AA16A00F0C4FC0820FF2102F042FACD -S3152000C2500120011C02F03EFA012002F02FFA281CD0 -S3152000C26001F006FC124A134B134D1668186829680C -S3152000C27020BF346802680B689C42F9D00F4E1048E4 -S3152000C280A11901F0B1FD2A681460EBE728EF002020 -S3152000C290C1C000201CEE002048EE002068EE0020E1 -S3152000C2A058EE0020F0EE002078EE0020C8EE0020A8 -S3152000C2B074EC00207CEC002080EC00200040002064 -S3152000C2C000EF002038B5041C00F0F6FB074D012CCA -S3152000C2D006D1074801F0DEFB2878FFF717FF02E0BA -S3152000C2E02878FFF75BFF034B1C7038BD00F5002054 -S3152000C2F000EF002004F00020014B18787047C0465C -S3152000C30004F0002008B543781B2B06D8054A9B006D -S3152000C3109B58002B04D0984703E04842484100E050 -S3152000C320012008BD90F3002008B5002901D100F0B6 -S3152000C330B7FC002008BD70B5051C00200C1E8442E9 -S3152000C3400DD16E880120B21E0B2A08D800F0EAFF14 -S3152000C350300401F0C7F8A86901F053FD201C70BD18 -S3152000C36038B50023994219D181880123FF2915D890 -S3152000C37044889C4212D80A4D4A0952191F25294041 -S3152000C38092008B401168012C01D10B4301E09943A7 -S3152000C3900B1C1360806901F034FD0023181C38BD86 -S3152000C3A000D8031038B5051C0C1E07D100F0BAFFC3 -S3152000C3B0201C01F097F8A86901F023FD002038BD64 -S3152000C3C0F8B5041C00292AD1164B81881868021C4E -S3152000C3D0763215882E1C8D4200D90E1CB2B2124917 -S3152000C3E0402A02D8002A03D000E04022002303E09E -S3152000C3F00D60A06904220DE0934209DA18265E43F7 -S3152000C400876F9D00BE19376901337E004E51F3E7D1 -S3152000C410A069920001F0E8FCE06901F0F2FC00203E -S3152000C420F8BDC04628EF002000F40020002238B5D1 -S3152000C430041C0D1E95421AD183880122FF2B16D883 -S3152000C4400C4859090918880001681F200340101C50 -S3152000C4509840031C0B40591E8B41211C2372083126 -S3152000C460A06901F0C1FCE06901F0CBFC2A1C101C7C -S3152000C47038BDC04600D8031070B50025041C0E1E1A -S3152000C480AE4217D18388042B08D1C2880A49806915 -S3152000C49001F0AAFCE06901F0B4FC0BE00125052BB4 -S3152000C4A008D1C2880549806901F09EFCE06901F047 -S3152000C4B0A8FC351C281C70BDAFEC002082ED0020A6 -S3152000C4C010B5041C002909D10172011C08318069AC -S3152000C4D0012201F089FCE06901F093FC002010BDE7 -S3152000C4E010B5041C00290AD18388012B02D100F043 -S3152000C4F0DDFB01E000F0E4FBA06901F082FC0020F6 -S3152000C50010BD000010B5041C00290FD1084B21795D -S3152000C5101868483000F0E2FD211C20720831A0691D -S3152000C520012201F061FCE06901F06BFC002010BDE6 -S3152000C53028EF002010B5041C00290FD1084B2179C3 -S3152000C5401868483000F0C1FD211C20720831A0690E -S3152000C550012201F049FCE06901F053FC002010BDE6 -S3152000C56028EF002010B5041C00290FD1084B217993 -S3152000C5701868483000F0A2FD211C20720831A069FD -S3152000C580012201F031FCE06901F03BFC002010BDE6 -S3152000C59028EF002010B5041C00290FD1084B217963 -S3152000C5A01868483000F083FD211C20720831A069EC -S3152000C5B0012201F019FCE06901F023FC002010BDE6 -S3152000C5C028EF002010B5041C00290FD1084B217933 -S3152000C5D01868483000F064FD211C20720831A069DB -S3152000C5E0012201F001FCE06901F00BFC002010BDE6 -S3152000C5F028EF002010B5041C002905D10949042282 -S3152000C600C06901F0F1FB0BE0012909D1064B054970 -S3152000C61018680968483000F0EFFCA06901F0F1FBCA -S3152000C620002010BD88F3002028EF002070B5041CE0 -S3152000C6300020814255D1A3882A4A3F2B06D810686C -S3152000C64076300188012099422ADC4AE0FA201268D5 -S3152000C65080005843131C76331B8899420CDA182520 -S3152000C6604D43966F75192E69B500854202D11E4A33 -S3152000C67011701AE00131F0E7111C7E310988002380 -S3152000C68000E001338B420EDA151DEE6F18255D434F -S3152000C69076193569AE008642F3D1802041420B439C -S3152000C6A0114E337001E001201BE0FFF725FE0E4DF1 -S3152000C6B0061E012E02D12878FFF770FD2878FFF795 -S3152000C6C009FD012E02D12878FFF720FD0122211C29 -S3152000C6D022720831A06901F087FBE06901F091FB25 -S3152000C6E0002070BD28EF002000F5002070B5041C46 -S3152000C6F00020814221D1A388012083421DD8DEB2A9 -S3152000C700FFF7FAFD051E012D03D10C480078FFF72F -S3152000C71045FD301CFFF7ECFC012D03D107490878B5 -S3152000C720FFF7F4FC0122211C22720831A06901F0D6 -S3152000C7305BFBE06901F065FB002070BD00F5002081 -S3152000C74070B5002592B0061CA94226D107AC362327 -S3152000C750201C237000F0C0FF208BA84201D00125A9 -S3152000C7601BE0E169226A3A23201C01910292237080 -S3152000C77000F0B2FF208B0028F1D1E169226A636ABA -S3152000C780A46A03910492B06901A91822059306941C -S3152000C79001F02AFBF06901F034FB281C12B070BDB1 -S3152000C7A038B5051C002922D1124C00220B198020F5 -S3152000C7B001311A7043009942F6D10F49201C0968AD -S3152000C7C0083102F0B5F8201C02F0BAF80B4900191E -S3152000C7D002F0AEF8201C02F0B3F8021D03208243BB -S3152000C7E0211CA86901F000FBE86901F00AFB002082 -S3152000C7F038BDC04600F4002028EF002050E9002074 -S3152000C800F8B5051C002931D1C4884788828880263E -S3152000C81001208640B44236D83804104380230719B5 -S3152000C820194E5A03974217D9032C0DD90323271CD7 -S3152000C8301F4009D1034008D1A1089A001758013397 -S3152000C840B7508B42F9D30BE000E0391CA14207D246 -S3152000C8500A5C72540131F9E7211C321C00F0F2FE09 -S3152000C860A869311C221C01F0BFFA0BE00020012927 -S3152000C87009D1EA888023081C59008A4203D8E8692E -S3152000C88001F0BFFA0020F8BD00F4002070B5041CAA -S3152000C8900D1E17D1E288012380264088A1889E405C -S3152000C8A0B2422AD8050480200D4341038D4224D864 -S3152000C8B0AE188E4221D81249E06901F095FA00F0AF -S3152000C8C031FD19E00023012917D1E18880262B1C90 -S3152000C8D04088A2887500A9420FD800041043802200 -S3152000C8E05603B04209D84518B54206D8044A00F086 -S3152000C8F069FEA06901F085FA0023181C70BDC046A8 -S3152000C90000F4002070B50025041C0E1EAE4214D182 -S3152000C91081880125FF2910D8094BC9B218684830EB -S3152000C92000F0F4FA211C2A1C20720831A06901F0BB -S3152000C9305BFAE06901F065FA351C281C70BDC0461B -S3152000C94028EF002038B5041C00200D1E854211D189 -S3152000C950A1880120FF290DD86288FF2A0AD8064B14 -S3152000C960C9B21868D2B2483000F08EFAA06901F038 -S3152000C97048FA281C38BDC04628EF002070B500258F -S3152000C980041C0E1EAE4211D180880125FF280DD829 -S3152000C990C0B200F0C0F9211C2A1C20720831A069FF -S3152000C9A001F022FAE06901F02CFA351C281C70BD32 -S3152000C9B038B5041C00200D1E85420ED1A388012007 -S3152000C9C0FF2B0AD86188FF2907D8D8B2C9B200F050 -S3152000C9D091F9A06901F015FA281C38BD38B5002355 -S3152000C9E0051C0C1E9C420AD140880123984206D879 -S3152000C9F0C0B2FFF767FCA86901F003FA231C181CD4 -S3152000CA0038BD000038B5002399421BD18288012306 -S3152000CA10FF2A17D844889C4214D80B4D510949192E -S3152000CA201F252A4089009340012C03D18025AA0086 -S3152000CA30891802E0A022940009190B60806901F090 -S3152000CA40E0F90023181C38BD00D8031010B5041CCB -S3152000CA500020814222D1A2880120FF2A1ED8104917 -S3152000CA6053095B181F210A409B0090401A68104208 -S3152000CA7003D080218A009B1801E00133FF331B6815 -S3152000CA80211C1840431E9841207208310122A069BA -S3152000CA9001F0AAF9E06901F0B4F9002010BDC04602 -S3152000CAA000D8031080239A00801801607047A023C5 -S3152000CAB09A0080180160704708B5034800F0CEFE42 -S3152000CAC0024800F0CBFE08BD00EF0020A0EE0020BB -S3152000CAD01F4B2049204800221A7008601F4B204A0D -S3152000CAE0204821491A6058609960204A20482149E7 -S3152000CAF0DA6018615961204A204821499A61D86133 -S3152000CB001962204A204821495A629862D962204AED -S3152000CB10204821491A6358639963204A20482149AD -S3152000CB20DA63214A18645964204821499A64214AC3 -S3152000CB30D8641965204821495A65214A9865D965DE -S3152000CB401A6620482049214A58669966DA6670474F -S3152000CB5000F5002088F3002000E1F50590F3002081 -S3152000CB6029C30020DDC90020B1C900207DC90020CD -S3152000CB7045C9002005C90020A5C300208DC8002076 -S3152000CB8001C80020C1C40020A1C7002041C7002041 -S3152000CB902DC60020F5C50020C5C5002095C500205E -S3152000CBA065C5002035C5002005C5002079C40020B4 -S3152000CBB0E1C4002005CA00204DCA002061C3002020 -S3152000CBC02DC40020C1C30020EDC6002037C300209D -S3152000CBD0F0B52D4B050E2C091E5D0F2425402B4A42 -S3152000CBE05F5DFF25967517762E04071C37403D0C92 -S3152000CBF02F09DF5D25405D5D9776FF2715773D027E -S3152000CC0005402F0A3D095D5D2740BC469577654660 -S3152000CC105D5D571CFD77C7B23D095D5D2040185C00 -S3152000CC20D71CFD77571DF877080E05095D5DD71DC2 -S3152000CC302040185CFD770E40171C350C28373870BD -S3152000CC402F09D85D161C2A3630702540FF265D5DDB -S3152000CC50171C300208402C373D70070A3E09985DA4 -S3152000CC60151C2740DF5D2E35161C28703036CDB2B8 -S3152000CC7037700C402E099F5D101C195D32303432FE -S3152000CC8007701170F0BDC046A0E90020D7EC002047 -S3152000CC900023834202D0C0460133FAE770470000E2 -S3152000CCA0014B01221A60FEE70031054008B58021BC -S3152000CCB002488901FFF7F6FE08BDC04604600F4012 -S3152000CCC008B5802102488901FFF7F1FE08BDC0465C -S3152000CCD004600F40042475462C4202D0EFF30980ED -S3152000CCE002E0EFF30880FFE7014B186000BEFEE785 -S3152000CCF040F7002038B50C1C051C01F09DFAC02019 -S3152000CD0001F0DAFA281C01F0D7FA201C01F0D4FA37 -S3152000CD1001F072FB38BD10B5041C01F08DFAC0205D -S3152000CD2001F0CAFA201C01F0C7FA01F085FAC120E9 -S3152000CD3001F0C2FA01F00CFB041C01F05DFB201C83 -S3152000CD4010BD000038B50C4B051C18680C1C0206DB -S3152000CD5010D50A490A78002A0CD101F08DFA342020 -S3152000CD6001F0D0FA281C01F0CDFA201C01F0CAFAF5 -S3152000CD7001F054FB38BDC04604620F402CEF002062 -S3152000CD800021312806D9044A32381421904201D88C -S3152000CD90024B195C081C704757020000C4E90020AA -S3152000CDA038B50E4B051C1868020616D50C490C78AA -S3152000CDB0002C12D101F060FA342001F0A3FA0520EC -S3152000CDC001F0A0FA285D013401F09CFA1B2CF9D160 -S3152000CDD0002001F097FA01F021FB38BD04620F40D4 -S3152000CDE02CEF0020F8B5254B161C1A6880240D1C44 -S3152000CDF014400CD0224900240F78002F07D10CE0D4 -S3152000CE00671F1D2F06D80219D3792B550134B4423A -S3152000CE10F6DB32E001214B42F7E701F02DFA35200F -S3152000CE2001F070FA174C012E0ED8381C01F0B6FA14 -S3152000CE300F2606400709A25DF8B2245C11012143A2 -S3152000CE40297001F0EBFA18E02F1C731E781B98420C -S3152000CE500DDA012001F0A2FA0F230340E25C00095B -S3152000CE60C3B21101E25C114339700137EDE70020AE -S3152000CE70AD1901F093FA013DDAE7F8BD04620F40DF -S3152000CE802CEF00205BEC00200E4B70B5061C1868BA -S3152000CE900D1C141C020603D50B490A78002A02D061 -S3152000CEA07619F47170BD01F0E7F9342001F02AFA01 -S3152000CEB0281C01F027FA201C01F024FA01F0AEFA12 -S3152000CEC0EEE7C04604620F402CEF002008B54B1F4A -S3152000CED01D2B02D8C3181B7B01E001235B42934222 -S3152000CEE001D0FFF7D1FF002008BD10B54C1F1D2C27 -S3152000CEF008D80419247B9C431340221C1A43FFF7AD -S3152000CF00E5FF01E00120404210BD000038B5044D88 -S3152000CF104A1C0C1CD2B2291CFFF764FF285D38BDC1 -S3152000CF2044F70020F7B50568041C0E1C00235F1C7F -S3152000CF30311C2F4AB94088182E49884203D93B1EF6 -S3152000CF40052BF4D100E01F1C7A01D2B2201C10213F -S3152000CF50E023FFF7CAFF002848DB0137690C680881 -S3152000CF60BE40019000917018291C01F0CDFB031CD6 -S3152000CF700D3BDAB2071C90088100531A9A018018DB -S3152000CF80C2B21421201CFFF7A1FF00282EDBFFB21E -S3152000CF907D43761B04D10822201C1221131C23E07A -S3152000CFA0009D002776193B1C019ADA40964206D34B -S3152000CFB08021080218410743BFB2B61A02D00133B6 -S3152000CFC0102BF1D1FAB2201C1521FFF77FFF002884 -S3152000CFD00CDB3A0A201C1621FFF778FF002805DB18 -S3152000CFE0201C122100220823FFF77FFFFEBDC0462A -S3152000CFF080F17F968038F57EF8B5264B244A041CAE -S3152000D0000D1C8768081C002101F0CEFB081CFFF7C9 -S3152000D010B7FE03267043204908230E183278201CB9 -S3152000D0201721FFF762FF00282EDB7278201C1A21B9 -S3152000D030C323FFF75AFF002826DBB278201C1B21CA -S3152000D040FFF744FF00281FDB201C102108220B239A -S3152000D050FFF74BFF002817DB201C082100223F2367 -S3152000D060FFF743FF00280FDB201C092100223F2366 -S3152000D070FFF73BFF002807DBE919201CFFF752FFCB -S3152000D080002801DB65600020F8BDC046C046C046CA -S3152000D090C7100000000000001CEC0020C046C0465F -S3152000D0A008B50A1C0F230521FFF71FFF08BD08B589 -S3152000D0B00A1C0F230721FFF718FF08BD08B50A1C15 -S3152000D0C00F230C21FFF711FF08BD08B54A424A413C -S3152000D0D0120105211023FFF708FF08BD08B50A1E17 -S3152000D0E000D0102207211023FFF7FFFE08BD000005 -S3152000D0F037B5041C0525201C0B2108226023FFF7C9 -S3152000D100F4FE002843DB0422201C0F21131CFFF70A -S3152000D110ECFE00283BDB201C102100220323FFF716 -S3152000D120E4FE002833DB201C1949FFF7FBFE00280C -S3152000D1302DDB1022201C0B21131CFFF7D6FE002806 -S3152000D14025DB1448FFF7A4FD201C0B210022102309 -S3152000D150FFF7CBFE00281ADB201C0F210022042318 -S3152000D160FFF7C3FE002812DB201C05226946FFF7C5 -S3152000D17039FE6B461A790F20104001D00F2805D1B1 -S3152000D180013D002DB7D10121484200E000203EBDDF -S3152000D19000C63E051027000038B50E4B041C0022A1 -S3152000D1A081600C301A70FFF7FBFD6168201CFFF7C9 -S3152000D1B023FF201C6568FFF79BFF6560002803DAC4 -S3152000D1C0201CFFF795FF6560291C201CFFF714FF24 -S3152000D1D038BDC0462CEF0020F0B5114F87B001AE08 -S3152000D1E0041C0D1C301C391C042201F0FFFA391DC9 -S3152000D1F002A8102201F0FAFA0F202B0902A90540F5 -S3152000D200F65C4A5DB02506432A43201C0A21FFF717 -S3152000D2105DFE201C0B21321CFFF758FE07B0F0BD27 -S3152000D220B0E9002008B50520A021FFF78BFD0620D8 -S3152000D230D021FFF787FD07200021FFF783FD082077 -S3152000D2404021FFF77FFD0920C021FFF77BFD0A2043 -S3152000D2507021FFF777FD0C20A021FFF773FD0F202B -S3152000D2602A21FFF76FFD11200321FFF76BFD172001 -S3152000D270F421FFF767FD19200C21FFF763FD024B10 -S3152000D280012200201A7008BD2CEF002008B5044B9F -S3152000D29000220C301A70FFF783FDFFF7C3FF08BD8D -S3152000D2A02CEF002070B50B4D80242401281C211C56 -S3152000D2B0FFF7FDFB0521002001F022F9FF210020C8 -S3152000D2C001F01EF9211C061C281CFFF7EBFBF0B20F -S3152000D2D070BDC04614600F4070B5114D80242401E6 -S3152000D2E0281C211CFFF7E3FBAB21002001F008F9E5 -S3152000D2F0FF21002001F004F9FF21002001F000F9B0 -S3152000D300FF21002001F0FCF8FF21002001F0F8F8B1 -S3152000D310211C061C281CFFF7C5FBF0B270BDC046B9 -S3152000D32014600F40F0B58022314B900387B018600F -S3152000D330F221304800F048FF2F48F02100F044FF4A -S3152000D3402E48F02100F040FF2D48F02100F03CFF50 -S3152000D3502C48F42100F038FF2B48F42100F034FF4C -S3152000D3602748F52100F030FF2648F52100F02CFF54 -S3152000D3702048F22100F028FF1F48F02100F024FF6A -S3152000D380224D1E48F021C02700F01EFF204C1E48CB -S3152000D390F4213F02802600F017FF3601281C391C95 -S3152000D3A0FFF780FB311C201CFFF77CFB296802203D -S3152000D3B00F432F6022680025164326602B1C009001 -S3152000D3C00190029503950495281C07212A1C01F03B -S3152000D3D037F8104B1D701F1C3C78132C05D0152CCC -S3152000D3E003D0FFF779FF3870F6E707B0F0BDC046E7 -S3152000D3F0043105408C6108409061084094610840E2 -S3152000D400986108409C610840A061084004600F4074 -S3152000D41014600F4064F70020802138B50901051CEF -S3152000D4202048FFF744FB204B1878132819D10020F9 -S3152000D4304B2101F065F804240020FF21013C01F076 -S3152000D4405FF8002CF8D10020FF2101F059F828556B -S3152000D4500134082CF7D1802212481101FFF722FB54 -S3152000D46038BD1528F7D14B21002001F049F80020BE -S3152000D470011C01F045F80121002001F041F80221AC -S3152000D480002001F03DF80020FF2101F039F80024AA -S3152000D4900020FF2101F034F828550134082CF7D15B -S3152000D4A0D9E7C04614600F4064F7002008B5FFF79F -S3152000D4B0F9FEC307FBD408BD38B5094D80242401E5 -S3152000D4C0FFF7F4FF281C211CFFF7F1FA06210020A4 -S3152000D4D001F016F8281C211CFFF7E4FA38BDC046D7 -S3152000D4E014600F4038B5174D0023041C2B70287884 -S3152000D4F0132805D0152803D0FFF7EEFE2870F6E78F -S3152000D500FFF7DAFFFFF7D2FF80210F480901FFF767 -S3152000D510CEFAD821002000F0F3FF2202110E2504B6 -S3152000D520002000F0EDFF290E002000F0E9FFE1B217 -S3152000D5300020802400F0E4FF03482101FFF7B2FA1F -S3152000D54038BDC04664F7002014600F40F8B5C7B256 -S3152000D550161C8023CA19041C0D1C580082422ED882 -S3152000D56080214A03531B9C4229D8FFF7A5FFFFF7CA -S3152000D5709DFF802112480901FFF799FA0221002018 -S3152000D58000F0BEFF2002010E2404002000F0B8FFA8 -S3152000D590210E002000F0B4FFB9B2002000F0B0FF49 -S3152000D5A0341CA71BAF4205DA2178002000F0A8FF23 -S3152000D5B00134F6E7802502482901FFF773FAF8BD02 -S3152000D5C014600F40F8B5041C0D1C171CFFF784FED1 -S3152000D5D0132801D01528F9D18023580385422FD846 -S3152000D5E084422DD82A1982422AD880267300E1B295 -S3152000D5F0581A86B2B54202D2AEB2002E07D0201CEF -S3152000D6003A1C311CFFF7A2FFA419BF19AD1B261C1B -S3152000D6103A1B611992198B1BFF2B07D98021301CCD -S3152000D62049000136FFF792FFFF36F1E7280A060286 -S3152000D630EDB23019BA19002D02D0A9B2FFF786FF34 -S3152000D640F8BD0000F8B58023051C0E1C141C5803D9 -S3152000D650814231D885422FD84A1982422CD8FFF7E9 -S3152000D66025FF802115480901FFF721FA0B2100200B -S3152000D67000F046FF290C002000F042FFFF27290A70 -S3152000D6803940002000F03CFF291C3940002000F0E2 -S3152000D69037FF0020391C00F033FFA519AC4206D015 -S3152000D6A00020FF2100F02CFF20700134F6E78024B3 -S3152000D6B002482101FFF7F6F9F8BDC04614600F4075 -S3152000D6C0034B044918684018431E98417047C046CA -S3152000D6D00001401088A9CBED38B5041CFFF7F0FFF8 -S3152000D6E0051E06D0104D211C18312A68201C904793 -S3152000D6F018E0FFF717FE2378362B08D03A2B0ED1E9 -S3152000D700201CE56125622430FFF786FE05E0074AE6 -S3152000D71007481368E36101682162258302E08020BF -S3152000D72041002183208B38BD000140100032044087 -S3152000D73000500440074B0849084A1860084B086007 -S3152000D7401060196801401960064B1A68104018606D -S3152000D7507047C046786100407C61004044610040CB -S3152000D760AC610040BC610040044B19680142FBD10A -S3152000D770034B18601A680242FCD17047B061004022 -S3152000D780B46100400C4A0D4B11680D4819401160D8 -S3152000D79002681A4002600B480B4A01681940016072 -S3152000D7A0106818401060094A09481168194011602C -S3152000D7B00268134003607047C06100407FFF7FFF0F -S3152000D7C0C4610040C8610040CC610040D061004087 -S3152000D7D0D46100400F2203061040D90F40000B18D9 -S3152000D7E0014A99018818704700F80020054A8023CD -S3152000D7F09802002110601160034A13680342FBD08F -S3152000D8007047C046003105405031054038B504699F -S3152000D8100D1C201CFFF7DEFFC368C02293438560E2 -S3152000D820C3600F20204001218140034D0B1C2006A0 -S3152000D83000D50B042B6038BDB0610040026938B5B5 -S3152000D840041C0F25154000F06DFA23690120A8401D -S3152000D8501A0600D50004FFF787FF38BD036910B507 -S3152000D8600F21041C1048194080220918134205D0A4 -S3152000D870890008680D4B03400B6003E08B00186895 -S3152000D88090431860201C00F04DFA21690F220A40AF -S3152000D89001209040090600D50004FFF74BFF201C0D -S3152000D8A0FFF7CCFF10BDC04670180010FFFF7FFFAA -S3152000D8B010B504690F23234007490122200603D50A -S3152000D8C09A400868140402E09A400868141C204014 -S3152000D8D0431E984110BDC046B8610040F8B50369A3 -S3152000D8E00A60161C0F22051C1A40134801211C062B -S3152000D8F003D5914004680F0402E0914004680F1C90 -S3152000D9003C40621E9441002C15D10C4C802022688C -S3152000D910C7013A432260281CFFF7CAFF2168394213 -S3152000D920F3D02268064B13402360002803D1281C1D -S3152000D930311CFFF76BFFF8BDB0610040406100402D -S3152000D940FFBFFFFF38B5051C0C1C281CFFF7B0FFD6 -S3152000D9500028FAD10123281C2360211CFFF756FF3B -S3152000D96038BD000002690F230448134019188B00A4 -S3152000D9701A68034802431A607047C04670180010A0 -S3152000D98001000100084B021C196801208A420AD1B5 -S3152000D9900648C02302681905F82011400206881897 -S3152000D9A0434258410130704740F3002084610040D3 -S3152000D9B0034B1A68904202D102484906016070471B -S3152000D9C040F3002054610040054B1A68904205D16F -S3152000D9D0480680214A04034B02431A607047C0461A -S3152000D9E040F300205461004008B500282BD116488A -S3152000D9F0164B0268196020218A430260FFF7C2FE97 -S3152000DA0001235842FFF796FE01204042FFF7ACFE65 -S3152000DA100F4B01211A6802208A431A601860186881 -S3152000DA2002210B4A0842FAD10A4B092019600A49F9 -S3152000DA300A4B086010680A490340136009480A4ADD -S3152000DA400A4B0A60186008BD0430044040F30020E9 -S3152000DA5040610040A8610040A4610040FFFF00FF34 -S3152000DA60586100404701000000F80020486100404E -S3152000DA7008B5064B1968884202D1082000F01EFE20 -S3152000DA800348012302681A43026008BD40F30020C0 -S3152000DA9040610040F8B5041CFFF7D0FE63691868A2 -S3152000DAA0C779201C00F041FA051E06D000F052FA74 -S3152000DAB0071C281C00F054FA051C2669301CFFF7A9 -S3152000DAC089FE6B426B4180223904DF03930519439B -S3152000DAD03943016001270021C160416001618760EF -S3152000DAE041618161C161016244620F240B48344067 -S3152000DAF02218930019680A4CAF00AD043D430C4030 -S3152000DB0025431D60320603D5C0221868160401E09D -S3152000DB101E68C02006431E60F8BDC046701800105F -S3152000DB20F3FFF3FFF0B55D4B5D4A1968106885B0C9 -S3152000DB3001400091196000D1ADE0CB0718D40098C0 -S3152000DB40420600D4A7E0574E012437680125FFF787 -S3152000DB5019FE6042FFF7EEFD6842FFF705FE381C0E -S3152000DB600021FFF725FF381C002100F003FA92E080 -S3152000DB704D4F00263B680393B3425DD14B4E0024A4 -S3152000DB803768A74270D1DAE7301CFFF723FE446AD4 -S3152000DB90002C58D0206A002855D02369181C0193E0 -S3152000DBA0FFF718FE011C28310A78051C227029353A -S3152000DBB02B78011C63702A310A78051CA2702B353C -S3152000DBC02B78011CE3702C310A78051C22712D3527 -S3152000DBD02B78011C63712E310A782F30A2710078C0 -S3152000DBE0A569E0710198FFF7F5FD031C2833197824 -S3152000DBF0021C297029321378011C6B702A310A788D -S3152000DC00031CAA702B331978021CE9702C32137866 -S3152000DC10011C2B712D310A78031C6A712E33197859 -S3152000DC202F30A9710078E871029D226A3D60201C80 -S3152000DC3090470136062EA1D00121039AB1400291C8 -S3152000DC400A42F6D0A0E7029D3D60F2E73560201C2F -S3152000DC50FFF7C0FD406A00280BD129040F420DD1E1 -S3152000DC600134062C00D16AE70125A5402F42F4D0C5 -S3152000DC70ECE7436A002BF0D09847EEE7201C316092 -S3152000DC808030FFF7A7FD406A0028E9D0426A002AC3 -S3152000DC90E6D09047E4E705B0F0BDC04644610040B9 -S3152000DCA04861004040F30020AC610040BC61004068 -S3152000DCB003690F211A060B40D00F5B001A1803497F -S3152000DCC090004058002800D1FEE7704744F300201A -S3152000DCD0036870B51C690F2221061440CD0F66001B -S3152000DCE0AC190E4BA100CA58002A00D0FEE7C85036 -S3152000DCF0816844680B1C651EAA4206D280331E1C0E -S3152000DD00803E336070660132F6E7054D00236219C6 -S3152000DD10D6018C192360606670BDC04644F300208E -S3152000DD20FFFFFF0108B5FFF7C3FF72B6C368002BDC -S3152000DD3007D0C36819685A6EC160916819609360EC -S3152000DD40F4E762B608BD000038B50C1C151CFFF7B9 -S3152000DD50AFFF8368002B42D072B683680022196811 -S3152000DD6081601A6062B6012119641E492A040A4399 -S3152000DD705A64802251016218110B0A0380219C6487 -S3152000DD80DA648A01A1180A0B1103C02219659101D0 -S3152000DD906218110B0A0380215A65CA01A418210BA7 -S3152000DDA00A039A651D6672B65D6EEC68002C0DD06E -S3152000DDB0E9680A68002A01D0111CFAE71A1C0B60D0 -S3152000DDC0006840314032FFF789FD05E0191CEB6001 -S3152000DDD000684031FFF7B6FD62B6002001E0012061 -S3152000DDE0404238BD8080000070B5061C0D1C141CF6 -S3152000DDF0301C291C221CFFF7A7FF0130F8D0002079 -S3152000DE0070BD08B500210A1CFFF7EEFF08BD10B54E -S3152000DE10FFF74EFF002800D1FEE7C368002B10D085 -S3152000DE205A6C68210A4200D0FEE7110609D41A6806 -S3152000DE30596EC26072B68C681C608B6062B6131C09 -S3152000DE40ECE710BD10B502786023041C1340402B6C -S3152000DE500FD006D8002B09D0202B12D10B484268B0 -S3152000DE6009E0602B0DD1094BDA6804E0074A1268F5 -S3152000DE7001E006488268002A03D0201C904700282B -S3152000DE8002D0201CFFF76EFD10BDC0467CE90020A5 -S3152000DE9008B50021FFF7D6FF08BD10B50378041C8E -S3152000DEA0DA090221002A00D10121FFF7CBFF201C2D -S3152000DEB0FFF7ADFF10BD10B50378041CDA09012168 -S3152000DEC0002A00D10221FFF7BDFF201CFFF79FFF8C -S3152000DED010BD10B5041CC38848780A78022801D0E2 -S3152000DEE0072803D1CA78887812020243A0699A4289 -S3152000DEF000D91A1CFFF778FFE069FFF782FF0020A0 -S3152000DF0010BD436970B5DD68002408CD002B0AD00A -S3152000DF101E7A8E42F9D1944203D11968FFF7D9FFB0 -S3152000DF2002E00134F1E7012070BD436910B51B6999 -S3152000DF30021C002B0CD018680378002B08D04178DF -S3152000DF40052903D181781469A14202D0C018F3E7CC -S3152000DF50181C10BD427903791102081C184370471A -S3152000DF60C078032318407047014B18607047C0469D -S3152000DF7074F3002070B5041C0D1E0ED0C668002E4A -S3152000DF8018D0FFF7FFFC08CE002B13D01A7A824256 -S3152000DF90F9D15968A942F6D100E00B1C20698342C9 -S3152000DFA000D02361044B1D68002D01D0201CA847FA -S3152000DFB0012000E0002070BD74F30020F8B5041C99 -S3152000DFC040780E1C0B2800D9EAE000F093FB062AC5 -S3152000DFD0E93EE9AF70E9CCBA53630025A94200D0E7 -S3152000DFE0DFE022781F210A40012A16D0AA4211D04A -S3152000DFF0022A00D0D5E0A7886B480F233B401E1885 -S3152000E000B1000F68694B6A493B40581E83410B801B -S3152000E010A0693BE0A069674901E0A0696649022240 -S3152000E02034E00025A94200D0BBE022781F21114010 -S3152000E030022900D0B5E0A7885B480F233B401E1875 -S3152000E040B7003A685D48104012E00025A94200D08A -S3152000E050A7E027781F203840022800D0A1E0A68814 -S3152000E0600F225149324053189F0038684F4E304393 -S3152000E070386018E00025A94200D092E022781F20BF -S3152000E0800240012A00D08CE0A0694D49FFF7ACFE82 -S3152000E090E06909E00025A94200D082E022781F230A -S3152000E0A01340012B7DD1A069FFF7ABFE79E0002953 -S3152000E0B05BD1E0780138062872D800F01BFB0407F4 -S3152000E0C02171711013006169096823E06069FFF707 -S3152000E0D059FCA278011C201C02290AD10DE0636993 -S3152000E0E0996817E06069FFF74DFCA278022802D1F3 -S3152000E0F0201C012101E0201C0221FFF702FF0CE079 -S3152000E100A078EE2802D1201C2E4904E0676900265B -S3152000E1107D6807E0201CFFF7DCFE051C41E08642F7 -S3152000E120F8D0013602CD0029F9D139E000291CD1D9 -S3152000E130A1786069FFF748FCA069FFF762FE351CED -S3152000E1402FE0002911D1A7786069391CFFF712FF4B -S3152000E1500125002825D0002F03D16069311CFFF747 -S3152000E16027FCA06918E0002904D00222B2429B4174 -S3152000E1705D4216E0E1880125A94212D16569267221 -S3152000E1802E69002E01D072682272211C0831A069E6 -S3152000E1900122FFF729FEE069FFF733FE002500E0A4 -S3152000E1A00125281CF8BDC04670180010010001008A -S3152000E1B000FB00207AF3002078F30020FEFFFEFF0C -S3152000E1C07CF3002041ED002001607047064A074B92 -S3152000E1D007491A60074A0860074B1060074A6C20F7 -S3152000E1E0402118601160704708080000846C0840C0 -S3152000E1F010100A4014100A4018100A4000100A4055 -S3152000E200074A0849C12313600B60074B074A186069 -S3152000E2100749084B10606C20402208601A6070473E -S3152000E2200C6108401061084010000E4014000E409A -S3152000E23018000E4000000E400C4A0D4908232020ED -S3152000E240136008600A6813420BD10A4B082205E0C6 -S3152000E2500868024205D1023B002B02D00868024220 -S3152000E260F6D0024B202119607047C04618100A408C -S3152000E27000100A40102700000C4A0D4908232020D0 -S3152000E280136008600A6813420BD10A4B082205E086 -S3152000E2900868024205D1023B002B02D008680242E0 -S3152000E2A0F6D0024B202119607047C04618000E4058 -S3152000E2B000000E40102700000E4B20211A68114244 -S3152000E2C001D00D4B19600D4A0B49106008200860DB -S3152000E2D008490B6818420BD1094B082205E008684B -S3152000E2E0024205D1023B002B02D008680242F6D03A -S3152000E2F07047C04600100A4018100A4008100A400D -S3152000E300102700000E4B20211A68114201D00D4B18 -S3152000E31019600D4A0B4910600820086008490B68EF -S3152000E32018420BD1094B082205E00868024205D1A4 -S3152000E330023B002B02D008680242F6D07047C04646 -S3152000E34000000E4018000E4008000E401027000066 -S3152000E3500E4B20201A68104201D00D4908600C4A45 -S3152000E36008230A491360086803420BD1094B082287 -S3152000E37005E00868024205D1023B002B02D008685E -S3152000E3800242F6D004490B68D8B2704700100A4002 -S3152000E39018100A401027000008100A40124B2021AE -S3152000E3A01A68114201D0114B19600422002818D096 -S3152000E3B00D490A600D4A08230B4913600868034279 -S3152000E3C00BD10B4B082205E00868024205D1023B1F -S3152000E3D0002B02D008680242F6D006490B68D8B254 -S3152000E3E0704702480260E5E700000E4018000E4024 -S3152000E3F01027000008000E40064B20201A68104205 -S3152000E40001D005490860034B0349102208201A60F1 -S3152000E4100860704700100A4018100A40064B20205A -S3152000E4201A68104201D005490860034B034910229F -S3152000E43008201A600860704700000E4018000E4041 -S3152000E440F0B55F464D4656464446F0B483B09C46EA -S3152000E4500CAB1C780DAD2E780EAFA34610ACB14692 -S3152000E4603E7827780FAB1D7801971A4B002824D0C9 -S3152000E47019481A4F03603C6801232343184C3B601C -S3152000E4801848194FA0460023036044464B46236094 -S3152000E49011435B4662461C02114321433960022127 -S3152000E4A03143019E29433143CDB2056003B03CBCC4 -S3152000E4B090469946A246AB46F0BD0C4F0C483B60B1 -S3152000E4C0036801271F4307600A480B4F80460B4805 -S3152000E4D0D9E7C046000800099800054028160540DF -S3152000E4E010500C4004500C4000500C409400054045 -S3152000E4F01815054010300840003008400430084008 -S3152000E50030B5002816D10D4D0D4B02241A68144241 -S3152000E510FCD0296000280BD109481021046821422B -S3152000E520FCD104201A681042FCD02D68A8B230BD58 -S3152000E5300448F2E7044D034BE7E7C046083008409D -S3152000E5400C3008400C500C4008500C40FEE7C046EA -S3152000E5507047C0464F4A504B9A421FD2DF1C141DAB -S3152000E560381B810801318F004C4B381F4107FE189C -S3152000E570C80F02CB1160B3420FD0002803D001CBC5 -S3152000E58001C4B34209D0181C20C8211C20C15B68D5 -S3152000E5906360031D0C1DB342F5D1D2194048824257 -S3152000E5A016D2C41C131DE51AA908013188001018BB -S3152000E5B0C41A0021650708D511601A1C043311609E -S3152000E5C0834205D01A1D1960131D11608342F9D1AB -S3152000E5D03448354988421BD20331061D8F1BBD089E -S3152000E5E001246F1C2C40026801259047BD420FD0A4 -S3152000E5F0002C04D008CE02259847BD4208D0341CF2 -S3152000E60001CC804702357668B047261DBD42F6D13B -S3152000E610264B27498B421BD203311E1D8F1BBD085B -S3152000E62001246F1C2C401A6801259047BD420FD04B -S3152000E630002C04D001CE02258047BD4208D0341CD0 -S3152000E64008CC984702357668B047261DBD42F6D1DC -S3152000E650FDF7C8FD1748184988421BD20331061D0D -S3152000E6608F1BBD0801246F1C2C4002680125904792 -S3152000E670BD420FD0002C04D008CE02259847BD42BB -S3152000E68008D0341C01CC804702357668B047261D59 -S3152000E690BD42F6D130EF002030EF00206CEC002098 -S3152000E6A004FB00206CEC00206CEC00206CEC0020BD -S3152000E6B06CEC00206CEC00206CEC00204309044A32 -S3152000E6C099008B181F210840012282401A6070474A -S3152000E6D000E100E01F2803D8044BC01801707047E2 -S3152000E6E00F22034B1040C0180170F8E700E400E049 -S3152000E6F014ED00E002B4714649084900095C49005E -S3152000E7008E4402BC7047C046002934D00123002223 -S3152000E71010B488422CD301242407A14204D281427A -S3152000E72002D209011B01F8E7E400A14204D281428A -S3152000E73002D249005B00F8E7884201D3401A1A4307 -S3152000E7404C08A04202D3001B5C0822438C08A0423E -S3152000E75002D3001B9C082243CC08A04202D3001BF4 -S3152000E760DC082243002803D01B0901D00909E3E76E -S3152000E770101C10BC7047002801D00020C04307B4ED -S3152000E780024802A14018029003BDC04619000000AD -S3152000E7900029F0D003B5FFF7B9FF0EBC4243891A12 -S3152000E7A01847C0467047C0469C460304F0B51B0C6C -S3152000E7B017043F0C150C1E1C041C000C7E436B43D7 -S3152000E7C047434543FB18300C1818874202D9802747 -S3152000E7D07B02ED18070CED1967467C434A43360445 -S3152000E7E0330CA11800044919C018F0BDF0B54F46E6 -S3152000E7F04646C0B40F2A72D90B1C03439C0700D08F -S3152000E80090E0171C103F3C09013427010C683B1C83 -S3152000E8100460103BDE064B68CD1943608C68F60F0A -S3152000E8208460CB68041CC3600B1C103310349D42DB -S3152000E83027D0002E0BD0196821605E686660996823 -S3152000E840A160DE681033E66010349D4219D0196845 -S3152000E85021605E6866609968A160DE68191CE660C2 -S3152000E8601B69261C23614C6974618B69B361CC6971 -S3152000E8701031F4610B1C1036341C103310349D42B9 -S3152000E880E5D13F180F21B846114003294DD9043947 -S3152000E8908E08B3000433EC18A446043B2C1C5F07F7 -S3152000E8A008CC4146B14608C1FE0F64450FD0002E64 -S3152000E8B003D080CC80C1644509D0271C08CF0E1C0C -S3152000E8C008C664684C603C1D311D6445F5D1494637 -S3152000E8D001318E000327AD193A40464401E00D1C54 -S3152000E8E0061C002A1AD02F78B218F343D118012417 -S3152000E8F0377001360C40013596420FD0002C05D0DA -S3152000E9002B78013533700136964207D0297831703D -S3152000E9106C780235747002369642F7D10CBC90465C -S3152000E9209946F0BD061C0D1CDDE73E1C0A1CD8E7E7 -S3152000E930031C0A7801311A700133002AF9D1704775 -S3152000E9400023C25C0133002AFBD1581E7047C04603 -S3152000E9502076312E302E302D726331302D342D67B6 -S3152000E960386135373564362D6469727479203230D2 -S3152000E97032302D30352D303700000000BDDF00202D -S3152000E9800000000005C30020000000001FED00204D -S3152000E99023ED002074ED0020D7EC002000000000BD -S3152000E9A0303132333435363738394142434445469F -S3152000E9B0E08060000F0E0D0C0B0A090807060504FF -S3152000E9C00302010001010101010202020202030306 -S3152000E9D003030304040404040505050505060606C9 -S3152000E9E0060607070707070707070707080808088F -S3152000E9F00808080808080909090909090909090967 -S3152000EA000A0A0A0A0A0A0A0A0A0A0B0B0B0B0B0B3A -S3152000EA100B0B0B0B0B0B0B0B0B0B0B0B0B0B0C0C1E -S3152000EA200C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C00 -S3152000EA300C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CF0 -S3152000EA400C0C0C0C0C0C0D0D0D0D0D0D0D0D0D0DD6 -S3152000EA500D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0DC0 -S3152000EA600D0D0D0D0D0D0D0D0D0D0D0D0D0D0E0EAE -S3152000EA700E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E90 -S3152000EA800E0E0E0E0E0E0E0E0E0E0E0E0F0F0F0F7C -S3152000EA900F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F60 -S3152000EAA00F0F0F0F0F0F0F0F0F0F1010101010104A -S3152000EAB01010101010101010101010101010101030 -S3152000EAC01010101010101010111111111111111118 -S3152000EAD01111111111111111111111111111111100 -S3152000EAE011111111111111111111111111111111F0 -S3152000EAF011111111111111111111111111111111E0 -S3152000EB0011111111111111111111111111111111CF -S3152000EB1011111111111111111111111111111111BF -S3152000EB2011111111111111111111111111111111AF -S3152000EB30111111111111111111111111111111119F -S3152000EB40111111111111111111111111111111118F -S3152000EB501111111112121212121212121212121273 -S3152000EB60121212121212121212121212121212125F -S3152000EB70121212121212121212121212121212124F -S3152000EB80121212121212121212121212121212123F -S3152000EB90121212121212121212121212121212122F -S3152000EBA0121212121212121212121212121212121F -S3152000EBB0121212121212121212121212121212120F -S3152000EBC012121212121212121212121212121212FF -S3152000EBD012121212121212121212121212121313ED -S3152000EBE013131313131313131313131313131313CF -S3152000EBF013131313131313131313131313131313BF -S3152000EC0013131313131313131313131313131313AE -S3152000EC101313131313131313131313130802DF08F9 -S3152000EC2002BE08028B08027B08026908025800020D -S3152000EC30440002440002340002340002240002246C -S3152000EC400002140002130002130002110002000049 -S3152000EC5041000041000040000040000008040C0272 -S3112000EC600A060E0109050D030B070F0024 -S3152000EC6C0430002008300020001C0020003000203A -S3152000EC7C041C0020081C00200A060002000000408C -S3152000EC8C01000902200001010080FA09040000029B -S3152000EC9CFFFFFF0007058102400000070502024026 -S3152000ECAC0000002800000000010400010000000004 -S3152000ECBC000000010157494E555342000057494E5A -S3152000ECCC5553420000000000000000360341004965 -S3152000ECDC005200530050005900200053004E003AB9 -S3152000ECEC00200020002000200020002000200020F2 -S3152000ECFC00200020002000200020002000200020E2 -S3152000ED0C001201000200000040501DA1600001010C -S3152000ED1C020301040309041E037700770077002EF3 -S3152000ED2C006100690072007300700079002E006388 -S3152000ED3C006F006D0012034D005300460054003145 -S3152000ED4C003000300013000902200001010080FA77 -S3152000ED5C0904000002FFFFFF0007058102000200E4 -S3152000ED6C07050202000200000E0341004900520072 -S3152000ED7C5300500059008E000000000105000100D0 -S3152000ED8C8400000001000000280044006500760085 -S3152000ED9C69006300650049006E007400650072000E -S3152000EDAC6600610063006500470055004900440079 -S3152000EDBC00004E0000007B00340041004600340069 -S3152000EDCC31003800360035002D004200430031005A -S3152000EDDC45002D0037003400350041002D00390048 -S3152000EDEC3800320036002D00390037004300410030 -S3152000EDFC41003800450045003000340037004600FD -S3152000EE0C7D00000053ED00200100000002000000F0 -S3152000EE1C0DED00208CE9002084EC00203CEE002037 -S3152000EE2C000000008EEC0020010000000100000014 -S3152000EE3C10EE002030EE00200000000078EE0020BE -S3152000EE4C0400000040F5002000000000A0EE002089 -S3152000EE5C01000000C0F2002000000000C8EE0020D7 -S3152000EE6C04000000C0F0002000000000000000009C -S3152000EE7C0000000000000000000000000000000060 -S3152000EE8C1CEE0020C8EE002078EE002091DE00203B -S3152000EE9C9BDE0020000000000000000000000000A7 -S3152000EEAC00000000020000001CEE00200000000004 -S3152000EEBCA0EE0020000000000FDE00200000000065 -S3152000EECC0000000000000000000000008000000090 -S3152000EEDC1CEE0020C8EE002078EE0020000000007A -S3152000EEECB7DE002000EF00200100000040F00020DB -S3152000EEFC00000000000000000000000000000000E0 -S3152000EF0C00000000810000001CEE002000EF002015 -S3152000EF1C00000000000000000FDE00200010002082 -S3092000EF2C01000000BA -S7052000E555A0 diff --git a/airspy_m0/airspy_rx.o b/airspy_m0/airspy_rx.o deleted file mode 100644 index e5a2bcc495aacc8be09aef575b0a7892e1d4c356..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11088 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 diff --git a/airspy_m0/airspy_usb_req.o b/airspy_m0/airspy_usb_req.o deleted file mode 100644 index 5184fd2063da4171d79a03b5d211dc5713eaea89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117860 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
B%K-O3%ZfZzzysVf^xB*fU@DUH{st#ZNOm%f| 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%0DXT~uUWQyWU0W4CZFwQWh{~u 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 OZL8FN#D#WAD)m3vzCeKh diff --git a/airspy_m0/fault_handler.o b/airspy_m0/fault_handler.o deleted file mode 100644 index c39caa282b7eed157277e2e5849f59506ffb8f0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9296 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 diff --git a/airspy_m0/r820t.o b/airspy_m0/r820t.o deleted file mode 100644 index c72922315c79fb6d0e0a5bf2f43fb57c51d14dbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59900 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
CK9IAP@^N9A)yN`y5hk-+ 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 XiOY4(cwP7S3dTL-R)=Y?$Bf_q$6O6g diff --git a/airspy_m0/rom_iap.o b/airspy_m0/rom_iap.o deleted file mode 100644 index 76d2a2e9d5e8c7a7192f298965804dc75d91d4f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10868 zcmb_ic|4Ts+kc*!G4_28)rjo-GKrM2B-wWrjTtkR!eB;;MBCA#REqYEw49bhdng^P zw9u(kr<6*hg-9xu_qxY3O#S+O-uI99{&=46wcXc!-PgT7Q@NhLQ*j)}L+9>UxLChVrfi0ybvfxvpQ|#aZAkJM zGJD3YRfrOr>6q!0RsWTAp`McH@pZK@H7zJ`UA1_|qFGwxK_fdu>Zy!x=5oG|<>U%f zziFLyJ(rh64QJ3|mpr9Rp<))drAmo*<6>fBxOtc%HGHZGh7DkrncKMm71PNKrJUnc zn!ziVKQr-gH~rJ+uMe6@@>2BlYiUa^FHo66d$V3~#Z0Xua;HAA_r+9?o8~GNZgS^g zS%`vH=YHk^3jb^qMt`P<%&fy;A zto`TKt?Jws>l5TQ>rK%s_sX4eUZrh~zBz9Fa}#kr0$1il;bj_OtD7!GD`)>{i{Ol(g%fzV@*befrjgwe5Yq9|V7!debbfsqOve(Mis> z%iV2i0S{@uoSJ=Zu(>+@*d;4`(8-R35sjlyNMB4w*2z5IT{vG9^T30Orr{DkIs(eEu6Sj z=4;%m9Ru%OEK#xCRfc$!7^M}8~2lD2YNXU(A)b?vyrBs+to2T^0|HyTHhuN7?x zSW>R4pVW8boXbV?mCjX@moJjm?i#q>oG&{q%4uTZpD$EyMJ~K>MI!9WK%GqZ0oGgQ z1K&bkR{z{juX^3G$4^pP&vP_Nma{RQx_Ge3?!@-lJ$bgvvUF=}YOgD7aQJJ?u9)$g zKTh(vJ-Jfx+Dy*a4e}duJm>-cF03rP{>OENqJ0g^{I8mLL{m0A*I0aU^1=9{?SucC z9LkTjnXAs%Je~GD)?~=^EEu!le8kuhc(KaZX!9dSz^Jym?7owL)`; zMD5bl+A9`Y6UYR)=H zNz~yJe_&Hj>EBO2bC31lObGo)b@xv1;(uJ6tv;JO8b%~8D7T;gVOdn!xA^)=Ir~0e zko`>Aear9fr{rxu)s1$2p9?;fKaPM|mYSYcdDRyZ8}KxM>n5YL z*fgEaiJtzY-fx?Ajo)0Qn;j|zrut9n*S(DntoQG;Fw1_{viI!?uX!yh5AX1fb4w%U z?JNj%zSr;7rF~sHO7iS$J;f}iHw~}NLn^Km^(GZPq8UzqTzRjY?x=KBDWQ0O5wp_e zW{DRAYt}vPG~rcKlCOhH*7lTWiS+HHI+vPCNyezrl&I_aIQ{*dXup)qh$GvNcCv3L zhnnYemo`1^kN&E;e*dD}2NtQB_pn{*g@mhYn3UyzlJU zHg?&OeG{|xRGc)W>e)6$@%IAAi;?=(uzvbGu7^g|e%wnneHi zV+NZNI-agrX1Z?0CC!z~uiV?M^5RNN(G!Pd@|rfzW?yjHi<+q<&+SajpA zh?B=H_C4C%U#GLaxmc%Vmgd>veH7ae2-|u(CN(UHiDBo#_P-31CPeI71=r^VN`@Hr z9m$SF@{&TD)i3lror>+rU$@LYdQ@Lo6Ru;UG~L8ZeeL)Akp`!@&b~!#m$t$N^UMA# zb|iQ1kBFBKs+zOM!s3xspN#pQqH_`sZe{F-QzYfPLvt#M0<=0~kBeH_3n4F$-@57Z+mcCj_ zuX8-J<%q_@G~{fz8t1BEpm2S_FTDvoJWra#Y8yrll;lbIc- z4!Lr=Iblp&S41TXLr}y;Qox z)aSO^%tBeYL-Hhn(!C!W;|A^L)veI6(RsdVs!|vyzh^6+;}^#93)<1=^-g2^X#0y& zkIFsEW#rzwE?Zp4Po1FYa;>T6E-9yWOvP#TPMP(yRBk`_>(0?|PEwPukD*)f0(RBi zS9p{2?hg0CzFQ>ux%=mi-pclV#wfC1ds%v4$PKAutV4%5lW*aAOLpFAf3c>dJ{bQ8Lv)WlU{G_)9Csm zuVa1nyl+RiNp-bO#k2oWn`vPv>vgLxux(=I?8u2@1DaOE{d zbE%D%$(92W8Lid6AGe&lQ5@&_hw-u1#b)h$|4J_|tTK;0-j`b3EwQ*UM{b8^;Emqvn+)vvo5!u)SYZtE3doAFRwZ6vmc(KR?f)V=J;(7Hi7@S96Q$D zT~<_Qp}SK#W_icl`c~y^Gc$z{)0N(vFI@=rd3h{y<%vdvj%NQG_y2wOTCpM{F-sNPHl6J#w>oWiRzBQJ!k90h~WO2A8 zwIk^B>X2isW8eEaB&S|qAhl!9{#8%aX7<@^$Q(5#Ay+GK{Es!>iJVnF=C&yzktbB< z1oY8MI~&(&e>8vUeT4qUc=qPc+P2M|>YG_hcBZ{vG<#dkwL=*ae;AjLDjufo8 z2TV$|3Gui#KiS8i!*dh$UXAS&Hs9m0KtA!hPvZ$zZ_gFyx2KPU8y-n77}$R41xIz9 z_qUvGqm@R_s+P_8(la2}+~Ky_NGEVd#)qVBRaw^$wlb&gS8J2FR^;!eKF>Dny@tVK z&W@YbNop2Bo1SXW=b9|v+%kTDbo#+@MP=q8CFSK;R)=pn$NO%&^6R9EfV+ktNe;(5 zwpN=SZutJkn$8WrJI48)xS?$`^YhD&T{GUA+IYUMmNKm8Z`zx6v}Nb%Nf8PA_dGvi z`#QCP|K|BJ+m*X^{u?OWS0e3lcG27CUd=kWnZAmr_P^}tv>6-iGIjB%ze@kiI@sQ` z?T}}EZfnumetM+p*#^J;XD$euO$uKWUVp-KGFtJZytHK6k`$dEQE542;%A<zemnfjF{1(F^I3{PlejvbrdL=V-ZR=^$@d>s4<^0eG8kd8Rj+Me;IPg6 z%7#gA4=;!eX|uH|OrLN&eS%-s{JKx^uj&tu8eeYIv?=UCwZh)4RmItE6J}>WnUFN8 zi5`(%v+Li^rjX*A7Ay0Q8euNligR7g3w-{lj94sfu&v&meBtEdg_4Wf17>~XWbXK< zvcSaIR6Y7rF6Y3YQskITua=kI@#4))p0Ziv)IpL9skS0+ts&{$0o#4&8X8jG=$XxU zK3=c%)7vl1NQa`hq&mM0%_O_$U&8uYo@dSeXu6~0GAX=y?V{otlPi>;c)ygLzcDlK z>ZLx9Ggoz7Zzd<7U)<^&=lDiv^sQ^J&#ynlE6qA{oxFvyASTm#e7la@j{~|L3iW$Z zjrHp4a-5WkzA+|t7UJ3)>(*Dtf&q^j6iE?Cg2G*Df1J_rA){&rfeT-&8PR)9V0vg>q{4{F5%vpPbF{8fg90 z@M3D^(?KWRQCn) zyuRj5jdhyf=1wat@43;h-RWO#q_pn&hm(7{8M&I7+A9R}2kI_<%`~SCEWNnd{4#re zWRCStr7_zIPPa~Td;iI+H2AOUO0AK8v^%Q))~a8n(oEne*FLe$^l?+0;@AZByaeA> z^-l|yt8CC+c^@CYS<>4s`TZwPaXvfTy?AumvpluKZ9gRTWqftd zzaVLNch@>?x%8FOLf=b`rw2|fCRa=&9auh&HA7~=`CM5{spa=Imbuj-?-$=qe7ksK z;F^ZT{wArkmVau3+9>Z0RrYkNR*v=6-FUY^CMdRl?y5o1p3DL^`qB0u2GxT{!$RfG2Z0O?LEj?Z9mpEBWvr@%I*D)JGW9F&pUcQ zQaZ=o-C@bX-ud$iN)v$6Nh7vryUuUR>~nBTRb*K*y%nm>27 zJevQh%B0%smUC-bK<;W*m(t6ftm7?t{Da>ftSFi~t}Cx=5cf9;H%w%uG86gC#N^Z@ zZZbDTz~zWOU=ebC|KLq$F|O05J1y9nu`F+4Gq3Tmds9B{407%S;3hq+vrj zxC9Mb@wtMGRB^2#XpJnA1qm6+Y$G6IQ!`v*dFcXfrbV(f2;yzw6~KpAT#|r?ATA>% zR*=X`vEXxsDAaLS0@jEC!^l1qZ>|F|6F;34$y*FwUn?w}{X1_jB~8NG2S z6OfQd5-EryNq$BgMPe<~CZ{1fkc|`+NgirMO2QW@xJZHuh^sj{Gzq22{rmbwpUIqG$I%TrZBqCo8c zT9LXKXeFvXyp^dYAW@-~0j)}%32!y3EqGI>Zh^N3H6J3$BVpvlU`1xtpw_g=ars~; zbrTqJ0_qh>ACu}u28l>P(x+h35g;xBMh5ksf=Q~8ldDms52z9kbrMyQq5zkQ6vLHn zh$@jWNpo`S2UKYz@;!%5RQis%G~}G5uZ592AwqIGswOK%u`&csZYNk!Y+#CGa(^Sz zRwzA#BC(^R)C$8xlrTITlePxoR1q(Uk=1~v*nb13WE!aOaZwZ~LMH&_P>C2vL`h8rRhdWb0p0YR>SC~)K5K+01Vz*_~s2(EEQ{2yRY(SnDRg9&-n zbS@vmokS{_m!wFjuZE*82q6g?7+Jwd)>+nD6+94fh)aTk z%gQ1-4sxn780pGGI#tD_Qu4!99c5tjaNJuJSrk367b-bmR7O63(5|g-mnsKHh-6SeL zC4(m5@sjv7R(djxo6P2NI9yJYz2yX&t+kC^nq3q-F(nGzBqg$~;$vg2z|10rm%_E+ zve=1MU}tG>1?u6ypY@3;u}K*mI1|!&$xJx1En`twd;tfJ1j_`}Ymp)WDMUvys8A2! z06=fDBd+E_&cuzZV75Tl2+a{l4EAJrFasIEp-gWNsDbelv$%o< zsa#Ch7&F8(G}PPQi^*^g^$zzG8hVF%2l!)&9Ht{1^Y#yC_(H{@7BMu6tQ5HJ@F1I_ zo*@RBMlm>|5Ckki2A`SE{UrwIl{do|g~0Ie7z*Bx5g6#{G2Dn7BMjnYgnEwj_vfoq z5-%m5CVUBdNW?bPmk~0J8RqXDiiHHbGyj`+lu>NB@^J9z;wDV?P@;kZLLs@30H&uu z!_60>Lzcf>0^PzwW?&qrC{|)RKXpM=e4>CLnQ`+)RI)WDHcWxRo`KAWVDC^*WWi>L!&OmQ&^UmJ zm_sBT8f`Qw(5&(H3-tB$^Yjme{(1R_(cEdmB_v#I))Q^)XvXQ>Brc23HKEO71p8Tu zR-}bJbAkmsos|-sKuhP&OXS046Drx#t!<)*=L5`iG!29^@u$e#1N>kjdJ@xIG_^qL z$M7GS1tFmUflN2?!5mr^9wDJaV>`q$-C(~Mp5@*!`b>1j|7SiD`7nMkhA<(8^A=)5 zH}+H(Y(i+3)9u+9gvIb9;!1_I1kYdw2lz1=f!<&ZHg>k`p;`M&C@7c2Bt`?~8{qCk z%$Onf!)t*r%noEGBMDA+FL!q*nlVazsBqJZo8?|LD z995|azthZPrT;eAbZ*>lj)G1yViNB0>~apr{#b46SIWXJE9cz zZ%EAHvNPhDi79bB7ziQFVzXf_i))j3vEnSOl$3aMd?B|(b^cR=hDhWQh8wd)X9avS zW0o+pEm;CVdLlbR@UxdVSc2$F?f+bKz!DwFa9tA?bTJk$!h;$Fdhj4SbP-17S39Ib z#RwjB3IE^h%)y4JlLw^GAF3-VB7f6BAZ|Ac_#lzdhz?_q(0NFG7#{I8CGwXGa&do` zfcFw9M|4=(2%QHcCJTw!D(cjT4yzlX^MJ(mNnlt2B8Vb#{RDXNc0YohipXe0hxLun zc}Pu#fq~oca1r^F2SVK6D6mr-wi?!9#=qEEfZZxIKtvJwWBg)w8op$fh>QS5cC&u5 zo2ZCk!N0MaL)eMtRRP$EkB8_+j6S51Z;@RY*oohbMRrTUNLs9&mxe?B3_zv~53)nu z+DZ5Wa;U(KKI=E*w)Gc(-@soUj4|?u@-6ar=of!kpj-$tQ4x{o+g?N?-6t4~qaq_f zk?sr-;{8|%{}o~#=ux{G@QB)N_{CoteE1rJUQ|T>uKwar&U7R%DBmJ~Ex-7?0sh3t zL*(z#Fa8X`9}WDV__W3Rb^qe;CHT`6IRQHn`4$NA{(68v^pS=9>5BP7KS7{6=v+l* z0Ft4Kf+q^np+^$NNZd{VHn2325n+S$N?-@Wo+?u1f}M?sA?y%qK=>1>{sOy6A_h8)pUfkL zEL@r5ym%&&f0+>_P-F~#>JTgBpKeP?4?moU6*2~!l~^HTu!)EjGGy{+k4nNCD8EBx zghD(SM)7BRWubi_VLdd;!wlGq@6f0|EC#Vc7Ow0O0r{tuhwRbH8YyJq$`I$r{1UI; zh!QBW@N^y#k+HEOj8IP#&Py~W(3)3)e86-Q&H}X8s(@B}ZJ=zp!Xqk(M?d|c`sh){ zdIpET?_)6o0cODY-A5g|M-5+9s-MmXzaU@@TV$Uwl> z2w{Psvw{R2L3e1<=%LX-h_a4w6hc^cXf2UolRJWk*h0&fs_hrkB}wh;J|z)k|Y3H(IhHv&m87^pu|1S$}y zMxZu5-e;|8v0&NL&Byci;9t2J&Fp$7V0_PIAfWX}Z9wqP|fiDQ`ArSq(gW5-X zGeR8#y$B2@u$aID1Rh5S8|!HTZy|(1zE9{M6WERr&fPZzb|D12FNB^9+Zy7f5JLMZ z1h0t@>d^?K6F7yy2!vqIA`sFqj0f$CC@xI`Vaf@4GXkv$oQ@FuqhAjZh7&lGz&Qk_ z5ST&W0s`|0Tt;9qfm;a_t_KJLty2^aTH~l4R1hzU6P-^;E=S;FLf=F1s0s$A&paKRA7%>Zo zU`7Q4f`VDkfQT8DuWEJ%mObw7{p0)f-OSU~^>kHDPp56h#jc)i3CTF%_VyqM`)s`;m=gM^%4nv%F%n26gz z_B5uZ%DB9eKOJsQ{_QBI>MU$w!P;wODCH>?Xsnf2CGp1-mw}~|^Q5aD3oR30Cnahw z>MA?PJexuI2Pkafd1>QR%1k$Niii;rc|E~4N6K?i_=2MF@-7~C7#btT@-y<3bXk(oF2x#g=aO#loRF}#(O1M8YptS( ztFCl&v&=H|RAV|M8cIIXxbo+Gha~fI^T@v#S)4}~wK7$L*15#pxA|U^9wuhlxI_7R z?n5`3x77vrvrd*vS`fr2#i5lc1v*ui83bEQ=#cPKTM6!~^Iqz@##6?g`jLBuyJPTH zM|0n(q4K{Nb5aVnZm6HD=%`fJx<$Qfr^LIefRhn=c1oEpw|2CRX}gnd-Qb!(U_peI zo|ymP30aG0L=6ck9RimcH7wuclS^k+4BU5~Y9hb)@g;gZXTAk=@-hO>i z>z4K#;nq@l_6rZb`SeaAecs?(!l9p~)0=Fax3dl`o$ha%)^6uuW8C#=q1%rA!uc{Y z=Wp>XY#!HkrcIkGcgHq*CdY5=)ui$TR!Nm^+XpO@Y<<)?vGMqiUsEzRf0ldDJjqOy zp=nd(mT#qY@6Ma}$DAp3Dr)Z2ehfF?IDd+M(hRqkT3uGN9{x3>E>M4;$?l;H36Ya0 z&Lnp~vwyBV`Q6p~)n0*NNbtPwsFVRi*IG zNvoaczNu{RRB^*m?x3_~6Vny!TxQD^3EyNK`u_07@+bu}Bk$57KCXjXd>*b}T61CM zX&J)>k&%Z+?9Cr(^rpe%DOYZO z)Y4Kc{pb=$_HvPtW@5WlY69&qRQ?RD)ht@3le5p^q`|U6X|+8$*K#^?a^&px0FWkTKJ z+D3}hT39p%t_!dHHuH2+wll(&AI^xh*wxrcX* zjbA%(#;u1Eqff3JUO#&A+>}+T9pwy1XD-n+sOh|THA+Ngg{9}T^+)`-Tn_p&F;OIA zOI_kV1&L7SjG)fx6XfNX7NMJ>Ut}3|dV5|P*VfqiLgno6j(yToR==4LX+7xS#)dhP zNf$DIj;_xBBWbs<#?GPH18-)1ZXC5OU4f}zE3cwDWSqycgvGCu@9Tzmp6{Of>1FHA z_PU*)mlm#y*kVvSWyzbhVS`homYRDit%<&E>hbNfe$2kum<55Yg{p7Xcyp9X=l^x# z-PtUs?Gg9(-g%JL5m<55f94U%5eW~QzB5I=qtB%jqjO{ciP;Psjn{@%-rZT9VGS&}U8!8y3Ps#VQ>Z=i<0cZ+&p zke1lXEnA1!UVm+Py7jGf`@;6?);rmYCazIk6mDf&r>Eg^OeRB=qm!{E!us_FR!Oow z<8nchG5ch&OVqXk=@ORK>SmSG+Z=~^46S%%6+2?mvI|!aUB4@I_Ta(>of=KO3vO9$ zlhhBqZ*G2(b!K9C;_2FH13C>TL8#Y=i4rk>akG^TKf*2TngBH=>QUSE+qI`z4*IJ5R;&a&^}*Rpel z)H>xpHN8J^UHp^ZbHA6yHeGsQ;+^63b^H1FKc+S9k|@tm_b|&}(&*ynYUoT~PWUzqjyFV#KbPdy6Y#*1ps{BYG-(zxxlp)U8+DgEhr9hqpL) zZfvr$SGT{YxII&|c!O1q?5GRpQxBQPyKHwG^Uk1tM$z)l(0QL$c~$s*brWxszT+bI zYR1T4>0enV-@n#AY<+#TiQM^F#}0aws896KecGH_@JO{G+V1u{=Sys9yGw;ze3(NA z-6OYUIXCM3@iW}$$8)BxU|+4;TJpKXqic`r=dQ9h=ZSia-A_{rIFoSr$o)Qd zwk1f*FDOWE>Y{W>jb}rSPA!*mx2ag3SA4V9vO;`d{*1jBx6c;}sANyqC?2Px9r#?! zXY1$+alIR+*UCq?*6ZDT(Y^b@-sUxS&95^Iwy-WZyIu*@*b}_KUvqwDxW#4jkX-k& z9X2;%-~>N;`X>Ig#01UEgs$H+Uf9XzcO9H_*uc9oyK%pn#;iq$k9It0+LLh0?ue9m z%9NamVe=1OG)q14+}&2n`PR_3=C^Yeygkw2a(}qp_-kz@AI*j+alUtj4rRGNdcs-Lr zwiS6|N}E^REcZ9mTQNXc(ZTt|tR2D|w`LY7U(QPhT9IVAn%y^XhLMaz9kX-?KSQL=I5nXy{Q zk;~oOMkZ>x&o3O=@T+>0@dEEk=Vvn4NA5g2&rdeo?d{JPYeUhhvJ2OLKL6=|?7{QS zhf>vFy4rt8d|RGJ#e_u^3=A||q(j%HQA@m|Q7SV}>zQw+vhsF+l>+a_(h@9F=`l+)*9;Al(@7m% zy2!JraZ|G9i7d5`9crDWektsffzxU#6b@$ov1jIPJK1v1>gRrDhF8aT3zev!nDuJ+ zfVIM_8>77?tg52#)_R)_yF0gOaFcRVeu@gQ>)>MldsB^yY$h8oJ6ieKP3_wUYtf`t zAxpx&te;h$N({U>s)*D2W!1=&t;;`{Dx`7U9&c=|o}gGgV?S4`dVG*#b=je(k5z`q z&aK|6n>lDdci5=-uAuPf=4aQ88qceFpQ%oEYi{v97`CB!+2T^~>-Y5bWZm6t>9POr zE}8X4$rVbqW6u#6Hm@uR5!U`;3|s1xB3%^2$E$Y@b>^@pZ$??JcUw zcdBNJ)-OG7e}0y+_WIPO%N-q;SDYKRMnqJk>&RupKeKmEa-R_MY2Fy?ijyjBFK(FB zWsEe#!D}}j25)MtNpgfnak;6F-WPu{jc$#6iTuZ6F9*u6Q+n{{ixE}TAIBZL-RSXD z-PC7UUVxl-)^C=o2KRl7ZjsG}4I`mv={9KEb3Z$E)hCCIH!^;2*W?`9;9@qi zev@tWkxj*W%sy9{UzM@kUbK99N@42z4MiS}8oSGX-3v35m|h2i_nJaw_O<Mm*W_>6&x%D?LBU zgIi7q`Q)B{msBz3+?+dmkBw8S{l>6V85`bbI$P^@qPjY8`!j}dW?u45?<#Y($1R#p z>zq^@T6BGU{P#@XEPA4Pkg1P|2SsDj(sv(8<3XQT8^{@nH4 z(z`$wV*sXI#D%I-4f9`Lt-g&Y# zsZIFAm8H_(YwgB2#4UJ!bm6UsxjWp<-+s+rT08&X!#URL^{QlF8IBe0(;(#hUOstI z`e>(1qa*eNs^oHG;2PhLyi(oHW;nu$Jj^?g6b$x&XsqvO{} z-)voZr&Foj!#ll&u72~FFo+}aE$@`MZs?Y;`6GNsj$UVcsxIGABz9TH<5{<2z3OB2V8=JR7S_mr#-Ox)_|ot0;Bthm!!tomg9mh>l5 z7o<*i+Ph_p=yty|{bAbM`x9lSHmNDU)%O;W^cc|4pl~_WcJsV^m3SM!ffo^P+d#N+L&|jk|kpPOPh!(d)$1XIDMo>}ra*iyb82+5J-g9Yj*2 z_=B|I4j>7KjC=VwgQY%MT5H&^7co>FZIWXYCl>_$8I*jk(5vWrx7V?073!mpH?XE1 zCzdT-xuMF*`{JjgE^+FU!tyz_YPtEYhswl-U2AH(-qnQ-*z6+q`pd6_*IsI0lJ#$l z@-0r6-7`1D>G-#Z$fp~RguLFdFjyt@!wcmhsgo8M<-WdPG^Q<0dF2-(AZ%7cNZnT5 zYX8^1n%UhWhBRm}d>`H1XR7kne2i}uXmDiyJ_t26JHv%HozOxyA@{MQfjrEDT|?NH~8m&v=&*~+c=9ytAmrh%`7 z(cujd2M0B3dE@Mta3OExl|=j z$Vm}Zr-dBFf0%4g>1uIMuvs)>-foV~gnL_}vn9nCL(^jYXW+7|0 z)E4K-IT#wo$ulE_6gJCUb`oorJ3~xJCrbA;7U>Mw?pPW8tNz+1i?2ZsY?>A)eJSW% z-2HX&%TZS~axPgtbB<6xaB+&M@4nu;FRM4G)AggWbNtk&uR25{Pn$ouE4}KKe2U0jsc&gc z&0Txeto(kTQQ>mP_!ZY9cTkmaM&js*9UqPDmVTYKw`$6eG^@5VnFDfXA06V}oFDO1 zLs3SBRa_tQn!C;0&h)vHX<6b4s}GCve{|`&t@tbW+yebc>UTdl%h)bVv>n-S|1VX? zbE%^WBouFKm2Ydg^?2%L?hp6$hJzP2MO3ROGj62I)Y*PzM(or+=3&=W(w0=YY1xhw z619n0Kc}ipE(qI^x~|dKLm~GGQ-;vHWUD%4-LqAiw+|kARk{85pbaneY8k1f-;P z$;v~2$MeNeXA{!~ANK#o5vmbC82DYgapF#WyT=1NRBb)p1g|jAsPH=LbZt-0k4580 zdm7!_mRrWkUh3|tII3a_H@HY+x8Ag6htho>c`Xu35HibkDm5ItOD(f8pvAXj#EfUR zzt7#PskkIQH{j_!&j)&Gt#wZMK9{nGj2@(4a&X64@2-K$YZ9Xz25?klokAy>*(3zi zKFpqbvsPTj*lW>}lrzh|tUq9IT=;oa?(Sv@=NomVy9Nb)vM6n^33=5r;-_ZosH_Jz z)3(1aDqVB*x&IcWsedesj@z={;j~5I`GUZ*hKVnZ&O38<{kY|6O?rv9cQopkdE0$e z+i<&Hw`^+oyJGX)Z4W)SG>;zq?&69k?HOK5g^bdBYBgrs_mkSAW=(!0{-omJ%eGzL zwy8Q^Ik0r+RnADOy__Mx1|{q){Lzr=){(q<>yOkIJ8X?}Excr-PNm)0753UXdU)E? z<4?ke51Oy({!sjq?S@qaBbqAmuN;#(vi04gPS-J4Ds?V=vpyAQB(=WemF9S*ZbGuS z!f<3l*2VTX|L9X2_as~nx~1=1dV5m$y&dtZbBFJ@u=ynUX4UpNR!gMI$||qiZ@*`E zWUqtjv-lgMUWc5y{kgz7`Ngag%s=hc)~_$MP?VksJ9me|CM`E(g_fgh9X=jbEl`@7dM4cKEM)a(;p1nEg76NsjGDin?D2|1x)0k8?gB z;@JIA@<;SCd*ykK?G;6>pO+YK-192=j}t|*J~z9M`rd19zBf?n)exy)pT1wOE0=$K zPPKY$*oU?wU#rV-lP6b4JMQS+X~$ z`M7j&zFRuw-^m^_V_d`5v2Q|^OU)a1gxs#>NXYCO^8SwXNcHg|s*m2QB^)_(qtQ%+ zF*wD@I^{8qSjQK&VYQ>K-<{`nU2JUS-X<5->)O{O zMxJ&moE@}j_V(5T7Keu@^kdg(upGu#cwUM<+i?E-IbiwvgQQ0UD+!6u&Yd> z#LyG5pKBk+T>l~F`)JW6ndfJoMZLVgCH->j%{#H#FY11;9e(Pk)}V_EpUqej{=2X= zAn1JCnO{N0zobJaK3OqWAz+m5B<ylZy`>(%IzvUc6qA(qr4X(9SNiIBjt}61wT?>sM@&Ctm4uK z=|fTD*o`%Qy0iD+4Yw%!?q|5k*XR;^MS^Ze(6(FS#r2&$h_@cg4o^4Rwk<~Q@{(lx z20f>7^Zg69-|bkU=3hHaU&LEdp)+{C+4|Lbzcyd~=(OWxeq#Osy{!`r_eDpqPM7@T zRq|HEHa$@0}yp92Bb;Jaghm}fcVIm@F)&Hr-F|Y#|aAUhf>8y zAO%0kidoKh>s0R2#Djv zbNbkN!$;-BkPl79)Zb&j2X3T!h-pB4LM)dcm>}{}2LP!^NC^m@p8&6=SJ%m>i%$rO z1Mj`cue37m?-jp;ZkSPYLPTP8@G!`Pa1-r9V&f7xDMrzzP!Mhow@LAE3yVsKMF>lb z2}y{IjWLSnkVxu6gA#&z3kaKI!fM@Le|J~1@h;1|YwOKsSfV`J@cS*qUdBd}v9X6y zMlo#8+8mQotZ#Ex?wAmtuU<_RX%jg-JzGrAItXOSQjk1@41)fl^39;9Zs23be(EHoDJ;aFBVYu_|2aUHfAQzL|{!$l4+E<$&j zp3bdJY^Fvamlp}Ie6NP6S`d^lHF~+-nv6WA23swdul^D6Y&ryBVwBIN2GqX(hXx$1U)Ze$v%3;zv-p_LofRudij3!tZun3ny8|fu2x2Q6~%*CCN}GqNoev-y3!g<$}Lq)A-yfLrpSvx{0^Y6{-j+ zO;C1VYwJOV3{IT!8nTRF@C6>>nglt977O0@QBr}~SSXV)CPiZqw}6PRKNMG%IuQQe zU~)jCUcVIGI8xd`=e;OBP|FG7L&~BJaR$!R40J;fNN|Nau ze;R4t8`@ch;Ux?L&)eDrLJ40Fwks$|^<=0=_4pDXl0BY5C@`{t$C%H!B!ra-0ysn$ zdc^{s*M&TzgqbIP+>%JI6 zg&-5#9nI2ACWE;FL~+Jje25)z;|+YAj2LFZbSo8Ombo@cS`PI1ZU%!a!{~W8z$Q(u zjUtq=ZwkB{m_f+d$PsFh??wzfVxM3f>hV~J9(VS5JVN&d+G9>%kCL=U=negNgf}ft znr2k=csP$9gdup|n?EJ!;eB5Z(*J`844-kX$3rW62=DPwDd=G`sQ6k<_J8m&5?kqF zkB4sbfFqyx40VDY4)^sS|DPTPF?ND+p{)#tGGiC8g|;ymIDA#GKNEu(*yn_b7>vOT z1VHISMcNNU4XyPpkc!ZjeoRA(!LtrXq=*TEavSd_crisWiycu#} zovBSoO4>sqtVjb1mdq&0(UKmDV4o_7l}1>RAt{OF3@8_o?jhO0ye-OLcqn4ImBftAH`ORAe8wX*pd&WB20!fn4jvQh-6hBd6<-kqNNm%tcHQZtI)+4g9%<8 zT&X0Ew)9U#LqG8J+?i9ZBQD1~tPgdh%O5CQ_K`}&0ff=BS;CwTP)h6H{OxE6y4=vBRm z?;%m$*Ml~c41)_oKrkS)QxT90rEu>_{GPCl|K(Y53_%MaAhWMiDByoA9(Ni)xAzIL zu~5S#O#ktzajqAPg+EqU8&I!=2=gW8^#I6(b+Hln9u;4yEw2ax7e@v$1MXzAyY0|8IR1=?`x3Zs>#^ACo2z$S#0cdOWF7 z<=BRp*yR1ck)ri%!2d7okAcQy61eeVGP-1>VYVi}n}sQ#VQg#?5*r;I8$*PQ^5e$E zhQ|d(v%?~zIPq+~6q^zHe&I2R?1b3ZsCafzTr`^#9n1+0<%IfK8e6l?P0cLkS@;D< z#`uAmsK{WG@Q@G_pc%!)#&C={LBWwGz%#Zq0d>#+ef5zsAyJ8;9D-*cmdl9=iMBAI zO3@}=6vYj(v`9(mIlVCsfsRMSCxpVUBI5{nJc94c2MRz52MLfNw~WG|hq*|H!PYjh zw}anIOijEE?a3LMoBfl*gvo#wBPbKq1cPm2VrOSB-?#i4lxv&VjWMxvkTqj6`D#1? zjhTrxxMB=Le%jqveI7GIU`1j9sIO~*)0$AqP3%i^#tHPkii?1yS>a3FDbUeAW&@VPfB+3I;<{py=G+Sr>bY=rc3&Ac;IB zB9Ce4(-vBd2W|lg1Rj;Z`BftPV5K$v9triH0mVnafebq_CO$Geh7-!hpSpBS{g5XH&RWgpkM^_JRG(c{p`H6F*`#)ifk6ge>n9t?((E1#s_L|0!&>|c=#*=2FIdJkepWr6Ic`EOe7JEyN z8NT5QN47i_*(uNvX%;h7{~%vxfD_D1J@xyX)Ve!6k7DcL+n7quU170tY-oG7D>Z+y zC&$HxaN^@*sILe4+3f94p z`0Mcd!i5WT=|UMSvL3yVp-o)O9A%U;g|mc~v9iIcql_NEo=xhN(?v3bmk2H8)#ta( z)A!o`zt9oJ@$;h-f`S1P;&>QA=irDpfiNcL0psBKc)}P~Gh;a84KSV)&Ba6Bc;hg$ zk>){WRyKUP$e5_e7*2m0ZeknHo#T#pb^_edo7-VfVKR^+Puffqf7+qCZViP+Y&ACXN%< zZ#m4y36cHxvrtY*RR49z4&9&kST6ki$QafWW9-_-{r0(j^!$CTA2nYe>qkpg?x(z; zKJ_mwfxgrav)?|{509_!{F9d4p!~g=`dbVC&g!p^fTLL6G=gm($_Y*k4~UEji-pOB z%m)Pr!xGL5hgSlBj^h`DV4V-=Q16b%_BY}h$44gb$c6_~I&CPb(jmI5`&oidbZz=b?={|qR|LmejkX^g+A|BHuf6ICZ2 zvZTE*%utE8$2%t=3)Atw8Lkq{P>JRRgUoMl3<&x(saHoV?#-v8Is$l+^h5UQh+Vz; zbjT97;DPWsm`-%|1{6^FbkseAwcMFj_UedFz4>&=62qXufA+&uf--)4TF{vIClxx; zStkLWC7gQf>*qNV1bA(5>Z3p#0i$%bSb+BtHYEM|y&}NF<2pIo2%o+80z5@H*zC`q z8pKRhPseA}hEt6G;u|l(8v)0dZ?FQD=nyypJPkMz8BUV`X|y(%J)Bc$ zdsYJW-hw?G`*fo1nF-j-1A8_=LVH8tqU}u)u%`@4UD_BRZEuo*y-Q$^4SKYv4i{~2 zu7EuUum>UbB;;WV7qIsV?BV_u?P|EI9Dy(#8O3ds_tT6?qXv zAn4Ja6Dv)^O4GY6R>JhnJ6khoTd0uTsEXIoR_7 z657MRr_uIqQueUzF~z{k$G=?C3GLz4EWlHP3iD_Z#X%nK2cTJdnrt=j%mjESexvNs zs!HIEMFUg3@%t6d-hp>&ef~($AHPSG=~m!X zV-b801VyZ#S%}v24LDMdEz_G=eOeOhOY|xs$08&JWY`q(B^H5y5AIDY0yaZ@iACUF zb9)nuY)O6@-%@X4k$=A7m-%NFjE8^cf%1S}GUQm~U*39)Sj3=Sfz;!Q(3@DW^7nm0 z+zIq17Odob^|-S4CKjyBef6-I@Ff3S0jeo^%0>kIJpd&!Vv!OpWUf4BgDxB%Zs zfNvzg$Caozu?Ul10dg#I#po?!5isca5{sPKdka|P%*-$2%-Wk+#|efTiZZTggvr!{>_`kv?Y zv{1h%GXVi`s2hNXx=G|Riz|kNGhB!+ytNDwes+;E_9F>bUjINI_9N8e$U(#&j0pde zJly9ZPl_s6pb+OQJ z_V`Trx`JPpaOZuVfO=Epfs7*)W%4;d_NHVXN>4ry*d^lw9zF-!{l6~9=VjXP{4ni! z`xZo8*${C>V!|h~ICC@MW#Ie4a(uan_*{t48h<80AyqrHM#7{CYj)N59hi52Xp!C-$Y@_fKgGAgl>Scui;rUe&L3Tz2JL3=ypuH&cMuhr) zlzt9Xo`DGUS5tBcrQe4L+m&((k0L_-bCmuXRsIwa>bFy}C`<_GUj`8-F9iw*B0_yO zr8lO^T@j(a7bQnhdM=^`tm71>AVU2mls=Ct--QVEk5KYeN`HsK*A#YA$PfiS#D@vT zCp068I8UOCdk91}h1wM2P7lj*$A$~~>nYqx;VudfP(>EwP?n^S zoM%BEM9KI;IqHW~NY1k$+f%YDh2*>o<@i-O^8F~p&&pB8f8T*f&cDN;AD|4lio!J% z79zrU-brB@g$F4l=V2JH7f=SgN?|>Pt%xulpHldSLULY)@@|x2ys=n3l%!CWLKr>- z6MkOEAwqw}eGT?2XkxNo=pljtrpR`NEdlvl4v6qPV-X?#$%qgiIX-|Kh%)%agm&ri zD26iFC&wiq=@A%g$sh~W1JBKVWW z_6C1!M6hpx2=>Y68$&%G*asEC1euH*{E+d0OvVHLLMeR&BKS?GjA4H4q{M#(=BAwF{aV>}o)1Y?Sb@gPFH{|^{#diwwX diff --git a/airspy_m0/signal_mcu.o b/airspy_m0/signal_mcu.o deleted file mode 100644 index c50afa48791d011e1b5eeba75b72592310b7e1e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1815 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 z 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 diff --git a/airspy_m0/usb_device.o b/airspy_m0/usb_device.o deleted file mode 100644 index 536575a5fec07f723fd28db7ca597f332f240e05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7224 zcmb_gcU)8V7QZ(M5C{Yi7vcz_pjN^Z9F(dE4x}PfMFm3^Nf-%cAfPzFs;I>+4$4#O z04t7)Qb$!36|KeRtP86mK1Ws5YPGI+PI51~iS)hq$2%YH@BGd=-{1M|-#KJPCGr{3(!alpCdrh?~A>eX$*>Eb|CvG%oPK4cQPbMDPEmp=i_KK+3)K%9MSNTIl z=d9Z{uGuAquXiE5W>U9-4-%hzvDl_uKho#s^F<(XmA*kcKPrc3b5_&}9|eg#>^DcG{TzI-wI%2!-$GDYy&h@&ufPbXJPeQw*h_YUOhjOJ$rArGIA4=X3z3P7DlKYhx z$Rf#xQ^y)^s?~t}FeQ^J?=qME`zzeo`1O_(VB>L0*rmwoA2| zQBPm|P<3%}zdsHx{8vA}uxV~;Kkw@c&Kz-mk#Z|C-c~D!k<7`N6!YG(!mwx8`C#`w z;t$%kGi)5cY`l>io|4>m=it%3H}bdJ%w8}nHgwipX>Fig(Y4@Z5AthH|2p{0hPYd* z@583f$t^oQ;!4k@JKu-oy2RJrc#s-gP!K9zT@kcDJ?Vbc>9K2j#)iG)b{ZTRT7US7 zV{FFO;X6uZCXWC4&cNf1VRypbEiG9R*x=stI|XM^Q&lFrZli05^VP*sL8&?CHtrd_ zZP$XD_WWP2{IjBbj=|?%+@i#B6Kwg*@|%wOMCJ`F&mML2uV=pVV@7XCcs*5isU#$O zZ1mbc9?ji$-u5`_y?6SE`bxLGA%<6J^}S_BU+h;E#e6JZyH`a9{W`$L$$5rg;zzH_ z#>EXsdet}Wo9^>Z*FL|8O8E{~re59tIA`<6u*xF&&HZBaUoTD{JL}rr!&z}V+__{Q!B1E{Q?XO>XB+V~O+%vjjlG62_FgdKm z`@rdZ*5x*fMK6~xT^{HCQbUfYYI7i?o&Nf(@S}-Gk2!M>Mc>U?9p+Q3o8@`$i0Z(~ zWrt&uKB}Wj(@s8p=v3xfvSQKiqlJN6iz9ArPAq*n{CIKs4RYTJR({b-mu+^u?^ehf zm!|Fz{yeGIj-S48eD!75sSif`jNiBIc6`Z(OWh_UeV91@+nqyp9B!O+F3IVPsOnK_ z+_JL;Bdf<*t&Ku&#smvckw%ytax7i!SA#1ez!{p72T_AL$)h!SlC%OG^#QoC8|?RZT{Ap z`BCEsFC2CtFYdujpNUC}^4p1Tt>613A-MI6Df{}@>~xt@|Kj&2c26>Rk*$P1J2;(8 z`jAi@eLuBb{vgjQdw+hvF701=e};Berl+;@%1~GN^xivl@T{43g^%YA@jA+{{!N&> zxMXUvo$rNzOio(JIa;{xR$=s@*(dAm_j=!Xd}y7Eb4`u9XNQPm1(JbHorb+WCYjr# zCUxPXVGTvSzxlDXo7ei+-q8_L6u;PRSi%ojKJQKUfDX?L-HwVy2PeAZziI4$Ja$Xh zahqyg7oPVX;^*@C;rytu>GLW#bmy-tFXzR)?Q|u)`suO}wW2N6 z6AxZ%ns92^*xl;~5UDYJ8>XyYzgv0fK*97=PwRXn>(6F2&ZtRRRcp{mL^64nN-8(T z8mib094%6fIz^>0XvKP!My+EaUbKV|DOC!kNS7&>%b3_dTg0Xq($hc1zNfG(g zBRAS)V!ha`0G~#}T*BNHrDQO)GxH5JeGUywZ8+pgFp`Tv>O!Gdq-_#Z*&DH8FFz<* zBzF*KSS%Z7lvs96C~<7=fW*e!gNz-E298}GI_BD3M2Tys0uzU0qf+b9RtS;}$ug_~ zqwOdV2wV6F(w2>lY#%|LO|V;`kedU7og-`772w`)*i7V}TvAzsF`XH$l~|H7kE4G&A`vp#6?Pz-%+$mujfH)l}Ar1u(lfc9A z+&4Avj4eE08k^hK19R#FNVYo;h3d^I7d2fN8sjX4(9-#9Xu%?!x+0=G`l8wpq$}B- z@5W>EJ@_uLi>z)0j~5Oi;Mx*wet+Ho-f%bQn$mM&=Q$*ghk6q9wmksU(Fyj#jiKc_ zH8<_+0PE#VpbrOU@QoE7Ne*|z){dSq9;e`D@E49Ofb*G(Fh>}@C$#tD0k$=KFnA!2 zv80RNpu!@qVoAQ`JHZkg^K@J-Y5&Abtwy00X9!YM>2jT*M|R(ko{0*zL7>-Y(scr{ zHbWrKkjP~+xhyeQ7%B+#4+xqZlqgZD6NN&*bd|(UA(i?8%vY^Z%YEfyiOLUf!eBoz zH~(4MRcdLvK_(}_EY)OWXw(Fu)63xg2$gt;@s-x+WXeH;>6l-0p%iCilIfQeFi2zK z2aDokBO`~1qQ;CIN$8aD>QuRM^wrYS|4B4pzV(*fSVj$N+~2;b=COoWM>W`)a7L8#S-9pt%)n? z8iag3A;dsV2qiilA%q7-2r*wIRH@TdYPm2apkJU=9u&;5WE!+`SQnkXC8HFcs7z%` zmMpPW*OFcSkIh zE!#5Qg8u-c`694sfd5~~1Ay>;n-U)2rr&zZtxds+fZu*hIAa>n0uFs3`M?J;74jt$S^J}L zy}?Y?XCe}Dt*}B7jf(=Ai9@+19L5k~Gn{6`)|^FjK?p zMiY(0be)Mi4KfCGnrK`tD44jLAXnJXsAd~++X}Y;a+qnf6SIxLOpoc$4i-Jm?2fh( zd;lSi-j77UK?c%HblTwnAp2%5LCou5+Q%-SgKWr{p5VUrvGS(`C3C*CzW^(Li@~1& z+M_>A)e(pOMp*fq_BZ2;vhuf+F+Tj6lJ+;*%HO=d@t0xc??>?G0)B9Ocy4HaMU+2K z8EHBA8$@3U(16)U^R4{Vf2O%iS+DA?4=R{juo9SS&mnY8H$ z-~wm?IAV}+59u?C@-x6aqKzQaRpgA}5S(`4925f3cY+V+i~ERc!t|$ye`wrjCtzb# zK{69l&mo?DG+WRg(~2^4Bq%d`L>Wh8CN{yi@StWlzq%$2o3Jy3jdr{tW@20HG`5Gs z!yq<+|5BKVZE@2P??k}=K@7s1Z6-F{OiMf7R5P(*mn`kLYi44@&9SsIUtsJXZ-SZF z1Z*CI*cK-o@oAB8u`uEaP$jFN!&+H~+$e*T}EoGjJ4C6nh zE>@YcWtzfBajbAuj$@^zb7?E}C+WA9-Lg~0$VDQ^E=8DKW(Am5i{(l2uBJN-zo!`E z1N{GPJjJZel)XE}1r!b*SO}2>3yu=*DGQDao&n@|+K}UK87wFSl#DJ=A4u_j6dy?O zp%llnfw=J$Po}tn;s%Q6Q+yu9izvRF;%h0so#F>6j=2K*e?f6PD=4?7cvp)1Q#_pF zQz<@=;@?mlV+#u&!L5{BMe!PnpQHE#ioc~e7oIVe0OCAy=)VJUSXVzv4nq#>Z(QfL G1o3aH1-CK) diff --git a/airspy_m0/usb_endpoint.o b/airspy_m0/usb_endpoint.o deleted file mode 100644 index 4c3011121b06653cab2fe028051d2649cf0ba4e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12828 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 R=Mi)zqOd;kc@M|Z{{V+8$F~3g diff --git a/airspy_m0/usb_queue.o b/airspy_m0/usb_queue.o deleted file mode 100644 index 96d141713dc10bf797fbd9c7618c6ec75e98c257..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28788 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 B?EC-# diff --git a/airspy_m0/usb_request.o b/airspy_m0/usb_request.o deleted file mode 100644 index 0534aad7b0ecfbc799585e8ba0a888e16e3f2bad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16120 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 A%K!iX diff --git a/airspy_m0/usb_standard_request.o b/airspy_m0/usb_standard_request.o deleted file mode 100644 index d2830ef3b953504a7f2839d29ab2f7452be32d19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49224 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%0DcElJ~a#4Cfk}dUF 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 diff --git a/airspy_m0/w25q80bv.o b/airspy_m0/w25q80bv.o deleted file mode 100644 index c226f013f96c4e0d522290f1e5072bdb1775cfa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38852 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 F4FDw}rqcib diff --git a/airspy_m0s/airspy_m0s.elf b/airspy_m0s/airspy_m0s.elf deleted file mode 100644 index e58500c79449899145086ce5e55ad7ddd0fe9337..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60882 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 diff --git a/airspy_m0s/airspy_m0s.hdr b/airspy_m0s/airspy_m0s.hdr deleted file mode 100644 index 364d8d5..0000000 --- a/airspy_m0s/airspy_m0s.hdr +++ /dev/null @@ -1,2 +0,0 @@ -#define AIRSPY_FW_GIT_TAG "v1.0.0-rc10-4-g8a575d6-dirty" -#define AIRSPY_FW_CHECKIN_DATE "2020-05-07" diff --git a/airspy_m0s/airspy_m0s.hex b/airspy_m0s/airspy_m0s.hex deleted file mode 100644 index 2c94e5a..0000000 --- a/airspy_m0s/airspy_m0s.hex +++ /dev/null @@ -1,41 +0,0 @@ -:020000041800E2 -:10000000E0470018ED000018E9000018C5000018CE -:1000100000000000000000000000000000000000E0 -:10002000000000000000000000000000E9000018CF -:100030000000000000000000E9000018E9000018BE -:10004000E5000018E5000018E500001800000000B9 -:10005000E5000018E5000018E5000018E5000018AC -:10006000E5000018E5000018E5000018E50000189C -:10007000E5000018E5000018E5000018E50000188C -:10008000E5000018E5000018E5000018E50000187C -:10009000E5000018E5000018E5000018E50000186C -:1000A000E5000018E5000018E5000018E50000185C -:1000B000E5000018E5000018E5000018E50000184C -:1000C00020BFFDE7042475462C4202D0EFF30980DF -:1000D00002E0EFF30880FFE7014B186000BEFEE787 -:1000E00054020018FEE7C0467047C0464F4A504BC6 -:1000F0009A421FD2DF1C141D381B810801318F006A -:100100004C4B381F4107FE18C80F02CB1160B34299 -:100110000FD0002803D001CB01C4B34209D0181C72 -:1001200020C8211C20C15B686360031D0C1DB34205 -:10013000F5D1D2194048824216D2C41C131DE51ACB -:10014000A908013188001018C41A0021650708D5D4 -:1001500011601A1C04331160834205D01A1D196006 -:10016000131D11608342F9D13448354988421BD2AE -:100170000331061D8F1BBD0801246F1C2C40026833 -:1001800001259047BD420FD0002C04D008CE022597 -:100190009847BD4208D0341C01CC804702357668B0 -:1001A000B047261DBD42F6D1264B27498B421BD2B4 -:1001B00003311E1D8F1BBD0801246F1C2C401A68C3 -:1001C00001259047BD420FD0002C04D001CE02255E -:1001D0008047BD4208D0341C08CC98470235766869 -:1001E000B047261DBD42F6D1FFF76AFF17481849F0 -:1001F00088421BD20331061D8F1BBD0801246F1CD2 -:100200002C40026801259047BD420FD0002C04D03D -:1002100008CE02259847BD4208D0341C01CC804747 -:1002200002357668B047261DBD42F6D1540200184B -:100230005402001854020018580200185402001802 -:1002400054020018540200185402001854020018F6 -:04025000540200183C -:04000005180000EDF2 -:00000001FF diff --git a/airspy_m0s/airspy_m0s.list b/airspy_m0s/airspy_m0s.list deleted file mode 100644 index 4cd1f96..0000000 --- a/airspy_m0s/airspy_m0s.list +++ /dev/null @@ -1,457 +0,0 @@ - -airspy_m0s.elf: file format elf32-littlearm - - -Disassembly of section .text: - -18000000 : -18000000: e0 47 00 18 ed 00 00 18 e9 00 00 18 c5 00 00 18 .G.............. - ... -1800002c: e9 00 00 18 00 00 00 00 00 00 00 00 e9 00 00 18 ................ -1800003c: e9 00 00 18 e5 00 00 18 e5 00 00 18 e5 00 00 18 ................ -1800004c: 00 00 00 00 e5 00 00 18 e5 00 00 18 e5 00 00 18 ................ -1800005c: e5 00 00 18 e5 00 00 18 e5 00 00 18 e5 00 00 18 ................ -1800006c: e5 00 00 18 e5 00 00 18 e5 00 00 18 e5 00 00 18 ................ -1800007c: e5 00 00 18 e5 00 00 18 e5 00 00 18 e5 00 00 18 ................ -1800008c: e5 00 00 18 e5 00 00 18 e5 00 00 18 e5 00 00 18 ................ -1800009c: e5 00 00 18 e5 00 00 18 e5 00 00 18 e5 00 00 18 ................ -180000ac: e5 00 00 18 e5 00 00 18 e5 00 00 18 e5 00 00 18 ................ -180000bc: e5 00 00 18 .... - -180000c0

: -If the event register is 1, WFE clears it to 0 and completes immediately. -Instruction for Cortex M0, M3/M4 -*/ -__attribute__ ((always_inline)) static inline void signal_wfe(void) -{ - __asm("wfe"); -180000c0: bf20 wfe -180000c2: e7fd b.n 180000c0
- -180000c4 : -/* Code Compatible with CortexM0, M3, M4 (R4 & R5 are modified for ARCH 6M) */ -__attribute__((naked)) -void hard_fault_handler(void) -{ -#if defined(__ARM_ARCH_6M__) - __asm__("MOVS R4, #4"); -180000c4: 2404 movs r4, #4 - __asm__("MOV R5, LR"); -180000c6: 4675 mov r5, lr - __asm__("TST R4, R5"); -180000c8: 422c tst r4, r5 - __asm__("BEQ _MSP"); -180000ca: d002 beq.n 180000d2 <_MSP> - __asm__("MRS R0, PSP"); -180000cc: f3ef 8009 mrs r0, PSP - __asm__("B hard_fault_handler_c"); -180000d0: e002 b.n 180000d8 - -180000d2 <_MSP>: - __asm__("_MSP:"); - __asm__("MRS R0, MSP"); -180000d2: f3ef 8008 mrs r0, MSP - __asm__("B hard_fault_handler_c"); -180000d6: e7ff b.n 180000d8 - -180000d8 : -volatile hard_fault_stack_t* hard_fault_stack_pt; - -__attribute__((used)) void hard_fault_handler_c(uint32_t* args) -{ - /* hard_fault_stack_pt contains registers saved before the hard fault */ - hard_fault_stack_pt = (hard_fault_stack_t*)args; -180000d8: 4b01 ldr r3, [pc, #4] ; (180000e0 ) -180000da: 6018 str r0, [r3, #0] - if( SCB->CFSR & CSCB_CFSR_BFSR_PRECISERR ) { - } - } - } - */ - __asm("BKPT #0\n") ; // Break into the debugger -180000dc: be00 bkpt 0x0000 -180000de: e7fe b.n 180000de -180000e0: 18000254 .word 0x18000254 - -180000e4 : - } - -} - -void blocking_handler(void) -{ -180000e4: e7fe b.n 180000e4 -180000e6: 46c0 nop ; (mov r8, r8) - -180000e8 : -} - -void null_handler(void) -{ - /* Do nothing. */ -} -180000e8: 4770 bx lr -180000ea: 46c0 nop ; (mov r8, r8) - -180000ec : -void WEAK __attribute__ ((naked)) reset_handler(void) -{ - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; -180000ec: 4a4f ldr r2, [pc, #316] ; (1800022c ) -180000ee: 4b50 ldr r3, [pc, #320] ; (18000230 ) -180000f0: 429a cmp r2, r3 -180000f2: d21f bcs.n 18000134 - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) -180000f4: 1cdf adds r7, r3, #3 -180000f6: 1d14 adds r4, r2, #4 -180000f8: 1b38 subs r0, r7, r4 -180000fa: 0881 lsrs r1, r0, #2 -180000fc: 3101 adds r1, #1 -180000fe: 008f lsls r7, r1, #2 -18000100: 4b4c ldr r3, [pc, #304] ; (18000234 ) -18000102: 1f38 subs r0, r7, #4 -18000104: 0741 lsls r1, r0, #29 -18000106: 18fe adds r6, r7, r3 -18000108: 0fc8 lsrs r0, r1, #31 - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; - dest < &_edata; - src++, dest++) { - *dest = *src; -1800010a: cb02 ldmia r3!, {r1} -1800010c: 6011 str r1, [r2, #0] -void WEAK __attribute__ ((naked)) reset_handler(void) -{ - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; -1800010e: 42b3 cmp r3, r6 -18000110: d00f beq.n 18000132 -18000112: 2800 cmp r0, #0 -18000114: d003 beq.n 1800011e - dest < &_edata; - src++, dest++) { - *dest = *src; -18000116: cb01 ldmia r3!, {r0} -18000118: c401 stmia r4!, {r0} -void WEAK __attribute__ ((naked)) reset_handler(void) -{ - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; -1800011a: 42b3 cmp r3, r6 -1800011c: d009 beq.n 18000132 - dest < &_edata; - src++, dest++) { - *dest = *src; -1800011e: 1c18 adds r0, r3, #0 -18000120: c820 ldmia r0!, {r5} -18000122: 1c21 adds r1, r4, #0 -18000124: c120 stmia r1!, {r5} -18000126: 685b ldr r3, [r3, #4] -18000128: 6063 str r3, [r4, #4] - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; - dest < &_edata; - src++, dest++) { -1800012a: 1d03 adds r3, r0, #4 -1800012c: 1d0c adds r4, r1, #4 -void WEAK __attribute__ ((naked)) reset_handler(void) -{ - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; -1800012e: 42b3 cmp r3, r6 -18000130: d1f5 bne.n 1800011e -18000132: 19d2 adds r2, r2, r7 - dest < &_edata; - src++, dest++) { - *dest = *src; - } - - while (dest < &_ebss) { -18000134: 4840 ldr r0, [pc, #256] ; (18000238 ) -18000136: 4282 cmp r2, r0 -18000138: d216 bcs.n 18000168 - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) -1800013a: 1cc4 adds r4, r0, #3 -1800013c: 1d13 adds r3, r2, #4 -1800013e: 1ae5 subs r5, r4, r3 -18000140: 08a9 lsrs r1, r5, #2 -18000142: 3101 adds r1, #1 -18000144: 0088 lsls r0, r1, #2 -18000146: 1810 adds r0, r2, r0 -18000148: 1ac4 subs r4, r0, r3 - src++, dest++) { - *dest = *src; - } - - while (dest < &_ebss) { - *dest++ = 0; -1800014a: 2100 movs r1, #0 -1800014c: 0765 lsls r5, r4, #29 -1800014e: d508 bpl.n 18000162 -18000150: 6011 str r1, [r2, #0] -18000152: 1c1a adds r2, r3, #0 -18000154: 3304 adds r3, #4 -18000156: 6011 str r1, [r2, #0] - dest < &_edata; - src++, dest++) { - *dest = *src; - } - - while (dest < &_ebss) { -18000158: 4283 cmp r3, r0 -1800015a: d005 beq.n 18000168 - *dest++ = 0; -1800015c: 1d1a adds r2, r3, #4 -1800015e: 6019 str r1, [r3, #0] -18000160: 1d13 adds r3, r2, #4 -18000162: 6011 str r1, [r2, #0] - dest < &_edata; - src++, dest++) { - *dest = *src; - } - - while (dest < &_ebss) { -18000164: 4283 cmp r3, r0 -18000166: d1f9 bne.n 1800015c - *dest++ = 0; - } - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { -18000168: 4834 ldr r0, [pc, #208] ; (1800023c ) -1800016a: 4935 ldr r1, [pc, #212] ; (18000240 ) -1800016c: 4288 cmp r0, r1 -1800016e: d21b bcs.n 180001a8 - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) -18000170: 3103 adds r1, #3 -18000172: 1d06 adds r6, r0, #4 -18000174: 1b8f subs r7, r1, r6 -18000176: 08bd lsrs r5, r7, #2 -18000178: 2401 movs r4, #1 -1800017a: 1c6f adds r7, r5, #1 -1800017c: 402c ands r4, r5 - *dest++ = 0; - } - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - (*fp)(); -1800017e: 6802 ldr r2, [r0, #0] -18000180: 2501 movs r5, #1 -18000182: 4790 blx r2 - while (dest < &_ebss) { - *dest++ = 0; - } - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { -18000184: 42bd cmp r5, r7 -18000186: d00f beq.n 180001a8 -18000188: 2c00 cmp r4, #0 -1800018a: d004 beq.n 18000196 - (*fp)(); -1800018c: ce08 ldmia r6!, {r3} -1800018e: 2502 movs r5, #2 -18000190: 4798 blx r3 - while (dest < &_ebss) { - *dest++ = 0; - } - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { -18000192: 42bd cmp r5, r7 -18000194: d008 beq.n 180001a8 - (*fp)(); -18000196: 1c34 adds r4, r6, #0 -18000198: cc01 ldmia r4!, {r0} -1800019a: 4780 blx r0 -1800019c: 3502 adds r5, #2 -1800019e: 6876 ldr r6, [r6, #4] -180001a0: 47b0 blx r6 - while (dest < &_ebss) { - *dest++ = 0; - } - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { -180001a2: 1d26 adds r6, r4, #4 -180001a4: 42bd cmp r5, r7 -180001a6: d1f6 bne.n 18000196 - (*fp)(); - } - for (fp = &__init_array_start; fp < &__init_array_end; fp++) { -180001a8: 4b26 ldr r3, [pc, #152] ; (18000244 ) -180001aa: 4927 ldr r1, [pc, #156] ; (18000248 ) -180001ac: 428b cmp r3, r1 -180001ae: d21b bcs.n 180001e8 - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) -180001b0: 3103 adds r1, #3 -180001b2: 1d1e adds r6, r3, #4 -180001b4: 1b8f subs r7, r1, r6 -180001b6: 08bd lsrs r5, r7, #2 -180001b8: 2401 movs r4, #1 -180001ba: 1c6f adds r7, r5, #1 -180001bc: 402c ands r4, r5 - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - (*fp)(); - } - for (fp = &__init_array_start; fp < &__init_array_end; fp++) { - (*fp)(); -180001be: 681a ldr r2, [r3, #0] -180001c0: 2501 movs r5, #1 -180001c2: 4790 blx r2 - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - (*fp)(); - } - for (fp = &__init_array_start; fp < &__init_array_end; fp++) { -180001c4: 42bd cmp r5, r7 -180001c6: d00f beq.n 180001e8 -180001c8: 2c00 cmp r4, #0 -180001ca: d004 beq.n 180001d6 - (*fp)(); -180001cc: ce01 ldmia r6!, {r0} -180001ce: 2502 movs r5, #2 -180001d0: 4780 blx r0 - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - (*fp)(); - } - for (fp = &__init_array_start; fp < &__init_array_end; fp++) { -180001d2: 42bd cmp r5, r7 -180001d4: d008 beq.n 180001e8 - (*fp)(); -180001d6: 1c34 adds r4, r6, #0 -180001d8: cc08 ldmia r4!, {r3} -180001da: 4798 blx r3 -180001dc: 3502 adds r5, #2 -180001de: 6876 ldr r6, [r6, #4] -180001e0: 47b0 blx r6 - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - (*fp)(); - } - for (fp = &__init_array_start; fp < &__init_array_end; fp++) { -180001e2: 1d26 adds r6, r4, #4 -180001e4: 42bd cmp r5, r7 -180001e6: d1f6 bne.n 180001d6 - - /* might be provided by platform specific vector.c */ - pre_main(); - - /* Call the application's entry point. */ - main(); -180001e8: f7ff ff6a bl 180000c0
- - /* Destructors. */ - for (fp = &__fini_array_start; fp < &__fini_array_end; fp++) { -180001ec: 4817 ldr r0, [pc, #92] ; (1800024c ) -180001ee: 4918 ldr r1, [pc, #96] ; (18000250 ) -180001f0: 4288 cmp r0, r1 -180001f2: d21b bcs.n 1800022c - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) -180001f4: 3103 adds r1, #3 -180001f6: 1d06 adds r6, r0, #4 -180001f8: 1b8f subs r7, r1, r6 -180001fa: 08bd lsrs r5, r7, #2 -180001fc: 2401 movs r4, #1 -180001fe: 1c6f adds r7, r5, #1 -18000200: 402c ands r4, r5 - /* Call the application's entry point. */ - main(); - - /* Destructors. */ - for (fp = &__fini_array_start; fp < &__fini_array_end; fp++) { - (*fp)(); -18000202: 6802 ldr r2, [r0, #0] -18000204: 2501 movs r5, #1 -18000206: 4790 blx r2 - - /* Call the application's entry point. */ - main(); - - /* Destructors. */ - for (fp = &__fini_array_start; fp < &__fini_array_end; fp++) { -18000208: 42bd cmp r5, r7 -1800020a: d00f beq.n 1800022c -1800020c: 2c00 cmp r4, #0 -1800020e: d004 beq.n 1800021a - (*fp)(); -18000210: ce08 ldmia r6!, {r3} -18000212: 2502 movs r5, #2 -18000214: 4798 blx r3 - - /* Call the application's entry point. */ - main(); - - /* Destructors. */ - for (fp = &__fini_array_start; fp < &__fini_array_end; fp++) { -18000216: 42bd cmp r5, r7 -18000218: d008 beq.n 1800022c - (*fp)(); -1800021a: 1c34 adds r4, r6, #0 -1800021c: cc01 ldmia r4!, {r0} -1800021e: 4780 blx r0 -18000220: 3502 adds r5, #2 -18000222: 6876 ldr r6, [r6, #4] -18000224: 47b0 blx r6 - - /* Call the application's entry point. */ - main(); - - /* Destructors. */ - for (fp = &__fini_array_start; fp < &__fini_array_end; fp++) { -18000226: 1d26 adds r6, r4, #4 -18000228: 42bd cmp r5, r7 -1800022a: d1f6 bne.n 1800021a -1800022c: 18000254 .word 0x18000254 -18000230: 18000254 .word 0x18000254 -18000234: 18000254 .word 0x18000254 -18000238: 18000258 .word 0x18000258 -1800023c: 18000254 .word 0x18000254 -18000240: 18000254 .word 0x18000254 -18000244: 18000254 .word 0x18000254 -18000248: 18000254 .word 0x18000254 -1800024c: 18000254 .word 0x18000254 -18000250: 18000254 .word 0x18000254 diff --git a/airspy_m0s/airspy_m0s.map b/airspy_m0s/airspy_m0s.map deleted file mode 100644 index 7acd0f1..0000000 --- a/airspy_m0s/airspy_m0s.map +++ /dev/null @@ -1,371 +0,0 @@ -Archive member included because of file (symbol) - -../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - (reset_handler) - -Allocating common symbols -Common symbol size file - -hard_fault_stack_pt - 0x4 fault_handler.o -__gnu_lto_v1 0x1 airspy_m0s.o - -Discarded input sections - - .text 0x00000000 0x0 airspy_m0s.o - .data 0x00000000 0x0 airspy_m0s.o - .bss 0x00000000 0x0 airspy_m0s.o - .gnu.lto_.jmpfuncs.f192f8cd - 0x00000000 0x15 airspy_m0s.o - .gnu.lto_.inline.f192f8cd - 0x00000000 0x24 airspy_m0s.o - .gnu.lto_.pureconst.f192f8cd - 0x00000000 0x15 airspy_m0s.o - .gnu.lto_main.f192f8cd - 0x00000000 0xa4 airspy_m0s.o - .gnu.lto_.cgraph.f192f8cd - 0x00000000 0x22 airspy_m0s.o - .gnu.lto_.vars.f192f8cd - 0x00000000 0x12 airspy_m0s.o - .gnu.lto_.refs.f192f8cd - 0x00000000 0x13 airspy_m0s.o - .gnu.lto_.statics.f192f8cd - 0x00000000 0x14 airspy_m0s.o - .gnu.lto_.decls.f192f8cd - 0x00000000 0xa8 airspy_m0s.o - .gnu.lto_.symtab.f192f8cd - 0x00000000 0x14 airspy_m0s.o - .gnu.lto_.opts - 0x00000000 0x52 airspy_m0s.o - COMMON 0x00000000 0x1 airspy_m0s.o - .text 0x00000000 0x0 fault_handler.o - .data 0x00000000 0x0 fault_handler.o - .bss 0x00000000 0x0 fault_handler.o - .gnu.lto_.jmpfuncs.f19283b6 - 0x00000000 0x1e fault_handler.o - .gnu.lto_.inline.f19283b6 - 0x00000000 0x3f fault_handler.o - .gnu.lto_.pureconst.f19283b6 - 0x00000000 0x1e fault_handler.o - .gnu.lto_hard_fault_handler.f19283b6 - 0x00000000 0x107 fault_handler.o - .gnu.lto_hard_fault_handler_c.f19283b6 - 0x00000000 0x101 fault_handler.o - .gnu.lto_mem_manage_handler.f19283b6 - 0x00000000 0x88 fault_handler.o - .gnu.lto_bus_fault_handler.f19283b6 - 0x00000000 0x88 fault_handler.o - .gnu.lto_usage_fault_handler.f19283b6 - 0x00000000 0x88 fault_handler.o - .gnu.lto_.cgraph.f19283b6 - 0x00000000 0x3c fault_handler.o - .gnu.lto_.vars.f19283b6 - 0x00000000 0x19 fault_handler.o - .gnu.lto_.refs.f19283b6 - 0x00000000 0x17 fault_handler.o - .gnu.lto_.statics.f19283b6 - 0x00000000 0x14 fault_handler.o - .gnu.lto_.decls.f19283b6 - 0x00000000 0x3cb fault_handler.o - .gnu.lto_.symtab.f19283b6 - 0x00000000 0xcf fault_handler.o - .gnu.lto_.opts - 0x00000000 0x52 fault_handler.o - .text.mem_manage_handler - 0x00000000 0x2 fault_handler.o - .text.bus_fault_handler - 0x00000000 0x2 fault_handler.o - .text.usage_fault_handler - 0x00000000 0x2 fault_handler.o - .text 0x00000000 0x0 signal_mcu.o - .data 0x00000000 0x0 signal_mcu.o - .bss 0x00000000 0x0 signal_mcu.o - .gnu.lto_.inline.f192fb53 - 0x00000000 0x12 signal_mcu.o - .gnu.lto_.pureconst.f192fb53 - 0x00000000 0x12 signal_mcu.o - .gnu.lto_.cgraph.f192fb53 - 0x00000000 0x13 signal_mcu.o - .gnu.lto_.vars.f192fb53 - 0x00000000 0x12 signal_mcu.o - .gnu.lto_.refs.f192fb53 - 0x00000000 0x13 signal_mcu.o - .gnu.lto_.statics.f192fb53 - 0x00000000 0x14 signal_mcu.o - .gnu.lto_.decls.f192fb53 - 0x00000000 0x1a signal_mcu.o - .gnu.lto_.symtab.f192fb53 - 0x00000000 0x0 signal_mcu.o - .gnu.lto_.opts - 0x00000000 0x52 signal_mcu.o - .debug_line 0x00000000 0x0 signal_mcu.o - .comment 0x00000000 0x71 signal_mcu.o - .ARM.attributes - 0x00000000 0x31 signal_mcu.o - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .group 0x00000000 0x8 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .text 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .data 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .bss 0x00000000 0x0 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - -Memory Configuration - -Name Origin Length Attributes -rom 0x00000000 0x00100000 xr -ram_local1 0x10000000 0x00020000 xrw -ram_local2 0x10080000 0x00012000 xrw -ram_local_m0sub 0x18000000 0x00004800 xrw -ram_ahb1_m0_stack 0x20000000 0x00001000 xrw -ram_ahb1_spare 0x20001000 0x00000c00 xrw -ram_ahb1_m4_share 0x20001c00 0x00000400 xrw -ram_ahb1_adchs 0x20002000 0x00001000 xrw -ram_ahb1_m0_share 0x20003000 0x00001000 xrw -ram_ahb2 0x2000c000 0x00004000 xrw -*default* 0x00000000 0xffffffff - -Linker script and memory map - -LOAD c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a -LOAD c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libnosys.a -LOAD airspy_m0s.o -LOAD fault_handler.o -LOAD signal_mcu.o -LOAD ../libopencm3/lib\libopencm3_lpc43xx_m0s.a -START GROUP -LOAD c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/armv6-m\libgcc.a -LOAD c:/program files (x86)/gnu tools arm embedded/4.7 2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/armv6-m\libc.a -END GROUP - 0x20001c00 cm4_data_share = ORIGIN (ram_ahb1_m4_share) - 0x20002000 adchs_data = ORIGIN (ram_ahb1_adchs) - 0x20003000 cm0_data_share = ORIGIN (ram_ahb1_m0_share) - 0x2000c000 cm0_exec_baseaddr = ORIGIN (ram_ahb2) - 0x18000000 cm0s_exec_baseaddr = ORIGIN (ram_local_m0sub) - 0x20001000 conf_data_share = ORIGIN (ram_ahb1_spare) - 0x00000c00 conf_data_share_size = 0xc00 - 0x18000000 . = ORIGIN (ram_local_m0sub) - -.text 0x18000000 0x254 - 0x18000000 . = ALIGN (0x400) - *(.vectors) - .vectors 0x18000000 0xc0 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - 0x18000000 vector_table - *(.text*) - .text.startup.main - 0x180000c0 0x4 airspy_m0s.o - 0x180000c0 main - .text.hard_fault_handler - 0x180000c4 0x14 fault_handler.o - 0x180000c4 hard_fault_handler - .text.hard_fault_handler_c - 0x180000d8 0xc fault_handler.o - 0x180000d8 hard_fault_handler_c - .text.blocking_handler - 0x180000e4 0x4 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - 0x180000e4 adc0_isr - 0x180000e4 spi_isr - 0x180000e4 usart2_or_c_can1_isr - 0x180000e4 usart3_isr - 0x180000e4 gint1_isr - 0x180000e4 sgpio_pos_isr - 0x180000e4 timer1_isr - 0x180000e4 i2c0_isr - 0x180000e4 usart0_isr - 0x180000e4 blocking_handler - 0x180000e4 sgpio_shift_isr - 0x180000e4 i2c1_isr - 0x180000e4 ritimer_isr - 0x180000e4 dac_isr - 0x180000e4 m0app_isr - 0x180000e4 dma_isr - 0x180000e4 c_can0_isr - 0x180000e4 eventrouter_isr - 0x180000e4 sgpio_match_isr - 0x180000e4 usb0_isr - 0x180000e4 spifi_or_adchs_isr - 0x180000e4 uart1_isr - 0x180000e4 ssp0_or_ssp1_isr - 0x180000e4 pin_int5_isr - 0x180000e4 i2s0_or_i2s1_or_qei_isr - 0x180000e4 timer2_isr - 0x180000e4 m4core_isr - 0x180000e4 sct_isr - 0x180000e4 adc1_isr - 0x180000e4 mcpwm_isr - 0x180000e4 sgpio_input_isr - 0x180000e4 usb1_isr - .text.null_handler - 0x180000e8 0x4 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - 0x180000e8 sv_call_handler - 0x180000e8 pend_sv_handler - 0x180000e8 sys_tick_handler - 0x180000e8 nmi_handler - 0x180000e8 null_handler - .text.reset_handler - 0x180000ec 0x168 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - 0x180000ec reset_handler - 0x18000254 . = ALIGN (0x4) - *(.rodata*) - 0x18000254 . = ALIGN (0x4) - -.glue_7 0x18000254 0x0 - .glue_7 0x00000000 0x0 linker stubs - -.glue_7t 0x18000254 0x0 - .glue_7t 0x00000000 0x0 linker stubs - -.vfp11_veneer 0x18000254 0x0 - .vfp11_veneer 0x00000000 0x0 linker stubs - -.v4_bx 0x18000254 0x0 - .v4_bx 0x00000000 0x0 linker stubs - -.iplt 0x18000254 0x0 - .iplt 0x00000000 0x0 airspy_m0s.o - -.rel.dyn 0x18000254 0x0 - .rel.iplt 0x00000000 0x0 airspy_m0s.o - -.preinit_array 0x18000254 0x0 - 0x18000254 . = ALIGN (0x4) - 0x18000254 __preinit_array_start = . - *(.preinit_array) - 0x18000254 __preinit_array_end = . - -.init_array 0x18000254 0x0 - 0x18000254 . = ALIGN (0x4) - 0x18000254 __init_array_start = . - *(SORT(.init_array.*)) - *(.init_array) - 0x18000254 __init_array_end = . - -.fini_array 0x18000254 0x0 - 0x18000254 . = ALIGN (0x4) - 0x18000254 __fini_array_start = . - *(.fini_array) - *(SORT(.fini_array.*)) - 0x18000254 __fini_array_end = . - -.ARM.extab - *(.ARM.extab*) - *(.ARM.extab*) - -.ARM.exidx 0x18000254 0x0 - 0x18000254 __exidx_start = . - *(.ARM.exidx*) - 0x18000254 __exidx_end = . - 0x18000254 . = ALIGN (0x4) - 0x18000254 _etext = . - 0x00000000 _etext_ram = 0x0 - 0x00000000 _etext_rom = 0x0 - 0x18000000 . = ORIGIN (ram_local_m0sub) - -.data 0x18000254 0x0 - 0x18000254 _data = . - *(.data*) - 0x18000254 . = ALIGN (0x4) - 0x18000254 _data_loadaddr = LOADADDR (.data) - 0x18000254 _data = . - 0x18000254 _edata = . - -.igot.plt 0x18000254 0x0 - .igot.plt 0x00000000 0x0 airspy_m0s.o - -.bss 0x18000254 0x4 - 0x18000254 _bss = . - *(.bss_aligned*) - *(.bss*) - *(COMMON) - COMMON 0x18000254 0x4 fault_handler.o - 0x18000254 hard_fault_stack_pt - 0x18000258 . = ALIGN (0x4) - 0x18000258 _ebss = . - -/DISCARD/ - *(.eh_frame) - 0x18000258 . = ALIGN (0x4) - 0x18000258 end = . - 0x180047e0 __StackTop = ((ORIGIN (ram_local_m0sub) + 0x4800) - 0x20) - 0x180047e0 PROVIDE (_stack, __StackTop) -OUTPUT(airspy_m0s.elf elf32-littlearm) - -.debug_info 0x00000000 0x6f1 - .debug_info 0x00000000 0x67 airspy_m0s.o - .debug_info 0x00000067 0x3a5 fault_handler.o - .debug_info 0x0000040c 0x2e5 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - -.debug_abbrev 0x00000000 0x2a5 - .debug_abbrev 0x00000000 0x5b airspy_m0s.o - .debug_abbrev 0x0000005b 0x113 fault_handler.o - .debug_abbrev 0x0000016e 0x137 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - -.debug_aranges 0x00000000 0x90 - .debug_aranges - 0x00000000 0x20 airspy_m0s.o - .debug_aranges - 0x00000020 0x40 fault_handler.o - .debug_aranges - 0x00000060 0x30 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - -.debug_ranges 0x00000000 0x60 - .debug_ranges 0x00000000 0x10 airspy_m0s.o - .debug_ranges 0x00000010 0x30 fault_handler.o - .debug_ranges 0x00000040 0x20 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - -.debug_line 0x00000000 0x5b8 - .debug_line 0x00000000 0x5f airspy_m0s.o - .debug_line 0x0000005f 0x133 fault_handler.o - .debug_line 0x00000192 0x426 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - -.debug_str 0x00000000 0x3e3e - .debug_str 0x00000000 0x84 airspy_m0s.o - 0x89 (size before relaxing) - .debug_str 0x00000084 0x19f fault_handler.o - 0x28f (size before relaxing) - .debug_str 0x00000223 0x3c1b ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - 0x3d1a (size before relaxing) - -.comment 0x00000000 0x70 - .comment 0x00000000 0x70 airspy_m0s.o - 0x71 (size before relaxing) - .comment 0x00000000 0x71 fault_handler.o - .comment 0x00000000 0x71 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - -.ARM.attributes - 0x00000000 0x31 - .ARM.attributes - 0x00000000 0x31 airspy_m0s.o - .ARM.attributes - 0x00000031 0x31 fault_handler.o - .ARM.attributes - 0x00000062 0x31 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - -.debug_frame 0x00000000 0xc0 - .debug_frame 0x00000000 0x20 airspy_m0s.o - .debug_frame 0x00000020 0x60 fault_handler.o - .debug_frame 0x00000080 0x40 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - -.debug_loc 0x00000000 0x34 - .debug_loc 0x00000000 0x34 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - -.debug_macro 0x00000000 0xe23 - .debug_macro 0x00000000 0xc8 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .debug_macro 0x000000c8 0x7de ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .debug_macro 0x000008a6 0x3a ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .debug_macro 0x000008e0 0x10 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .debug_macro 0x000008f0 0x2e ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .debug_macro 0x0000091e 0xa2 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .debug_macro 0x000009c0 0x20e ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .debug_macro 0x00000bce 0x22 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .debug_macro 0x00000bf0 0xfa ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .debug_macro 0x00000cea 0x2e ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .debug_macro 0x00000d18 0x47 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) - .debug_macro 0x00000d5f 0xc4 ../libopencm3/lib\libopencm3_lpc43xx_m0s.a(vector.o) diff --git a/airspy_m0s/airspy_m0s.o b/airspy_m0s/airspy_m0s.o deleted file mode 100644 index 5be9daa2d328a98e83c1be2e9a46ded364077264..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3792 zcmb_fYitx%6h3!mw$Sc&**=icDhyI-G3|7>T`dnwfu=1Hyy$h4C;%ec_m21o#X#Sx#y5)(L6m zhK(xcl+5jT|FIvmJQu+4R$;-_WVul#~5rr z)mk;T@bGM6R9N-neHDi)FE;%2^TlVv5rAdQ(p_^1czg$zN{5AWo^UuaiX}Y=m9{G~ z?cMm@xNjA}U)%?5x%~GcY5mx14Zbcm)h-I7gYDsI$^F=lm7n@wR^NHA@{{Vu-oLLT zmPAi{1wy*Idc1#XyzP|danIEF1E)M50ZZL7Gg2Ynzv9`3Cl|ka9<)b01H*wArKZoO zAA6zRb zPW;(!;7>edW=X~KnW&k}X4(zS(pD^{nrhJjAfNr~Vic(b8~_rl#$T%+cUzA6Kf->r z1%-(sJ4m=D7P0{n1s(*;mR38QY&p0jS2ANFyoO!pt#gasChx9_8n%=9Du@k4?>hH- zcZ)}M1BeRi^>D{6bv3M(ZLB)J*~98^ao0e=@(j6eN2seA-0lr-aUo{An$lZYX(0tE z&i-xhL6-nM^vf=Ls{x-#x@jCtQ97d8bUKU0SChJt+aF5%4TVYsMlz96Q=xP;uM8K8 zlsRJxU*-02T=`PT-zEmiKJhxvfJ> zN3>W>i?s(s-R%)w%|wS~T^mUnxP5q0=Z*froe*2Mw?Mo%ku>dTD1I-W;WGIO?~Q9v z=$|cpee2{_TEbv9n=<5hR+llM+;1n8cj(!uW*AxBSp9#jag!hGq-ts;2@Ib%aP<{h zbekV4JPWo}vRbL0EoMu^2DX$nvSpG7L03>12oHEY)j&2EYX=o$f7(Eg-9SusvFhEIU@(MP8NVz+mqwY79cwlX3d`&dwh$Snt|n#~wynIM(3 zj9ZB&bTv0zE;6F(W%KJ=ysY0aRWn(B$uTXODu0btn{wH+ITH&)6~e-)x|z=@R!1n< zcuGu*hbG4?g1 zI0fQcOcPr;-_2+{akrq|%t6H%M2hoK3a4?D<9itWPQC+ZKZk=0&-)ZQoVZnJT+2bl z7`#%Pk5c$%#MRQo7S8t}+D^VZ(7-cyPB?BBJx*L2jruv%TnsLk;KmSlrVOqg{Z78s zxS{3vloDJI;&ztd>#=dXUydNo`6fWqlEEUMWj~35gdHPguL*YGq|)JE;{^z#y&Q)R z2XRwBg-iG@BOkqGxNttb1h*R-QRX1j9GAg~Gw%t^OZg}-?F-NQXbIm4@)3>;=cD>N z`OY}_s1G^c@e;m6$j4vu#L4-dDB*h(`KS)Gz9l#~-?KKKAAKZ0Am8D_)cPep8ZVXL zGDvVw8QdF)Ly8;^eS^3FH&7E7$;UQd!NQuj0Ay~UruC70fH-GerX6*muL^!2H8{t- zbK*z7FL^Tb@+oQFV+8i&3vCviGR`?4?GNR2^7$|?y)e0OK5ldE^h$T0)DnRM4b1wr#O9m z7DWUsibF(LRN`6Wh|=}W&L`V>(vj^v(a3h5z+_YB7Da@mK>J=~r5!AaXzi%eZY&x& z6QRjE%V<}q(zUq$rKriKQ3JnUng5a5Y(jIa@aYx`;nz%vzGg zU8Ly_NE5Gs#&x8x0=VAx(|e2Jy`=F*`fNRD>mgfP{8%o!SHh8yrgf9P)z)-23z)3I Gw*LV$*)snC diff --git a/airspy_m0s/airspy_m0s.srec b/airspy_m0s/airspy_m0s.srec deleted file mode 100644 index bbf40b1..0000000 --- a/airspy_m0s/airspy_m0s.srec +++ /dev/null @@ -1,40 +0,0 @@ -S01200006169727370795F6D30732E737265630B -S31518000000E0470018ED000018E9000018C5000018B0 -S3151800001000000000000000000000000000000000C2 -S31518000020000000000000000000000000E9000018B1 -S315180000300000000000000000E9000018E9000018A0 -S31518000040E5000018E5000018E5000018000000009B -S31518000050E5000018E5000018E5000018E50000188E -S31518000060E5000018E5000018E5000018E50000187E -S31518000070E5000018E5000018E5000018E50000186E -S31518000080E5000018E5000018E5000018E50000185E -S31518000090E5000018E5000018E5000018E50000184E -S315180000A0E5000018E5000018E5000018E50000183E -S315180000B0E5000018E5000018E5000018E50000182E -S315180000C020BFFDE7042475462C4202D0EFF30980C1 -S315180000D002E0EFF30880FFE7014B186000BEFEE769 -S315180000E054020018FEE7C0467047C0464F4A504BA8 -S315180000F09A421FD2DF1C141D381B810801318F004C -S315180001004C4B381F4107FE18C80F02CB1160B3427B -S315180001100FD0002803D001CB01C4B34209D0181C54 -S3151800012020C8211C20C15B686360031D0C1DB342E7 -S31518000130F5D1D2194048824216D2C41C131DE51AAD -S31518000140A908013188001018C41A0021650708D5B6 -S3151800015011601A1C04331160834205D01A1D1960E8 -S31518000160131D11608342F9D13448354988421BD290 -S315180001700331061D8F1BBD0801246F1C2C40026815 -S3151800018001259047BD420FD0002C04D008CE022579 -S315180001909847BD4208D0341C01CC80470235766892 -S315180001A0B047261DBD42F6D1264B27498B421BD296 -S315180001B003311E1D8F1BBD0801246F1C2C401A68A5 -S315180001C001259047BD420FD0002C04D001CE022540 -S315180001D08047BD4208D0341C08CC9847023576684B -S315180001E0B047261DBD42F6D1FFF76AFF17481849D2 -S315180001F088421BD20331061D8F1BBD0801246F1CB4 -S315180002002C40026801259047BD420FD0002C04D01F -S3151800021008CE02259847BD4208D0341C01CC804729 -S3151800022002357668B047261DBD42F6D1540200182D -S3151800023054020018540200185802001854020018E4 -S3151800024054020018540200185402001854020018D8 -S30918000250540200181E -S705180000EDF5 diff --git a/airspy_m0s/fault_handler.o b/airspy_m0s/fault_handler.o deleted file mode 100644 index 4ff85dc7534dbaa2a096c5248609c99e98115983..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9296 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 TP<{X>ry+u$5uBWh2>$*L@+p(t diff --git a/airspy_m0s/signal_mcu.o b/airspy_m0s/signal_mcu.o deleted file mode 100644 index 9b56909d119de511496099c5b7cb5fa3c0f1a80b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1815 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 diff --git a/airspy_rom_to_ram/airspy.dll b/airspy_rom_to_ram/airspy.dll deleted file mode 100644 index ecea5219f07b3efa0e3dc6c1ab7400a58a36afe1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86016 zcmeFae|%KMxj%mPN0J3LoJ9fzi5fLnYM@2~N?bw{$Zi4}*bv!}LISpsrdz5s>;ks= z$;oO?#-sG!Qf;qorPy0-y|=Vi0lkV@g4v*m1pQhRKQ$`ViObbcVzNNY`MjSwyUXH_ z-q-8%`F{WU-sE-8nR#aBnP;AvdFGj!XJ*U4wL`Kyoq|U-~N&?|=NVnIviA zRnJb8o*MVc)%#7izjE~*_21i^y{X~u?>5}|gY56zdDmTc`?J5jA-f@PSN8Yr$}U-6 znf-&i*KhbndiwaB7;0zpUAtSZk_O{XL;1Ud--f@T{GGwO#kYS@#&^qi|9SAo_^#jn z$Y3MBEmxTaGw?On^$Wkb?(M;5_#4Vkif_wR4~eh2?yusz;(Onzr#!x@L>`wU-EK;e z*wDn4@i_gG`RWNKyCfY4jHcocnnMq;WkTBiUelhFaDJtg`b#;KZ{fZ4-!$j z#Mkidm}`>eBVO-(ljNb`R+E&OLXOY%P&j{!ag$k~Dq=K)@;8f#(f8NqL-&{V=M71YXS48jS`hVjWZJ`0S`9mZ!=e6%IfJ|x(K=RoXvBKG|ke1C%{UV)$={IfqpJ*bK` zIfA-RlJ|vWS8rYDU9-F|if(S0yf&QL z`m=|n{4Ox^(V5ptVA9(CW4f-xapZ{L7c~^LmyE9dl<_Wyytj)o0c>g_i-GA$RiE5+ z;^~c~NFy1^GvZjL_=>3QJq`pTCuVfbBsM3tx_J68%|A1d|M&in^PgtqKkF;<&+kg= zJg5XgkByZ%^1GCCCi$mbNwiWO8R21x>L*+zT4uP&MgxKo5#g1r##Y6CoTaolB>&w? zONJEqp7LY66j;GZ*Am`2)D_z5uuVHuGw}36qR!bgSpjKuBR;2W&sikW~ zoNTYQb+%WZvg!=_N-6c461V`k10Us(y|$7UW=ayeOPra*Jya=rz{cMN z%}DcwaOE^rw^lyt)iznfu2Di`^s)*)kN<8O;lF1hbJ=Ud(gm~|_P3gD<{GVH^MktF zJ_}e;;;j6xhz0Fj>9VRo=Hi|zz70w1n9EUD;2M;JF90ok8SwpG4*m%~=E|JVEw}$C zobuk9Xz--`z(a6*t9XgXR1R*ZSPM1R5#J0?WflJ(z)JM;Kz)zv14%1C!jA3eG%dKZ z!M5N>TdlLRJ50q(10U;wOpv3w_EgrN{=4L;kK*Oww<4+UazH)6=HV}bYs#VQU{|0z za+^=8;-?^=z{ct-eiSaF_z}5^cO`s4ic+&C8(WYT)crSsX9E+#4v@Q3Bo6emg+5ai z|7Qc$6IEPEB#se|SGJvS8v`xulmEtJ;XEvGzss6XGx~3q43cvhZd? zmXL+x6R1TurljHz_3ee+u=yIpX<(kj3sG=3s2s8ehvoL rPzMU?e2FXzC5p#9V- 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 HA71|eOp}J; diff --git a/airspy_rom_to_ram/airspy_core.d b/airspy_rom_to_ram/airspy_core.d deleted file mode 100644 index 0a8fbd9..0000000 --- a/airspy_rom_to_ram/airspy_core.d +++ /dev/null @@ -1,21 +0,0 @@ -airspy_core.o: ../common/airspy_core.c ../common/airspy_core.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/include/stdint.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/stdint.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/_ansi.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/newlib.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/sys/config.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/machine/ieeefp.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/sys/features.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/include/stdbool.h \ - ../libopencm3/include/libopencm3/lpc43xx/cgu.h \ - ../libopencm3/include/libopencm3/cm3/common.h \ - ../libopencm3/include/libopencm3/lpc43xx/memorymap.h \ - ../common/airspy_conf.h ../common/airspy_commands.h ../common/r820t.h \ - ../common/airspy_calib.h ../common/si5351c.h \ - ../libopencm3/include/libopencm3/lpc43xx/i2c.h \ - ../libopencm3/include/libopencm3/lpc43xx/ccu.h \ - ../libopencm3/include/libopencm3/lpc43xx/creg.h \ - ../libopencm3/include/libopencm3/lpc43xx/gpio.h \ - ../libopencm3/include/libopencm3/lpc43xx/scu.h \ - ../libopencm3/include/libopencm3/lpc43xx/ssp.h \ - ../libopencm3/include/libopencm3/lpc43xx/rgu.h diff --git a/airspy_rom_to_ram/airspy_core.o b/airspy_rom_to_ram/airspy_core.o deleted file mode 100644 index b60a2dadf527380d4d40bd21660db70fff4c7e81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49676 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 diff --git a/airspy_rom_to_ram/airspy_m4.d b/airspy_rom_to_ram/airspy_m4.d deleted file mode 100644 index 4b2b387..0000000 --- a/airspy_rom_to_ram/airspy_m4.d +++ /dev/null @@ -1,36 +0,0 @@ -airspy_m4.o: ../airspy_m4/airspy_m4.c \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/string.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/_ansi.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/newlib.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/sys/config.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/machine/ieeefp.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/sys/features.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/sys/reent.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/_ansi.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/sys/_types.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/machine/_types.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/machine/_default_types.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/sys/lock.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/sys/string.h \ - ../libopencm3/include/libopencm3/lpc43xx/cgu.h \ - ../libopencm3/include/libopencm3/cm3/common.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/include/stdint.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/stdint.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/include/stdbool.h \ - ../libopencm3/include/libopencm3/lpc43xx/memorymap.h \ - ../libopencm3/include/libopencm3/lpc43xx/ccu.h \ - ../libopencm3/include/libopencm3/lpc43xx/gpio.h \ - ../libopencm3/include/libopencm3/lpc43xx/m4/nvic.h \ - ../libopencm3/include/libopencm3/cm3/nvic.h \ - ../libopencm3/include/libopencm3/cm3/memorymap.h \ - ../libopencm3/include/libopencm3/dispatch/nvic.h \ - ../libopencm3/include/libopencm3/lpc43xx/creg.h \ - ../libopencm3/include/libopencm3/lpc43xx/rgu.h \ - ../libopencm3/include/libopencm3/lpc43xx/ipc.h \ - ../libopencm3/include/libopencm3/cm3/scs.h ../common/airspy_core.h \ - ../common/si5351c.h ../common/airspy_core.h ../common/airspy_conf.h \ - ../common/airspy_commands.h ../common/r820t.h ../common/w25q80bv.h \ - ../common/rom_iap.h ../common/signal_mcu.h ../airspy_m4/adchs.h \ - ../common/airspy_commands.h ../airspy_m4/m0_bin.h ../airspy_m4/m0s_bin.h \ - ../common/airspy_conf.h diff --git a/airspy_rom_to_ram/airspy_m4.o b/airspy_rom_to_ram/airspy_m4.o deleted file mode 100644 index 7614788e0d7ef137fe86212ac30514e2c6d016c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43980 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 Y65SslzmqiV?-u?ZBFeE(Xs4b3A1CU$r2qf` diff --git a/airspy_rom_to_ram/airspy_mini_conf.d b/airspy_rom_to_ram/airspy_mini_conf.d deleted file mode 100644 index 1b9f732..0000000 --- a/airspy_rom_to_ram/airspy_mini_conf.d +++ /dev/null @@ -1,14 +0,0 @@ -airspy_mini_conf.o: ../common/airspy_mini_conf.c ../common/airspy_conf.h \ - ../common/airspy_core.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/include/stdint.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/stdint.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/_ansi.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/newlib.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/sys/config.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/machine/ieeefp.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/sys/features.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/include/stdbool.h \ - ../libopencm3/include/libopencm3/lpc43xx/cgu.h \ - ../libopencm3/include/libopencm3/cm3/common.h \ - ../libopencm3/include/libopencm3/lpc43xx/memorymap.h \ - ../common/airspy_commands.h ../common/r820t.h diff --git a/airspy_rom_to_ram/airspy_mini_conf.o b/airspy_rom_to_ram/airspy_mini_conf.o deleted file mode 100644 index 678c00511d198d2a1a90093f5cd7d8c888f7735e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9436 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 diff --git a/airspy_rom_to_ram/airspy_nos_conf.d b/airspy_rom_to_ram/airspy_nos_conf.d deleted file mode 100644 index e8a21d9..0000000 --- a/airspy_rom_to_ram/airspy_nos_conf.d +++ /dev/null @@ -1,14 +0,0 @@ -airspy_nos_conf.o: ../common/airspy_nos_conf.c ../common/airspy_conf.h \ - ../common/airspy_core.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/include/stdint.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/stdint.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/_ansi.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/newlib.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/sys/config.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/machine/ieeefp.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/sys/features.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/include/stdbool.h \ - ../libopencm3/include/libopencm3/lpc43xx/cgu.h \ - ../libopencm3/include/libopencm3/cm3/common.h \ - ../libopencm3/include/libopencm3/lpc43xx/memorymap.h \ - ../common/airspy_commands.h ../common/r820t.h diff --git a/airspy_rom_to_ram/airspy_nos_conf.o b/airspy_rom_to_ram/airspy_nos_conf.o deleted file mode 100644 index 0662b6afda6bf34c722b722a2a9fac7c2db32909..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10556 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 E0A7)`@&Et; diff --git a/airspy_rom_to_ram/airspy_rom_to_ram.bin b/airspy_rom_to_ram/airspy_rom_to_ram.bin deleted file mode 100644 index 06561b910e24931cc37507ff7875804b1df92652..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21556 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 diff --git a/airspy_rom_to_ram/airspy_rom_to_ram.elf b/airspy_rom_to_ram/airspy_rom_to_ram.elf deleted file mode 100644 index 08f9a75a0d8d0bb488907df326a56408e8f0bf4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280840 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�VPKC5)Lv0pxo`OH#0^T-=v>+nqPR&Vw_%vmr= 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

0mjOxIMuuCm)|tXaY9;8n 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 m7BWZr&uiXV@Rf|HHL|eT+z1XcS--16SY!vU0!9: - 0: e0 1f 09 10 a9 13 00 00 a5 13 00 00 11 07 00 00 ................ - 10: 31 07 00 00 35 07 00 00 39 07 00 00 00 00 00 00 1...5...9....... - ... - 2c: a5 13 00 00 a5 13 00 00 00 00 00 00 a5 13 00 00 ................ - 3c: a5 13 00 00 a1 13 00 00 5d 02 00 00 09 02 00 00 ........]....... - 4c: 00 00 00 00 a1 13 00 00 a1 13 00 00 a1 13 00 00 ................ - 5c: a1 13 00 00 a1 13 00 00 a1 13 00 00 a1 13 00 00 ................ - 6c: a1 13 00 00 a1 13 00 00 a1 13 00 00 a1 13 00 00 ................ - 7c: a1 13 00 00 a1 13 00 00 a1 13 00 00 a1 13 00 00 ................ - 8c: a1 13 00 00 a1 13 00 00 a1 13 00 00 a1 13 00 00 ................ - 9c: a1 13 00 00 a1 13 00 00 a1 13 00 00 a1 13 00 00 ................ - ac: a1 13 00 00 a1 13 00 00 a1 13 00 00 a1 13 00 00 ................ - bc: a1 13 00 00 a1 13 00 00 a1 13 00 00 a1 13 00 00 ................ - cc: a1 13 00 00 a1 13 00 00 a1 13 00 00 a1 13 00 00 ................ - dc: a1 13 00 00 a1 13 00 00 a1 13 00 00 a1 13 00 00 ................ - ec: a1 13 00 00 00 00 00 00 a1 13 00 00 a1 13 00 00 ................ - fc: a1 13 00 00 00 00 00 00 a1 13 00 00 a1 13 00 00 ................ - 10c: a1 13 00 00 a1 13 00 00 ........ - -00000114 : -void set_packing_state(uint8_t state) -{ - if(state == 0) - { - use_packing = 0; - *usb_bulk_buffer_length = 0x4000; - 114: 4b07 ldr r3, [pc, #28] ; (134 ) - 116: 681b ldr r3, [r3, #0] - set_packing->raw = 0; -} - -void set_packing_state(uint8_t state) -{ - if(state == 0) - 118: b130 cbz r0, 128 - use_packing = 0; - *usb_bulk_buffer_length = 0x4000; - } - else - { - use_packing = 1; - 11a: 4a07 ldr r2, [pc, #28] ; (138 ) - 11c: 2101 movs r1, #1 - *usb_bulk_buffer_length = 0x1800; - 11e: f44f 50c0 mov.w r0, #6144 ; 0x1800 - use_packing = 0; - *usb_bulk_buffer_length = 0x4000; - } - else - { - use_packing = 1; - 122: 6011 str r1, [r2, #0] - *usb_bulk_buffer_length = 0x1800; - 124: 6018 str r0, [r3, #0] - 126: 4770 bx lr - -void set_packing_state(uint8_t state) -{ - if(state == 0) - { - use_packing = 0; - 128: 4903 ldr r1, [pc, #12] ; (138 ) - *usb_bulk_buffer_length = 0x4000; - 12a: f44f 4280 mov.w r2, #16384 ; 0x4000 - -void set_packing_state(uint8_t state) -{ - if(state == 0) - { - use_packing = 0; - 12e: 6008 str r0, [r1, #0] - *usb_bulk_buffer_length = 0x4000; - 130: 601a str r2, [r3, #0] - 132: 4770 bx lr - 134: 1008000c .word 0x1008000c - 138: 10080028 .word 0x10080028 - -0000013c : - *usb_bulk_buffer_length = 0x1800; - } -} - -void adchs_start(uint8_t chan_num) -{ - 13c: b538 push {r3, r4, r5, lr} - 13e: 4605 mov r5, r0 - int i; - uint32_t *dst; - - /* Disable IRQ globally */ - __asm__("cpsid i"); - 140: b672 cpsid i - - if(first_start == 0) - 142: 4c26 ldr r4, [pc, #152] ; (1dc ) - 144: 6823 ldr r3, [r4, #0] - 146: 2b00 cmp r3, #0 - 148: d03f beq.n 1ca - *usb_bulk_buffer_length = 0x1800; - } -} - -void adchs_start(uint8_t chan_num) -{ - 14a: f643 73fc movw r3, #16380 ; 0x3ffc - first_start = 1; - } - - /* Clear ADCHS Buffer */ - dst = (uint32_t *)ADCHS_DATA_BUFFER; - for(i=0; i<(ADCHS_DATA_BUFFER_SIZE_BYTE/4); i++) - 14e: f64b 74fc movw r4, #49148 ; 0xbffc - *usb_bulk_buffer_length = 0x1800; - } -} - -void adchs_start(uint8_t chan_num) -{ - 152: f2c2 0300 movt r3, #8192 ; 0x2000 - - /* Clear ADCHS Buffer */ - dst = (uint32_t *)ADCHS_DATA_BUFFER; - for(i=0; i<(ADCHS_DATA_BUFFER_SIZE_BYTE/4); i++) - { - dst[i] = 0; - 156: 2000 movs r0, #0 - first_start = 1; - } - - /* Clear ADCHS Buffer */ - dst = (uint32_t *)ADCHS_DATA_BUFFER; - for(i=0; i<(ADCHS_DATA_BUFFER_SIZE_BYTE/4); i++) - 158: f2c2 0400 movt r4, #8192 ; 0x2000 - 15c: 1d1a adds r2, r3, #4 - { - dst[i] = 0; - 15e: 6058 str r0, [r3, #4] - 160: 3308 adds r3, #8 - first_start = 1; - } - - /* Clear ADCHS Buffer */ - dst = (uint32_t *)ADCHS_DATA_BUFFER; - for(i=0; i<(ADCHS_DATA_BUFFER_SIZE_BYTE/4); i++) - 162: 42a3 cmp r3, r4 - { - dst[i] = 0; - 164: 6050 str r0, [r2, #4] - first_start = 1; - } - - /* Clear ADCHS Buffer */ - dst = (uint32_t *)ADCHS_DATA_BUFFER; - for(i=0; i<(ADCHS_DATA_BUFFER_SIZE_BYTE/4); i++) - 166: d1f9 bne.n 15c - -} - -static __inline__ void clr_usb_buffer_offset(void) -{ - if(use_packing) - 168: 4c1d ldr r4, [pc, #116] ; (1e0 ) - 16a: 6821 ldr r1, [r4, #0] - 16c: bb11 cbnz r1, 1b4 - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE / 2; - usb_bulk_buffer_offset_m4[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - } - else - { - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - 16e: 4b1d ldr r3, [pc, #116] ; (1e4 ) - 170: 6818 ldr r0, [r3, #0] - 172: f44f 4280 mov.w r2, #16384 ; 0x4000 - 176: 6002 str r2, [r0, #0] - } - - last_offset_m4 = 0; - *last_offset_m0 = 0; - 178: 481b ldr r0, [pc, #108] ; (1e8 ) - else - { - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - } - - last_offset_m4 = 0; - 17a: 491c ldr r1, [pc, #112] ; (1ec ) - *last_offset_m0 = 0; - 17c: 6802 ldr r2, [r0, #0] - else - { - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - } - - last_offset_m4 = 0; - 17e: 2300 movs r3, #0 - 180: 600b str r3, [r1, #0] - *last_offset_m0 = 0; - 182: 6013 str r3, [r2, #0] - { - dst[i] = 0; - } - clr_usb_buffer_offset(); - - ADCHS_init(); - 184: f000 fa84 bl 690 - ADCHS_desc_init(chan_num); - 188: 4628 mov r0, r5 - 18a: f000 fab1 bl 6f0 - ADCHS_DMA_init((uint32_t)ADCHS_DATA_BUFFER, use_packing); - 18e: 6822 ldr r2, [r4, #0] - 190: f44f 4080 mov.w r0, #16384 ; 0x4000 - 194: f2c2 0000 movt r0, #8192 ; 0x2000 - 198: b2d1 uxtb r1, r2 - 19a: f000 f9e9 bl 570 - - led_on(); - 19e: f000 fe2f bl e00 - LPC_ADCHS->TRIGGER = 1; - 1a2: 2000 movs r0, #0 - 1a4: f2c4 000f movt r0, #16399 ; 0x400f - 1a8: 2301 movs r3, #1 - 1aa: 6103 str r3, [r0, #16] - __asm("dsb"); - 1ac: f3bf 8f4f dsb sy - - /* Enable IRQ globally */ - __asm__("cpsie i"); - 1b0: b662 cpsie i - 1b2: bd38 pop {r3, r4, r5, pc} - -static __inline__ void clr_usb_buffer_offset(void) -{ - if(use_packing) - { - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE / 2; - 1b4: 490b ldr r1, [pc, #44] ; (1e4 ) - usb_bulk_buffer_offset_m4[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - 1b6: 4b0e ldr r3, [pc, #56] ; (1f0 ) - -static __inline__ void clr_usb_buffer_offset(void) -{ - if(use_packing) - { - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE / 2; - 1b8: 6808 ldr r0, [r1, #0] - usb_bulk_buffer_offset_m4[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - 1ba: 681b ldr r3, [r3, #0] - -static __inline__ void clr_usb_buffer_offset(void) -{ - if(use_packing) - { - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE / 2; - 1bc: f44f 5200 mov.w r2, #8192 ; 0x2000 - usb_bulk_buffer_offset_m4[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - 1c0: f44f 4180 mov.w r1, #16384 ; 0x4000 - -static __inline__ void clr_usb_buffer_offset(void) -{ - if(use_packing) - { - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE / 2; - 1c4: 6002 str r2, [r0, #0] - usb_bulk_buffer_offset_m4[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - 1c6: 6019 str r1, [r3, #0] - 1c8: e7d6 b.n 178 - /* Disable IRQ globally */ - __asm__("cpsid i"); - - if(first_start == 0) - { - cpu_clock_pll1_high_speed(&airspy_conf->airspy_m4_init_conf.pll1_hs); - 1ca: 480a ldr r0, [pc, #40] ; (1f4 ) - 1cc: 6800 ldr r0, [r0, #0] - 1ce: 3030 adds r0, #48 ; 0x30 - 1d0: f000 fdda bl d88 - first_start = 1; - 1d4: 2101 movs r1, #1 - 1d6: 6021 str r1, [r4, #0] - 1d8: e7b7 b.n 14a - 1da: bf00 nop - 1dc: 10080038 .word 0x10080038 - 1e0: 10080028 .word 0x10080028 - 1e4: 10080008 .word 0x10080008 - 1e8: 10080010 .word 0x10080010 - 1ec: 10080020 .word 0x10080020 - 1f0: 10080034 .word 0x10080034 - 1f4: 10080018 .word 0x10080018 - -000001f8 : - /* Enable IRQ globally */ - __asm__("cpsie i"); -} - -void adchs_stop(void) -{ - 1f8: b508 push {r3, lr} - /* Disable IRQ globally */ - __asm__("cpsid i"); - 1fa: b672 cpsid i - - ADCHS_deinit(); - 1fc: f000 fa3c bl 678 - -// cpu_clock_pll1_low_speed(&airspy_conf->airspy_m4_init_conf.pll1_ls); - - led_off(); - 200: f000 fe06 bl e10 - - /* Enable IRQ globally */ - __asm__("cpsie i"); - 204: b662 cpsie i - 206: bd08 pop {r3, pc} - -00000208 : - stat_adchs.dma_err_cnt++; // Count DMA Error - LPC_GPDMA->INTERRCLR |= status; - } -#endif - - status = LPC_GPDMA->INTTCSTAT; - 208: f44f 5300 mov.w r3, #8192 ; 0x2000 - 20c: f2c4 0300 movt r3, #16384 ; 0x4000 - 210: 685a ldr r2, [r3, #4] - if( status & INTTC0 ) - 212: 07d2 lsls r2, r2, #31 - 214: d511 bpl.n 23a - { - LPC_GPDMA->INTTCCLEAR |= INTTC0; /* Clear Chan0 */ - 216: 6898 ldr r0, [r3, #8] - 218: f040 0101 orr.w r1, r0, #1 - 21c: 6099 str r1, [r3, #8] - - if(use_packing) - 21e: 4b0c ldr r3, [pc, #48] ; (250 ) - 220: 681a ldr r2, [r3, #0] - 222: b95a cbnz r2, 23c - { - set_usb_buffer_offset_m4( inc_mask_usb_buffer_offset_m4(get_usb_buffer_offset_m4(), 8192)); - } - else - { - set_usb_buffer_offset( inc_mask_usb_buffer_offset(get_usb_buffer_offset(), USB_DATA_TRANSFER_SIZE_BYTE) ); - 224: 480b ldr r0, [pc, #44] ; (254 ) - 226: 6801 ldr r1, [r0, #0] - 228: 680b ldr r3, [r1, #0] - 22a: f503 4280 add.w r2, r3, #16384 ; 0x4000 - 22e: 0450 lsls r0, r2, #17 - 230: 0c43 lsrs r3, r0, #17 - 232: 600b str r3, [r1, #0] -It also sets the local event register, see Power management (sleep mode, deep sleep mode of System Control Register for more details). -Instruction for Cortex M0, M3/M4 */ -__attribute__ ((always_inline)) static inline void signal_sev(void) -{ - /* make sure all data transactions complete before next instruction is executed */ - __asm("dsb"); - 234: f3bf 8f4f dsb sy - __asm("sev"); - 238: bf40 sev - 23a: 4770 bx lr - { - LPC_GPDMA->INTTCCLEAR |= INTTC0; /* Clear Chan0 */ - - if(use_packing) - { - set_usb_buffer_offset_m4( inc_mask_usb_buffer_offset_m4(get_usb_buffer_offset_m4(), 8192)); - 23c: 4906 ldr r1, [pc, #24] ; (258 ) - 23e: 680a ldr r2, [r1, #0] - 240: 6810 ldr r0, [r2, #0] - 242: f500 5300 add.w r3, r0, #8192 ; 0x2000 - 246: 0459 lsls r1, r3, #17 - 248: 0c48 lsrs r0, r1, #17 - 24a: 6010 str r0, [r2, #0] - 24c: 4770 bx lr - 24e: bf00 nop - 250: 10080028 .word 0x10080028 - 254: 10080008 .word 0x10080008 - 258: 10080034 .word 0x10080034 - -0000025c : - stat_adchs.dma_irq_cycles_idx = 0; -#endif -} - -void m0core_isr(void) -{ - 25c: b5f8 push {r3, r4, r5, r6, r7, lr} - uint8_t adchs_start_stop_cmd; - uint8_t samplerate_cmd; - uint8_t packing_cmd; - uint8_t packing_state; - - SLAVE_TXEV_QUIT(); - 25e: f44f 5250 mov.w r2, #13312 ; 0x3400 - start_adchs->raw = 0; -} - -static __inline__ uint8_t get_samplerate(uint8_t *conf_number) -{ - *conf_number = set_samplerate->conf; - 262: 4c26 ldr r4, [pc, #152] ; (2fc ) - uint8_t adchs_start_stop_cmd; - uint8_t samplerate_cmd; - uint8_t packing_cmd; - uint8_t packing_state; - - SLAVE_TXEV_QUIT(); - 264: f2c4 0204 movt r2, #16388 ; 0x4004 - start_adchs->raw = 0; -} - -static __inline__ uint8_t get_samplerate(uint8_t *conf_number) -{ - *conf_number = set_samplerate->conf; - 268: 6823 ldr r3, [r4, #0] - uint8_t adchs_start_stop_cmd; - uint8_t samplerate_cmd; - uint8_t packing_cmd; - uint8_t packing_state; - - SLAVE_TXEV_QUIT(); - 26a: 2100 movs r1, #0 - 26c: 6011 str r1, [r2, #0] - start_adchs->raw = 0; -} - -static __inline__ uint8_t get_samplerate(uint8_t *conf_number) -{ - *conf_number = set_samplerate->conf; - 26e: 785d ldrb r5, [r3, #1] - return(set_samplerate->cmd); - 270: 781a ldrb r2, [r3, #0] - uint8_t packing_state; - - SLAVE_TXEV_QUIT(); - - samplerate_cmd = get_samplerate(&adchs_conf); - if(samplerate_cmd == SET_SAMPLERATE_CMD) - 272: 2a01 cmp r2, #1 - start_adchs->raw = 0; -} - -static __inline__ uint8_t get_samplerate(uint8_t *conf_number) -{ - *conf_number = set_samplerate->conf; - 274: b2e9 uxtb r1, r5 - uint8_t packing_state; - - SLAVE_TXEV_QUIT(); - - samplerate_cmd = get_samplerate(&adchs_conf); - if(samplerate_cmd == SET_SAMPLERATE_CMD) - 276: d026 beq.n 2c6 - set_samplerate->raw = 0; -} - -static __inline__ uint8_t get_packing(uint8_t *packing_state) -{ - *packing_state = set_packing->conf; - 278: 4d21 ldr r5, [pc, #132] ; (300 ) - 27a: 682a ldr r2, [r5, #0] - 27c: 7850 ldrb r0, [r2, #1] - return(set_packing->cmd); - 27e: 7813 ldrb r3, [r2, #0] - } - ack_samplerate(); - } - - packing_cmd = get_packing(&packing_state); - if(packing_cmd == SET_PACKING_CMD) - 280: 2b01 cmp r3, #1 - 282: d034 beq.n 2ee - *last_offset_m0 = 0; -} - -static __inline__ uint32_t get_start_stop_adchs(void) -{ - return(start_adchs->cmd); - 284: 4d1f ldr r5, [pc, #124] ; (304 ) - 286: 682b ldr r3, [r5, #0] - 288: 781c ldrb r4, [r3, #0] - set_packing_state(packing_state); - ack_packing(); - } - - adchs_start_stop_cmd = get_start_stop_adchs(); - switch(adchs_start_stop_cmd) - 28a: 2c01 cmp r4, #1 - 28c: d002 beq.n 294 - 28e: 2c02 cmp r4, #2 - 290: d00d beq.n 2ae - 292: bdf8 pop {r3, r4, r5, r6, r7, pc} - { - case START_ADCHS_CMD: - if(adchs_started == 0) - 294: 4f1c ldr r7, [pc, #112] ; (308 ) - 296: 683e ldr r6, [r7, #0] - 298: b936 cbnz r6, 2a8 - { - adchs_start(DEFAULT_ADCHS_CHAN); - 29a: 4630 mov r0, r6 - 29c: f7ff ff4e bl 13c - adchs_started = 1; - adchs_stopped = 0; - 2a0: 481a ldr r0, [pc, #104] ; (30c ) - 2a2: 682b ldr r3, [r5, #0] - { - case START_ADCHS_CMD: - if(adchs_started == 0) - { - adchs_start(DEFAULT_ADCHS_CHAN); - adchs_started = 1; - 2a4: 603c str r4, [r7, #0] - adchs_stopped = 0; - 2a6: 6006 str r6, [r0, #0] -} - -/* Acknowledge Start/Stop ADCHS by clearing the data */ -static __inline__ void ack_start_stop_adchs(void) -{ - start_adchs->raw = 0; - 2a8: 2200 movs r2, #0 - 2aa: 601a str r2, [r3, #0] - 2ac: bdf8 pop {r3, r4, r5, r6, r7, pc} - } - ack_start_stop_adchs(); - break; - - case STOP_ADCHS_CMD: - if(adchs_stopped == 0) - 2ae: 4e17 ldr r6, [pc, #92] ; (30c ) - 2b0: 6834 ldr r4, [r6, #0] - 2b2: 2c00 cmp r4, #0 - 2b4: d1f8 bne.n 2a8 - { - adchs_stop(); - 2b6: f7ff ff9f bl 1f8 - adchs_stopped = 1; - adchs_started = 0; - 2ba: 4913 ldr r1, [pc, #76] ; (308 ) - 2bc: 682b ldr r3, [r5, #0] - - case STOP_ADCHS_CMD: - if(adchs_stopped == 0) - { - adchs_stop(); - adchs_stopped = 1; - 2be: 2201 movs r2, #1 - 2c0: 6032 str r2, [r6, #0] - adchs_started = 0; - 2c2: 600c str r4, [r1, #0] - 2c4: e7f0 b.n 2a8 - if(samplerate_cmd == SET_SAMPLERATE_CMD) - { - if((adchs_conf & AIRSPY_SAMPLERATE_CONF_ALT) == AIRSPY_SAMPLERATE_CONF_ALT) - { - adchs_conf = adchs_conf & (~AIRSPY_SAMPLERATE_CONF_ALT); - sys_clock_samplerate(&airspy_conf->airspy_m0_m4_alt_conf[adchs_conf].airspy_m4_conf); - 2c6: 4a12 ldr r2, [pc, #72] ; (310 ) - SLAVE_TXEV_QUIT(); - - samplerate_cmd = get_samplerate(&adchs_conf); - if(samplerate_cmd == SET_SAMPLERATE_CMD) - { - if((adchs_conf & AIRSPY_SAMPLERATE_CONF_ALT) == AIRSPY_SAMPLERATE_CONF_ALT) - 2c8: b26d sxtb r5, r5 - { - adchs_conf = adchs_conf & (~AIRSPY_SAMPLERATE_CONF_ALT); - sys_clock_samplerate(&airspy_conf->airspy_m0_m4_alt_conf[adchs_conf].airspy_m4_conf); - 2ca: 6813 ldr r3, [r2, #0] - SLAVE_TXEV_QUIT(); - - samplerate_cmd = get_samplerate(&adchs_conf); - if(samplerate_cmd == SET_SAMPLERATE_CMD) - { - if((adchs_conf & AIRSPY_SAMPLERATE_CONF_ALT) == AIRSPY_SAMPLERATE_CONF_ALT) - 2cc: 2d00 cmp r5, #0 - { - adchs_conf = adchs_conf & (~AIRSPY_SAMPLERATE_CONF_ALT); - sys_clock_samplerate(&airspy_conf->airspy_m0_m4_alt_conf[adchs_conf].airspy_m4_conf); - 2ce: bfba itte lt - 2d0: f001 017f andlt.w r1, r1, #127 ; 0x7f - 2d4: f8d3 0080 ldrlt.w r0, [r3, #128] ; 0x80 - }else - { - sys_clock_samplerate(&airspy_conf->airspy_m0_m4_conf[adchs_conf].airspy_m4_conf); - 2d8: 6f98 ldrge r0, [r3, #120] ; 0x78 - 2da: eb01 0141 add.w r1, r1, r1, lsl #1 - 2de: eb00 00c1 add.w r0, r0, r1, lsl #3 - 2e2: f000 fa2b bl 73c -} - -/* Acknowledge set_samplerate by clearing the data */ -static __inline__ void ack_samplerate(void) -{ - set_samplerate->raw = 0; - 2e6: 6820 ldr r0, [r4, #0] - 2e8: 2400 movs r4, #0 - 2ea: 6004 str r4, [r0, #0] - 2ec: e7c4 b.n 278 - } - - packing_cmd = get_packing(&packing_state); - if(packing_cmd == SET_PACKING_CMD) - { - set_packing_state(packing_state); - 2ee: f7ff ff11 bl 114 - return(set_packing->cmd); -} - -static __inline__ void ack_packing(void) -{ - set_packing->raw = 0; - 2f2: 6829 ldr r1, [r5, #0] - 2f4: 2000 movs r0, #0 - 2f6: 6008 str r0, [r1, #0] - 2f8: e7c4 b.n 284 - 2fa: bf00 nop - 2fc: 10080000 .word 0x10080000 - 300: 10080014 .word 0x10080014 - 304: 10080004 .word 0x10080004 - 308: 10080024 .word 0x10080024 - 30c: 10080030 .word 0x10080030 - 310: 10080018 .word 0x10080018 - -00000314 : - break; - } -} - -void m0_startup(void) -{ - 314: b570 push {r4, r5, r6, lr} - uint32_t *src, *dest; - - /* Halt M0 core (in case it was running) */ - ipc_halt_m0(); - 316: f000 ffef bl 12f8 - - /* Copy M0 code from M4 embedded addr to final addr M0 */ - dest = &cm0_exec_baseaddr; - for(src = (uint32_t *)&m0_bin[0]; src < (uint32_t *)(&m0_bin[0]+m0_bin_size); ) - 31a: 4b14 ldr r3, [pc, #80] ; (36c ) - 31c: 4a14 ldr r2, [pc, #80] ; (370 ) - 31e: 681c ldr r4, [r3, #0] - 320: 18a4 adds r4, r4, r2 - 322: 4294 cmp r4, r2 - 324: d91c bls.n 360 - { - *dest++ = *src++; - 326: 4613 mov r3, r2 - 328: 43d0 mvns r0, r2 - 32a: f853 5b04 ldr.w r5, [r3], #4 - 32e: 4911 ldr r1, [pc, #68] ; (374 ) - 330: 1820 adds r0, r4, r0 - /* Halt M0 core (in case it was running) */ - ipc_halt_m0(); - - /* Copy M0 code from M4 embedded addr to final addr M0 */ - dest = &cm0_exec_baseaddr; - for(src = (uint32_t *)&m0_bin[0]; src < (uint32_t *)(&m0_bin[0]+m0_bin_size); ) - 332: 429c cmp r4, r3 - { - *dest++ = *src++; - 334: 600d str r5, [r1, #0] - 336: f3c0 0080 ubfx r0, r0, #2, #1 - /* Halt M0 core (in case it was running) */ - ipc_halt_m0(); - - /* Copy M0 code from M4 embedded addr to final addr M0 */ - dest = &cm0_exec_baseaddr; - for(src = (uint32_t *)&m0_bin[0]; src < (uint32_t *)(&m0_bin[0]+m0_bin_size); ) - 33a: d911 bls.n 360 - 33c: b130 cbz r0, 34c - { - *dest++ = *src++; - 33e: 6818 ldr r0, [r3, #0] - 340: f102 0308 add.w r3, r2, #8 - /* Halt M0 core (in case it was running) */ - ipc_halt_m0(); - - /* Copy M0 code from M4 embedded addr to final addr M0 */ - dest = &cm0_exec_baseaddr; - for(src = (uint32_t *)&m0_bin[0]; src < (uint32_t *)(&m0_bin[0]+m0_bin_size); ) - 344: 429c cmp r4, r3 - { - *dest++ = *src++; - 346: f841 0f04 str.w r0, [r1, #4]! - /* Halt M0 core (in case it was running) */ - ipc_halt_m0(); - - /* Copy M0 code from M4 embedded addr to final addr M0 */ - dest = &cm0_exec_baseaddr; - for(src = (uint32_t *)&m0_bin[0]; src < (uint32_t *)(&m0_bin[0]+m0_bin_size); ) - 34a: d909 bls.n 360 - { - *dest++ = *src++; - 34c: 461a mov r2, r3 - 34e: 685e ldr r6, [r3, #4] - 350: f852 5b04 ldr.w r5, [r2], #4 - 354: 608e str r6, [r1, #8] - 356: 1d13 adds r3, r2, #4 - 358: 604d str r5, [r1, #4] - 35a: 3108 adds r1, #8 - /* Halt M0 core (in case it was running) */ - ipc_halt_m0(); - - /* Copy M0 code from M4 embedded addr to final addr M0 */ - dest = &cm0_exec_baseaddr; - for(src = (uint32_t *)&m0_bin[0]; src < (uint32_t *)(&m0_bin[0]+m0_bin_size); ) - 35c: 429c cmp r4, r3 - 35e: d8f5 bhi.n 34c - { - *dest++ = *src++; - } - - ipc_start_m0( (uint32_t)(&cm0_exec_baseaddr) ); - 360: 4804 ldr r0, [pc, #16] ; (374 ) -} - 362: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - for(src = (uint32_t *)&m0_bin[0]; src < (uint32_t *)(&m0_bin[0]+m0_bin_size); ) - { - *dest++ = *src++; - } - - ipc_start_m0( (uint32_t)(&cm0_exec_baseaddr) ); - 366: f000 bfe1 b.w 132c - 36a: bf00 nop - 36c: 00004b80 .word 0x00004b80 - 370: 00001c50 .word 0x00001c50 - 374: 2000c000 .word 0x2000c000 - -00000378

: - ipc_start_m0s( (uint32_t)(&cm0s_exec_baseaddr) ); -} - -void scs_dwt_cycle_counter_enabled(void) -{ - SCS_DEMCR |= SCS_DEMCR_TRCENA; - 378: f64e 52fc movw r2, #60924 ; 0xedfc - 37c: f2ce 0200 movt r2, #57344 ; 0xe000 - SCS_DWT_CTRL |= SCS_DWT_CTRL_CYCCNTENA; - 380: f44f 5380 mov.w r3, #4096 ; 0x1000 - ipc_start_m0s( (uint32_t)(&cm0s_exec_baseaddr) ); -} - -void scs_dwt_cycle_counter_enabled(void) -{ - SCS_DEMCR |= SCS_DEMCR_TRCENA; - 384: 6811 ldr r1, [r2, #0] - SCS_DWT_CTRL |= SCS_DWT_CTRL_CYCCNTENA; -} - -int main(void) -{ - 386: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} -} - -void scs_dwt_cycle_counter_enabled(void) -{ - SCS_DEMCR |= SCS_DEMCR_TRCENA; - SCS_DWT_CTRL |= SCS_DWT_CTRL_CYCCNTENA; - 38a: f2ce 0300 movt r3, #57344 ; 0xe000 - ipc_start_m0s( (uint32_t)(&cm0s_exec_baseaddr) ); -} - -void scs_dwt_cycle_counter_enabled(void) -{ - SCS_DEMCR |= SCS_DEMCR_TRCENA; - 38e: f041 7080 orr.w r0, r1, #16777216 ; 0x1000000 - 392: 6010 str r0, [r2, #0] - SCS_DWT_CTRL |= SCS_DWT_CTRL_CYCCNTENA; - 394: 681c ldr r4, [r3, #0] - -} - -static __inline__ void clr_usb_buffer_offset(void) -{ - if(use_packing) - 396: f8df b180 ldr.w fp, [pc, #384] ; 518 -} - -void scs_dwt_cycle_counter_enabled(void) -{ - SCS_DEMCR |= SCS_DEMCR_TRCENA; - SCS_DWT_CTRL |= SCS_DWT_CTRL_CYCCNTENA; - 39a: f044 0501 orr.w r5, r4, #1 -} - -int main(void) -{ - 39e: b085 sub sp, #20 -} - -void scs_dwt_cycle_counter_enabled(void) -{ - SCS_DEMCR |= SCS_DEMCR_TRCENA; - SCS_DWT_CTRL |= SCS_DWT_CTRL_CYCCNTENA; - 3a0: 601d str r5, [r3, #0] -} - -int main(void) -{ - scs_dwt_cycle_counter_enabled(); - pin_setup(); - 3a2: f000 fd57 bl e54 - sys_clock_init(); - 3a6: f000 fa43 bl 830 - - nvic_set_priority(NVIC_DMA_IRQ, 255); - 3aa: 2002 movs r0, #2 - 3ac: 21ff movs r1, #255 ; 0xff - 3ae: f001 f953 bl 1658 - nvic_set_priority(NVIC_M0CORE_IRQ, 1); - 3b2: 2001 movs r0, #1 - 3b4: 4601 mov r1, r0 - 3b6: f001 f94f bl 1658 - -} - -static __inline__ void clr_usb_buffer_offset(void) -{ - if(use_packing) - 3ba: f8db 6000 ldr.w r6, [fp] - 3be: 2e00 cmp r6, #0 - 3c0: f000 808d beq.w 4de - { - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE / 2; - usb_bulk_buffer_offset_m4[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - 3c4: 4c4a ldr r4, [pc, #296] ; (4f0 ) - -static __inline__ void clr_usb_buffer_offset(void) -{ - if(use_packing) - { - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE / 2; - 3c6: 484b ldr r0, [pc, #300] ; (4f4 ) - usb_bulk_buffer_offset_m4[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - 3c8: 9403 str r4, [sp, #12] - 3ca: 9e03 ldr r6, [sp, #12] - -static __inline__ void clr_usb_buffer_offset(void) -{ - if(use_packing) - { - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE / 2; - 3cc: 6805 ldr r5, [r0, #0] - usb_bulk_buffer_offset_m4[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - 3ce: 6837 ldr r7, [r6, #0] - -static __inline__ void clr_usb_buffer_offset(void) -{ - if(use_packing) - { - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE / 2; - 3d0: 9002 str r0, [sp, #8] - 3d2: f44f 5200 mov.w r2, #8192 ; 0x2000 - usb_bulk_buffer_offset_m4[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - 3d6: f44f 4380 mov.w r3, #16384 ; 0x4000 - -static __inline__ void clr_usb_buffer_offset(void) -{ - if(use_packing) - { - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE / 2; - 3da: 602a str r2, [r5, #0] - usb_bulk_buffer_offset_m4[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - 3dc: 603b str r3, [r7, #0] - { - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - } - - last_offset_m4 = 0; - *last_offset_m0 = 0; - 3de: 4946 ldr r1, [pc, #280] ; (4f8 ) - else - { - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - } - - last_offset_m4 = 0; - 3e0: f8df c138 ldr.w ip, [pc, #312] ; 51c - *last_offset_m0 = 0; - 3e4: 680d ldr r5, [r1, #0] -} - -/* Acknowledge Start/Stop ADCHS by clearing the data */ -static __inline__ void ack_start_stop_adchs(void) -{ - start_adchs->raw = 0; - 3e6: 4f45 ldr r7, [pc, #276] ; (4fc ) - else - { - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - } - - last_offset_m4 = 0; - 3e8: 2400 movs r4, #0 - 3ea: f8cc 4000 str.w r4, [ip] - nvic_set_priority(NVIC_DMA_IRQ, 255); - nvic_set_priority(NVIC_M0CORE_IRQ, 1); - - clr_usb_buffer_offset(); - - nvic_enable_irq(NVIC_DMA_IRQ); - 3ee: 2002 movs r0, #2 - { - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - } - - last_offset_m4 = 0; - *last_offset_m0 = 0; - 3f0: 602c str r4, [r5, #0] - nvic_set_priority(NVIC_DMA_IRQ, 255); - nvic_set_priority(NVIC_M0CORE_IRQ, 1); - - clr_usb_buffer_offset(); - - nvic_enable_irq(NVIC_DMA_IRQ); - 3f2: f8cd c004 str.w ip, [sp, #4] - 3f6: f001 f921 bl 163c - nvic_enable_irq(NVIC_M0CORE_IRQ); - 3fa: 2001 movs r0, #1 - 3fc: f001 f91e bl 163c - - adchs_stop(); - 400: f7ff fefa bl 1f8 - adchs_stopped = 1; - adchs_started = 0; - - use_packing = 0; - *usb_bulk_buffer_length = 0x4000; - 404: 483e ldr r0, [pc, #248] ; (500 ) - - nvic_enable_irq(NVIC_DMA_IRQ); - nvic_enable_irq(NVIC_M0CORE_IRQ); - - adchs_stop(); - adchs_stopped = 1; - 406: 493f ldr r1, [pc, #252] ; (504 ) - adchs_started = 0; - - use_packing = 0; - *usb_bulk_buffer_length = 0x4000; - 408: 6806 ldr r6, [r0, #0] - nvic_enable_irq(NVIC_DMA_IRQ); - nvic_enable_irq(NVIC_M0CORE_IRQ); - - adchs_stop(); - adchs_stopped = 1; - adchs_started = 0; - 40a: 4d3f ldr r5, [pc, #252] ; (508 ) -} - -/* Acknowledge Start/Stop ADCHS by clearing the data */ -static __inline__ void ack_start_stop_adchs(void) -{ - start_adchs->raw = 0; - 40c: 683a ldr r2, [r7, #0] - adchs_stop(); - adchs_stopped = 1; - adchs_started = 0; - - use_packing = 0; - *usb_bulk_buffer_length = 0x4000; - 40e: f44f 4080 mov.w r0, #16384 ; 0x4000 - - nvic_enable_irq(NVIC_DMA_IRQ); - nvic_enable_irq(NVIC_M0CORE_IRQ); - - adchs_stop(); - adchs_stopped = 1; - 412: 2301 movs r3, #1 - 414: 600b str r3, [r1, #0] - adchs_started = 0; - 416: 602c str r4, [r5, #0] - - use_packing = 0; - 418: f8cb 4000 str.w r4, [fp] - *usb_bulk_buffer_length = 0x4000; - 41c: 6030 str r0, [r6, #0] -} - -/* Acknowledge set_samplerate by clearing the data */ -static __inline__ void ack_samplerate(void) -{ - set_samplerate->raw = 0; - 41e: 4e3b ldr r6, [pc, #236] ; (50c ) -} - -/* Acknowledge Start/Stop ADCHS by clearing the data */ -static __inline__ void ack_start_stop_adchs(void) -{ - start_adchs->raw = 0; - 420: 6014 str r4, [r2, #0] -} - -/* Acknowledge set_samplerate by clearing the data */ -static __inline__ void ack_samplerate(void) -{ - set_samplerate->raw = 0; - 422: 6837 ldr r7, [r6, #0] - return(set_packing->cmd); -} - -static __inline__ void ack_packing(void) -{ - set_packing->raw = 0; - 424: 4a3a ldr r2, [pc, #232] ; (510 ) -} - -/* Acknowledge set_samplerate by clearing the data */ -static __inline__ void ack_samplerate(void) -{ - set_samplerate->raw = 0; - 426: 603c str r4, [r7, #0] - return(set_packing->cmd); -} - -static __inline__ void ack_packing(void) -{ - set_packing->raw = 0; - 428: 6813 ldr r3, [r2, #0] - 42a: 601c str r4, [r3, #0] - m0s_startup(); -#else - // Halt M0s - ipc_halt_m0s(); - // Disable M0 Sub - CCU1_CLK_PERIPH_CORE_CFG &= ~(1); - 42c: f241 7410 movw r4, #5904 ; 0x1710 - 430: f2c4 0405 movt r4, #16389 ; 0x4005 - ack_start_stop_adchs(); - ack_samplerate(); - ack_packing(); - - /* Start M0 */ - m0_startup(); - 434: f7ff ff6e bl 314 -#ifdef ENABLE_M0S - /* Start M0s */ - m0s_startup(); -#else - // Halt M0s - ipc_halt_m0s(); - 438: f000 ff98 bl 136c - // Disable M0 Sub - CCU1_CLK_PERIPH_CORE_CFG &= ~(1); - 43c: 6825 ldr r5, [r4, #0] -#endif - - usb_bulk_buffer_offset_m4 = &usb_bulk_buffer_offset_uint32_m4; - 43e: 4935 ldr r1, [pc, #212] ; (514 ) - 440: 9e03 ldr r6, [sp, #12] - - if(use_packing) - { - /* Thanks to Pierre HB9FUF for the initial packing proof-of-concept */ - uint32_t offset = get_usb_buffer_offset_m4(); - if(offset != last_offset_m4) - 442: f8dd c004 ldr.w ip, [sp, #4] - m0s_startup(); -#else - // Halt M0s - ipc_halt_m0s(); - // Disable M0 Sub - CCU1_CLK_PERIPH_CORE_CFG &= ~(1); - 446: f025 0001 bic.w r0, r5, #1 - 44a: 6020 str r0, [r4, #0] -#endif - - usb_bulk_buffer_offset_m4 = &usb_bulk_buffer_offset_uint32_m4; - 44c: 460c mov r4, r1 - 44e: 6031 str r1, [r6, #0] -If the event register is 1, WFE clears it to 0 and completes immediately. -Instruction for Cortex M0, M3/M4 -*/ -__attribute__ ((always_inline)) static inline void signal_wfe(void) -{ - __asm("wfe"); - 450: bf20 wfe - - while(true) - { - signal_wfe(); - - if(use_packing) - 452: f8db 7000 ldr.w r7, [fp] - 456: 2f00 cmp r7, #0 - 458: d0fa beq.n 450 - { - /* Thanks to Pierre HB9FUF for the initial packing proof-of-concept */ - uint32_t offset = get_usb_buffer_offset_m4(); - 45a: f8d4 e000 ldr.w lr, [r4] - if(offset != last_offset_m4) - 45e: f8dc 3000 ldr.w r3, [ip] - 462: 459e cmp lr, r3 - 464: d0f4 beq.n 450 - { - pack((uint32_t*)&usb_bulk_buffer[offset], (uint32_t*)&usb_bulk_buffer[offset], 0x1000); - 466: f10e 5200 add.w r2, lr, #536870912 ; 0x20000000 - 46a: f502 4080 add.w r0, r2, #16384 ; 0x4000 -}*/ - -__attribute__ ((always_inline)) static void pack(uint32_t* input, uint32_t* output, uint32_t length) -{ - register uint32_t *a0 asm("r0") = input; - register uint32_t *a1 asm("r1") = output; - 46e: 4601 mov r1, r0 - register uint32_t a2 asm("r2") = length; - 470: f44f 5280 mov.w r2, #4096 ; 0x1000 - - asm volatile("1:\n\t" - 474: e8b0 00f0 ldmia.w r0!, {r4, r5, r6, r7} - 478: ea4f 4814 mov.w r8, r4, lsr #16 - 47c: f3c5 130b ubfx r3, r5, #4, #12 - 480: ea43 2808 orr.w r8, r3, r8, lsl #8 - 484: ea48 5804 orr.w r8, r8, r4, lsl #20 - 488: 0c2b lsrs r3, r5, #16 - 48a: 072d lsls r5, r5, #28 - 48c: ea45 4503 orr.w r5, r5, r3, lsl #16 - 490: ea45 6516 orr.w r5, r5, r6, lsr #24 - 494: fa1f f986 uxth.w r9, r6 - 498: ea45 1909 orr.w r9, r5, r9, lsl #4 - 49c: 0c36 lsrs r6, r6, #16 - 49e: fa1f fa87 uxth.w sl, r7 - 4a2: ea4f 3a0a mov.w sl, sl, lsl #12 - 4a6: ea4a 6a06 orr.w sl, sl, r6, lsl #24 - 4aa: ea4a 4a17 orr.w sl, sl, r7, lsr #16 - 4ae: e8a1 0700 stmia.w r1!, {r8, r9, sl} - 4b2: 3a08 subs r2, #8 - 4b4: d1de bne.n 474 - /* Thanks to Pierre HB9FUF for the initial packing proof-of-concept */ - uint32_t offset = get_usb_buffer_offset_m4(); - if(offset != last_offset_m4) - { - pack((uint32_t*)&usb_bulk_buffer[offset], (uint32_t*)&usb_bulk_buffer[offset], 0x1000); - set_usb_buffer_offset( inc_mask_usb_buffer_offset(get_usb_buffer_offset(), 0x2000)); - 4b6: 9c02 ldr r4, [sp, #8] - 4b8: 6821 ldr r1, [r4, #0] - 4ba: 680d ldr r5, [r1, #0] - 4bc: f505 5000 add.w r0, r5, #8192 ; 0x2000 - 4c0: 0446 lsls r6, r0, #17 - 4c2: 0c77 lsrs r7, r6, #17 - 4c4: 600f str r7, [r1, #0] -It also sets the local event register, see Power management (sleep mode, deep sleep mode of System Control Register for more details). -Instruction for Cortex M0, M3/M4 */ -__attribute__ ((always_inline)) static inline void signal_sev(void) -{ - /* make sure all data transactions complete before next instruction is executed */ - __asm("dsb"); - 4c6: f3bf 8f4f dsb sy - __asm("sev"); - 4ca: bf40 sev - signal_sev(); - last_offset_m4 = offset; - 4cc: f240 0320 movw r3, #32 - 4d0: f2c1 0308 movt r3, #4104 ; 0x1008 - 4d4: 9a03 ldr r2, [sp, #12] - 4d6: f8c3 e000 str.w lr, [r3] - 4da: 6814 ldr r4, [r2, #0] - 4dc: e7b8 b.n 450 - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE / 2; - usb_bulk_buffer_offset_m4[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - } - else - { - usb_bulk_buffer_offset[0] = ADCHS_DATA_TRANSFER_SIZE_BYTE; - 4de: 4f05 ldr r7, [pc, #20] ; (4f4 ) - 4e0: 4a03 ldr r2, [pc, #12] ; (4f0 ) - 4e2: 683b ldr r3, [r7, #0] - 4e4: 9702 str r7, [sp, #8] - 4e6: f44f 4180 mov.w r1, #16384 ; 0x4000 - 4ea: 9203 str r2, [sp, #12] - 4ec: 6019 str r1, [r3, #0] - 4ee: e776 b.n 3de - 4f0: 10080034 .word 0x10080034 - 4f4: 10080008 .word 0x10080008 - 4f8: 10080010 .word 0x10080010 - 4fc: 10080004 .word 0x10080004 - 500: 1008000c .word 0x1008000c - 504: 10080030 .word 0x10080030 - 508: 10080024 .word 0x10080024 - 50c: 10080000 .word 0x10080000 - 510: 10080014 .word 0x10080014 - 514: 1008002c .word 0x1008002c - 518: 10080028 .word 0x10080028 - 51c: 10080020 .word 0x10080020 - -00000520 : -t_gpdma_lli adchs_dma_lli[ADCHS_DMA_NUM_LLI] __attribute__ ((aligned(16))); - -void ADCHS_DMA_init_stop(void) -{ - /* clear all interrupts on channel 0 */ - LPC_GPDMA->INTTCCLEAR = 0x01; - 520: f44f 5200 mov.w r2, #8192 ; 0x2000 - 524: f2c4 0200 movt r2, #16384 ; 0x4000 - LPC_GPDMA->INTERRCLR = 0x01; - - /* Setup the DMAMUX */ - CREG_DMAMUX &= ~(0x3<<(ADCHS_DMA_WRITE*2)); - 528: f243 131c movw r3, #12572 ; 0x311c - 52c: f2c4 0304 movt r3, #16388 ; 0x4004 -t_gpdma_lli adchs_dma_lli[ADCHS_DMA_NUM_LLI] __attribute__ ((aligned(16))); - -void ADCHS_DMA_init_stop(void) -{ - /* clear all interrupts on channel 0 */ - LPC_GPDMA->INTTCCLEAR = 0x01; - 530: 2001 movs r0, #1 - 532: 6090 str r0, [r2, #8] - LPC_GPDMA->INTERRCLR = 0x01; - 534: 6110 str r0, [r2, #16] - - /* Setup the DMAMUX */ - CREG_DMAMUX &= ~(0x3<<(ADCHS_DMA_WRITE*2)); - 536: 6819 ldr r1, [r3, #0] - 538: f421 4140 bic.w r1, r1, #49152 ; 0xc000 - 53c: 6019 str r1, [r3, #0] - CREG_DMAMUX |= 0x3<<(ADCHS_DMA_WRITE*2); - 53e: 6819 ldr r1, [r3, #0] - 540: f441 4140 orr.w r1, r1, #49152 ; 0xc000 - 544: 6019 str r1, [r3, #0] - CREG_DMAMUX &= ~(0x3<<(ADCHS_DMA_READ*2)); - 546: 6819 ldr r1, [r3, #0] - 548: f421 3140 bic.w r1, r1, #196608 ; 0x30000 - 54c: 6019 str r1, [r3, #0] - CREG_DMAMUX |= 0x3<<(ADCHS_DMA_READ*2); - 54e: 6819 ldr r1, [r3, #0] - 550: f441 3140 orr.w r1, r1, #196608 ; 0x30000 - 554: 6019 str r1, [r3, #0] - - LPC_GPDMA->CONFIG = 0x01; /* Enable DMA channels, little endian */ - while ( !(LPC_GPDMA->CONFIG & 0x01) ); - 556: 4611 mov r1, r2 - CREG_DMAMUX &= ~(0x3<<(ADCHS_DMA_WRITE*2)); - CREG_DMAMUX |= 0x3<<(ADCHS_DMA_WRITE*2); - CREG_DMAMUX &= ~(0x3<<(ADCHS_DMA_READ*2)); - CREG_DMAMUX |= 0x3<<(ADCHS_DMA_READ*2); - - LPC_GPDMA->CONFIG = 0x01; /* Enable DMA channels, little endian */ - 558: 6310 str r0, [r2, #48] ; 0x30 - while ( !(LPC_GPDMA->CONFIG & 0x01) ); - 55a: 6b0a ldr r2, [r1, #48] ; 0x30 - 55c: f44f 5300 mov.w r3, #8192 ; 0x2000 - 560: 07d2 lsls r2, r2, #31 - 562: f2c4 0300 movt r3, #16384 ; 0x4000 - 566: d5f8 bpl.n 55a - - /* Disable Channel before to change settings */ - LPC_GPDMA->CONFIG = 0x00; /* Disable DMA channels, little endian */ - 568: 2000 movs r0, #0 - 56a: 6318 str r0, [r3, #48] ; 0x30 - 56c: 4770 bx lr - 56e: bf00 nop - -00000570 : -} - -void ADCHS_DMA_init(uint32_t dest_addr, uint8_t packed) -{ - 570: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 574: 4604 mov r4, r0 - 576: 460e mov r6, r1 - uint32_t nb_dma_transfer; - int i; - - ADCHS_DMA_init_stop(); - 578: f7ff ffd2 bl 520 - nb_dma_transfer = ADCHS_DATA_BUFFER_SIZE_BYTE / (ADC_FIFO_LEVEL * ADCHS_DMA_NUM_LLI); - nb_dma_transfer = (nb_dma_transfer * ADC_FIFO_LEVEL) / 4; - - for(i=0; i) - 57e: f44f 7200 mov.w r2, #512 ; 0x200 - 582: f2c4 020f movt r2, #16399 ; 0x400f - adchs_dma_lli[i].dst_addr = ((uint32_t)dest_addr) + (nb_dma_transfer*4*i); - /* Modulo with round rubin last LLI point to First in infinite loop */ - adchs_dma_lli[i].next_lli = (uint32_t)(&adchs_dma_lli[(i+1)%ADCHS_DMA_NUM_LLI]); - - adchs_dma_lli[i].control = ( (nb_dma_transfer) << 0) | - 586: f44f 5020 mov.w r0, #10240 ; 0x2800 - for(i=0; i - { - for(i=0; iC0SRCADDR = adchs_dma_lli[0].src_addr; - 5d8: f44f 5000 mov.w r0, #8192 ; 0x2000 - 5dc: 6819 ldr r1, [r3, #0] - 5de: f2c4 0000 movt r0, #16384 ; 0x4000 - 5e2: f8c0 1100 str.w r1, [r0, #256] ; 0x100 - LPC_GPDMA->C0DESTADDR = adchs_dma_lli[0].dst_addr; - 5e6: 685a ldr r2, [r3, #4] - 5e8: f8c0 2104 str.w r2, [r0, #260] ; 0x104 - LPC_GPDMA->C0CONTROL = adchs_dma_lli[0].control; - 5ec: 68db ldr r3, [r3, #12] - LPC_GPDMA->C0LLI = (uint32_t)(&adchs_dma_lli[1]); // must be pointing to the second LLI as the first is used when initializing - LPC_GPDMA->C0CONFIG = (0x1) | // Enable bit - 5ee: f24d 0111 movw r1, #53265 ; 0xd011 - (0x0 << 6) | - (0x2 << 11) | - (0x1 << 14) | - (0x1 << 15); - - LPC_GPDMA->CONFIG = 0x01; /* Enable DMA channels, little endian */ - 5f2: 2201 movs r2, #1 - adchs_dma_lli[i-1].control |= (0x1UL << 31); - } - - LPC_GPDMA->C0SRCADDR = adchs_dma_lli[0].src_addr; - LPC_GPDMA->C0DESTADDR = adchs_dma_lli[0].dst_addr; - LPC_GPDMA->C0CONTROL = adchs_dma_lli[0].control; - 5f4: f8c0 310c str.w r3, [r0, #268] ; 0x10c - LPC_GPDMA->C0LLI = (uint32_t)(&adchs_dma_lli[1]); // must be pointing to the second LLI as the first is used when initializing - 5f8: f8c0 5108 str.w r5, [r0, #264] ; 0x108 - LPC_GPDMA->C0CONFIG = (0x1) | // Enable bit - 5fc: f8c0 1110 str.w r1, [r0, #272] ; 0x110 - (0x0 << 6) | - (0x2 << 11) | - (0x1 << 14) | - (0x1 << 15); - - LPC_GPDMA->CONFIG = 0x01; /* Enable DMA channels, little endian */ - 600: 6302 str r2, [r0, #48] ; 0x30 - 602: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - adchs_dma_lli[i].control |= (0x1UL << 31); - } - } - else - { - adchs_dma_lli[(ADCHS_DMA_NUM_LLI/2)-1].control |= (0x1UL << 31); - 606: 61da str r2, [r3, #28] - adchs_dma_lli[i-1].control |= (0x1UL << 31); - 608: 63da str r2, [r3, #60] ; 0x3c - 60a: e7e5 b.n 5d8 - 60c: 10080040 .word 0x10080040 - -00000610 : -} - -void ADCHS_init_stop(void) -{ - /* Reset ADCHS using RGU */ - RESET_CTRL1 = RESET_CTRL1_ADCHS; - 610: f243 1304 movw r3, #12548 ; 0x3104 - 614: f2c4 0305 movt r3, #16389 ; 0x4005 - /* Wait end of Reset */ - while( (RESET_ACTIVE_STATUS1 & RESET_CTRL1_ADCHS) != RESET_CTRL1_ADCHS ); - 618: f243 1254 movw r2, #12628 ; 0x3154 -} - -void ADCHS_init_stop(void) -{ - /* Reset ADCHS using RGU */ - RESET_CTRL1 = RESET_CTRL1_ADCHS; - 61c: f04f 5180 mov.w r1, #268435456 ; 0x10000000 - 620: 6019 str r1, [r3, #0] - /* Wait end of Reset */ - while( (RESET_ACTIVE_STATUS1 & RESET_CTRL1_ADCHS) != RESET_CTRL1_ADCHS ); - 622: f2c4 0205 movt r2, #16389 ; 0x4005 - 626: 6810 ldr r0, [r2, #0] - 628: 00c1 lsls r1, r0, #3 - 62a: d5fc bpl.n 626 - - LPC_ADCHS->CLR_EN0 = STATUS0_CLEAR_MASK; - 62c: 2300 movs r3, #0 - 62e: f2c4 030f movt r3, #16399 ; 0x400f - 632: 227f movs r2, #127 ; 0x7f - 634: f8c3 2f00 str.w r2, [r3, #3840] ; 0xf00 - LPC_ADCHS->CLR_STAT0 = STATUS0_CLEAR_MASK; - - while(LPC_ADCHS->STATUS0 & STATUS0_CLEAR); - 638: 4619 mov r1, r3 - RESET_CTRL1 = RESET_CTRL1_ADCHS; - /* Wait end of Reset */ - while( (RESET_ACTIVE_STATUS1 & RESET_CTRL1_ADCHS) != RESET_CTRL1_ADCHS ); - - LPC_ADCHS->CLR_EN0 = STATUS0_CLEAR_MASK; - LPC_ADCHS->CLR_STAT0 = STATUS0_CLEAR_MASK; - 63a: f8c3 2f10 str.w r2, [r3, #3856] ; 0xf10 - - while(LPC_ADCHS->STATUS0 & STATUS0_CLEAR); - 63e: f8d1 0f0c ldr.w r0, [r1, #3852] ; 0xf0c - 642: 2300 movs r3, #0 - 644: f010 0f7d tst.w r0, #125 ; 0x7d - 648: f2c4 030f movt r3, #16399 ; 0x400f - 64c: d1f7 bne.n 63e - - LPC_ADCHS->CLR_EN1 = STATUS1_CLEAR_MASK; - 64e: f06f 4260 mvn.w r2, #3758096384 ; 0xe0000000 - 652: f8c3 2f20 str.w r2, [r3, #3872] ; 0xf20 - LPC_ADCHS->CLR_STAT1 = STATUS1_CLEAR_MASK; - while(LPC_ADCHS->STATUS1); - 656: 4619 mov r1, r3 - LPC_ADCHS->CLR_STAT0 = STATUS0_CLEAR_MASK; - - while(LPC_ADCHS->STATUS0 & STATUS0_CLEAR); - - LPC_ADCHS->CLR_EN1 = STATUS1_CLEAR_MASK; - LPC_ADCHS->CLR_STAT1 = STATUS1_CLEAR_MASK; - 658: f8c3 2f30 str.w r2, [r3, #3888] ; 0xf30 - while(LPC_ADCHS->STATUS1); - 65c: f8d1 0f2c ldr.w r0, [r1, #3884] ; 0xf2c - 660: 2300 movs r3, #0 - 662: f2c4 030f movt r3, #16399 ; 0x400f - 666: 2800 cmp r0, #0 - 668: d1f8 bne.n 65c - - LPC_ADCHS->POWER_DOWN = (0<<0); - LPC_ADCHS->FLUSH = 1; - 66a: 2201 movs r2, #1 - LPC_ADCHS->FIFO_CFG = ADC_FIFO_LEVEL<<1 | 0x1; - 66c: 2111 movs r1, #17 - - LPC_ADCHS->CLR_EN1 = STATUS1_CLEAR_MASK; - LPC_ADCHS->CLR_STAT1 = STATUS1_CLEAR_MASK; - while(LPC_ADCHS->STATUS1); - - LPC_ADCHS->POWER_DOWN = (0<<0); - 66e: 6198 str r0, [r3, #24] - LPC_ADCHS->FLUSH = 1; - 670: 601a str r2, [r3, #0] - LPC_ADCHS->FIFO_CFG = ADC_FIFO_LEVEL<<1 | 0x1; - 672: 60d9 str r1, [r3, #12] - 674: 4770 bx lr - 676: bf00 nop - -00000678 : -} - -void ADCHS_deinit(void) -{ - 678: b508 push {r3, lr} - ADCHS_DMA_init_stop(); - 67a: f7ff ff51 bl 520 - ADCHS_init_stop(); - 67e: f7ff ffc7 bl 610 - LPC_ADCHS->POWER_CONTROL = 0x0; - 682: 2300 movs r3, #0 - 684: f2c4 030f movt r3, #16399 ; 0x400f - 688: 2200 movs r2, #0 - 68a: f8c3 2108 str.w r2, [r3, #264] ; 0x108 - 68e: bd08 pop {r3, pc} - -00000690 : -} - -/* Initialized ADCHS for freq between 0 to less than 30MSPS */ -void ADCHS_init(void) -{ - 690: b508 push {r3, lr} - uint32_t i; - - ADCHS_init_stop(); - 692: f7ff ffbd bl 610 - - LPC_ADCHS->CONFIG = - 696: 2300 movs r3, #0 - 698: f2c4 030f movt r3, #16399 ; 0x400f - ( 0x0 << 4 ) | - ( 0x0 << 5 ) | - ( 0x90 << 6 ); - - /* Configure and Enable ADCHS for fADC less than 30MS/s */ - LPC_ADCHS->POWER_CONTROL = - 69c: f44f 6282 mov.w r2, #1040 ; 0x410 - 6a0: f2c0 0206 movt r2, #6 -{ - uint32_t i; - - ADCHS_init_stop(); - - LPC_ADCHS->CONFIG = - 6a4: f242 4101 movw r1, #9217 ; 0x2401 - 6a8: 61d9 str r1, [r3, #28] - ( 0x0 << 4 ) | - ( 0x0 << 5 ) | - ( 0x90 << 6 ); - - /* Configure and Enable ADCHS for fADC less than 30MS/s */ - LPC_ADCHS->POWER_CONTROL = - 6aa: f8c3 2108 str.w r2, [r3, #264] ; 0x108 - (0x1 << 4) | - (0x1 << 10) | - (0 << 16) | - (1 << 17) | - (1 << 18); - LPC_ADCHS->ADC_SPEED = 0x0; - 6ae: 2200 movs r2, #0 - 6b0: f8c3 2104 str.w r2, [r3, #260] ; 0x104 - - LPC_ADCHS->FLUSH = 1; - 6b4: 2201 movs r2, #1 - 6b6: 2005 movs r0, #5 - - for(i = 0; i < 5; i++ ) - { - while( LPC_ADCHS->FIFO_STS ); /* Wait until FIFO empty. */ - 6b8: 4619 mov r1, r3 - (0 << 16) | - (1 << 17) | - (1 << 18); - LPC_ADCHS->ADC_SPEED = 0x0; - - LPC_ADCHS->FLUSH = 1; - 6ba: 601a str r2, [r3, #0] - - for(i = 0; i < 5; i++ ) - { - while( LPC_ADCHS->FIFO_STS ); /* Wait until FIFO empty. */ - 6bc: 688a ldr r2, [r1, #8] - 6be: 2300 movs r3, #0 - 6c0: f2c4 030f movt r3, #16399 ; 0x400f - 6c4: 2a00 cmp r2, #0 - 6c6: d1f9 bne.n 6bc - (1 << 18); - LPC_ADCHS->ADC_SPEED = 0x0; - - LPC_ADCHS->FLUSH = 1; - - for(i = 0; i < 5; i++ ) - 6c8: 3801 subs r0, #1 - 6ca: d1f7 bne.n 6bc - { - while( LPC_ADCHS->FIFO_STS ); /* Wait until FIFO empty. */ - } - - /* Configure Threshold A & B to default value (even if not used) */ - LPC_ADCHS->THR_A = 0x00FFF000; - 6cc: f44f 4270 mov.w r2, #61440 ; 0xf000 - 6d0: f2c0 02ff movt r2, #255 ; 0xff - LPC_ADCHS->THR_B = 0x00FFF000; - - /* Configure Interrupt 0 & 1 Enable register to default value (even if not used) */ - LPC_ADCHS->CLR_EN0 = STATUS0_CLEAR_MASK; - 6d4: 207f movs r0, #127 ; 0x7f - LPC_ADCHS->CLR_STAT0 = STATUS0_CLEAR_MASK; - LPC_ADCHS->CLR_EN1 = STATUS1_CLEAR_MASK; - 6d6: f06f 4160 mvn.w r1, #3758096384 ; 0xe0000000 - { - while( LPC_ADCHS->FIFO_STS ); /* Wait until FIFO empty. */ - } - - /* Configure Threshold A & B to default value (even if not used) */ - LPC_ADCHS->THR_A = 0x00FFF000; - 6da: 621a str r2, [r3, #32] - LPC_ADCHS->THR_B = 0x00FFF000; - 6dc: 625a str r2, [r3, #36] ; 0x24 - - /* Configure Interrupt 0 & 1 Enable register to default value (even if not used) */ - LPC_ADCHS->CLR_EN0 = STATUS0_CLEAR_MASK; - 6de: f8c3 0f00 str.w r0, [r3, #3840] ; 0xf00 - LPC_ADCHS->CLR_STAT0 = STATUS0_CLEAR_MASK; - 6e2: f8c3 0f10 str.w r0, [r3, #3856] ; 0xf10 - LPC_ADCHS->CLR_EN1 = STATUS1_CLEAR_MASK; - 6e6: f8c3 1f20 str.w r1, [r3, #3872] ; 0xf20 - LPC_ADCHS->CLR_STAT1 = STATUS1_CLEAR_MASK; - 6ea: f8c3 1f30 str.w r1, [r3, #3888] ; 0xf30 - 6ee: bd08 pop {r3, pc} - -000006f0 : - -} - -void ADCHS_desc_init(uint8_t chan_num) -{ - LPC_ADCHS->DSCR_STS = - 6f0: 2300 movs r3, #0 - 6f2: f2c4 030f movt r3, #16399 ; 0x400f - (0 << 4) | - (0 << 5) | - (0x2 << 6) | - (1 << 8) | - (0 << 22) | - (1 << 24) | - 6f6: f040 4001 orr.w r0, r0, #2164260864 ; 0x81000000 - 6fa: f440 72c0 orr.w r2, r0, #384 ; 0x180 - -} - -void ADCHS_desc_init(uint8_t chan_num) -{ - LPC_ADCHS->DSCR_STS = - 6fe: 2101 movs r1, #1 - (0 << 4) | - (0 << 5) | - (0x1 << 6) | - (0 << 8) | - (0 << 22) | - (1 << 24) | - 700: f040 0040 orr.w r0, r0, #64 ; 0x40 - -} - -void ADCHS_desc_init(uint8_t chan_num) -{ - LPC_ADCHS->DSCR_STS = - 704: 6159 str r1, [r3, #20] - (1<<0) | - (0<<1); - - LPC_ADCHS->DESCRIPTOR_1[0] = - 706: f8c3 2320 str.w r2, [r3, #800] ; 0x320 - (1 << 8) | - (0 << 22) | - (1 << 24) | - (0x1U << 31); - - LPC_ADCHS->DESCRIPTOR_0[0] = - 70a: f8c3 0300 str.w r0, [r3, #768] ; 0x300 - 70e: 4770 bx lr - -00000710 : - __asm__("B hard_fault_handler_c"); - __asm__("_MSP:"); - __asm__("MRS R0, MSP"); - __asm__("B hard_fault_handler_c"); -#elif defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__) - __asm__("TST LR, #4"); - 710: f01e 0f04 tst.w lr, #4 - __asm__("ITE EQ"); - 714: bf0c ite eq - __asm__("MRSEQ R0, MSP"); - 716: f3ef 8008 mrseq r0, MSP - __asm__("MRSNE R0, PSP"); - 71a: f3ef 8009 mrsne r0, PSP - __asm__("B hard_fault_handler_c"); - 71e: f000 b801 b.w 724 - 722: bf00 nop - -00000724 : -volatile hard_fault_stack_t* hard_fault_stack_pt; - -__attribute__((used)) void hard_fault_handler_c(uint32_t* args) -{ - /* hard_fault_stack_pt contains registers saved before the hard fault */ - hard_fault_stack_pt = (hard_fault_stack_t*)args; - 724: 4b01 ldr r3, [pc, #4] ; (72c ) - 726: 6018 str r0, [r3, #0] - if( SCB->CFSR & CSCB_CFSR_BFSR_PRECISERR ) { - } - } - } - */ - __asm("BKPT #0\n") ; // Break into the debugger - 728: be00 bkpt 0x0000 - 72a: e7fe b.n 72a - 72c: 10080080 .word 0x10080080 - -00000730 : - - while(1); -} - -void mem_manage_handler() { - 730: e7fe b.n 730 - 732: bf00 nop - -00000734 : - while(1); -} - -void bus_fault_handler() { - 734: e7fe b.n 734 - 736: bf00 nop - -00000738 : - while(1); -} - -void usage_fault_handler() { - 738: e7fe b.n 738 - 73a: bf00 nop - -0000073c : - - while(1); -} - -void sys_clock_samplerate(const airspy_sys_samplerate_t* const pt_airspy_sys_samplerate) -{ - 73c: b4f0 push {r4, r5, r6, r7} - uint32_t pll0audio_npdiv; - uint32_t pll0audio_ctrl_flags; - - pll0audio_mdiv = pt_airspy_sys_samplerate->pll0audio_mdiv; - pll0audio_npdiv = pt_airspy_sys_samplerate->pll0audio_npdiv; - pll0audio_ctrl_flags = pt_airspy_sys_samplerate->pll0audio_ctrl_flags; - 73e: e890 00e0 ldmia.w r0, {r5, r6, r7} - - /* Power Down ADCHS Clock */ - CGU_BASE_ADCHS_CLK = CGU_BASE_ADCHS_CLK_PD; - 742: 228c movs r2, #140 ; 0x8c - /* Power Down PLL0AUDIO */ - CGU_PLL0AUDIO_CTRL = CGU_PLL0AUDIO_CTRL_PD; - 744: 2430 movs r4, #48 ; 0x30 - /* Power Down IDIVB */ - CGU_IDIVB_CTRL = CGU_IDIVB_CTRL_PD; - 746: 214c movs r1, #76 ; 0x4c - pll0audio_mdiv = pt_airspy_sys_samplerate->pll0audio_mdiv; - pll0audio_npdiv = pt_airspy_sys_samplerate->pll0audio_npdiv; - pll0audio_ctrl_flags = pt_airspy_sys_samplerate->pll0audio_ctrl_flags; - - /* Power Down ADCHS Clock */ - CGU_BASE_ADCHS_CLK = CGU_BASE_ADCHS_CLK_PD; - 748: f2c4 0205 movt r2, #16389 ; 0x4005 - /* Power Down PLL0AUDIO */ - CGU_PLL0AUDIO_CTRL = CGU_PLL0AUDIO_CTRL_PD; - 74c: f2c4 0405 movt r4, #16389 ; 0x4005 - /* Power Down IDIVB */ - CGU_IDIVB_CTRL = CGU_IDIVB_CTRL_PD; - 750: f2c4 0105 movt r1, #16389 ; 0x4005 - pll0audio_mdiv = pt_airspy_sys_samplerate->pll0audio_mdiv; - pll0audio_npdiv = pt_airspy_sys_samplerate->pll0audio_npdiv; - pll0audio_ctrl_flags = pt_airspy_sys_samplerate->pll0audio_ctrl_flags; - - /* Power Down ADCHS Clock */ - CGU_BASE_ADCHS_CLK = CGU_BASE_ADCHS_CLK_PD; - 754: 2301 movs r3, #1 - 756: 6013 str r3, [r2, #0] - /* Power Down PLL0AUDIO */ - CGU_PLL0AUDIO_CTRL = CGU_PLL0AUDIO_CTRL_PD; - 758: 6023 str r3, [r4, #0] - /* Power Down IDIVB */ - CGU_IDIVB_CTRL = CGU_IDIVB_CTRL_PD; - 75a: 600b str r3, [r1, #0] - - if( (pll0audio_mdiv == 0) && - 75c: b90d cbnz r5, 762 - 75e: 2e00 cmp r6, #0 - 760: d032 beq.n 7c8 - - }else - { - /* ADCHS Clock CGU_BASE_ADCHS_CLK => Clock Source PLL0AUDIO */ - /* Use CGU_SRC_GP_CLKIN as clock source for PLL0AUDIO */ - CGU_PLL0AUDIO_CTRL = CGU_PLL0AUDIO_CTRL_PD - 762: 2030 movs r0, #48 ; 0x30 - 764: f2c4 0005 movt r0, #16389 ; 0x4005 - 768: f640 0101 movw r1, #2049 ; 0x801 - 76c: f2c0 4100 movt r1, #1024 ; 0x400 - | CGU_PLL0AUDIO_CTRL_AUTOBLOCK - | CGU_PLL0AUDIO_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN); - while (CGU_PLL0AUDIO_STAT & CGU_PLL0AUDIO_STAT_LOCK); - 770: 222c movs r2, #44 ; 0x2c - - }else - { - /* ADCHS Clock CGU_BASE_ADCHS_CLK => Clock Source PLL0AUDIO */ - /* Use CGU_SRC_GP_CLKIN as clock source for PLL0AUDIO */ - CGU_PLL0AUDIO_CTRL = CGU_PLL0AUDIO_CTRL_PD - 772: 6001 str r1, [r0, #0] - | CGU_PLL0AUDIO_CTRL_AUTOBLOCK - | CGU_PLL0AUDIO_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN); - while (CGU_PLL0AUDIO_STAT & CGU_PLL0AUDIO_STAT_LOCK); - 774: f2c4 0205 movt r2, #16389 ; 0x4005 - 778: 6813 ldr r3, [r2, #0] - 77a: 07d9 lsls r1, r3, #31 - 77c: d4fc bmi.n 778 - /* configure PLL0AUDIO to produce xxMHz */ - /* PLL Register settings (SEL_EXT=1): - Mdec=31=PLL0_MDIV[16:0] => CGU_PLL0AUDIO_MDIV - Ndec=0=PLL0_NPDIV[21:12], Pdec=21=PLL0_NPDIV[6:0] => CGU_PLL0AUDIO_NP_DIV - */ - CGU_PLL0AUDIO_MDIV = pll0audio_mdiv; - 77e: 2034 movs r0, #52 ; 0x34 - CGU_PLL0AUDIO_NP_DIV = pll0audio_npdiv; - 780: 2138 movs r1, #56 ; 0x38 - /* configure PLL0AUDIO to produce xxMHz */ - /* PLL Register settings (SEL_EXT=1): - Mdec=31=PLL0_MDIV[16:0] => CGU_PLL0AUDIO_MDIV - Ndec=0=PLL0_NPDIV[21:12], Pdec=21=PLL0_NPDIV[6:0] => CGU_PLL0AUDIO_NP_DIV - */ - CGU_PLL0AUDIO_MDIV = pll0audio_mdiv; - 782: f2c4 0005 movt r0, #16389 ; 0x4005 - CGU_PLL0AUDIO_NP_DIV = pll0audio_npdiv; - 786: f2c4 0105 movt r1, #16389 ; 0x4005 - CGU_PLL0AUDIO_CTRL |= (CGU_PLL0AUDIO_CTRL_PD - 78a: 2330 movs r3, #48 ; 0x30 - 78c: f2c4 0305 movt r3, #16389 ; 0x4005 - /* configure PLL0AUDIO to produce xxMHz */ - /* PLL Register settings (SEL_EXT=1): - Mdec=31=PLL0_MDIV[16:0] => CGU_PLL0AUDIO_MDIV - Ndec=0=PLL0_NPDIV[21:12], Pdec=21=PLL0_NPDIV[6:0] => CGU_PLL0AUDIO_NP_DIV - */ - CGU_PLL0AUDIO_MDIV = pll0audio_mdiv; - 790: 6005 str r5, [r0, #0] - CGU_PLL0AUDIO_NP_DIV = pll0audio_npdiv; - 792: 600e str r6, [r1, #0] - CGU_PLL0AUDIO_CTRL |= (CGU_PLL0AUDIO_CTRL_PD - 794: 681a ldr r2, [r3, #0] - 796: ea47 0002 orr.w r0, r7, r2 - 79a: f440 5100 orr.w r1, r0, #8192 ; 0x2000 - 79e: f041 0211 orr.w r2, r1, #17 - 7a2: 601a str r2, [r3, #0] - | pll0audio_ctrl_flags - | CGU_PLL0AUDIO_CTRL_SEL_EXT - | CGU_PLL0AUDIO_CTRL_CLKEN); - - /* power on PLL0AUDIO and wait until stable */ - CGU_PLL0AUDIO_CTRL &= ~CGU_PLL0AUDIO_CTRL_PD; - 7a4: 6818 ldr r0, [r3, #0] - while (!(CGU_PLL0AUDIO_STAT & CGU_PLL0AUDIO_STAT_LOCK)); - 7a6: 222c movs r2, #44 ; 0x2c - | pll0audio_ctrl_flags - | CGU_PLL0AUDIO_CTRL_SEL_EXT - | CGU_PLL0AUDIO_CTRL_CLKEN); - - /* power on PLL0AUDIO and wait until stable */ - CGU_PLL0AUDIO_CTRL &= ~CGU_PLL0AUDIO_CTRL_PD; - 7a8: f020 0101 bic.w r1, r0, #1 - 7ac: 6019 str r1, [r3, #0] - while (!(CGU_PLL0AUDIO_STAT & CGU_PLL0AUDIO_STAT_LOCK)); - 7ae: f2c4 0205 movt r2, #16389 ; 0x4005 - 7b2: 6813 ldr r3, [r2, #0] - 7b4: 07db lsls r3, r3, #31 - 7b6: d5fc bpl.n 7b2 - - /* use PLL0AUDIO as clock source for ADCHS */ - CGU_BASE_ADCHS_CLK = CGU_BASE_ADCHS_CLK_AUTOBLOCK - 7b8: 208c movs r0, #140 ; 0x8c - 7ba: f2c4 0005 movt r0, #16389 ; 0x4005 - 7be: f04f 2208 mov.w r2, #134219776 ; 0x8000800 - 7c2: 6002 str r2, [r0, #0] - | CGU_BASE_ADCHS_CLK_CLK_SEL(CGU_SRC_PLL0AUDIO); - } -} - 7c4: bcf0 pop {r4, r5, r6, r7} - 7c6: 4770 bx lr - CGU_IDIVB_CTRL = CGU_IDIVB_CTRL_PD; - - if( (pll0audio_mdiv == 0) && - (pll0audio_npdiv == 0) ) - { - if( pt_airspy_sys_samplerate->idivb == 0) - 7c8: 7b03 ldrb r3, [r0, #12] - 7ca: b92b cbnz r3, 7d8 - { - /* Do not use IDIVB direct connection CGU_SRC_GP_CLKIN to ACHS_CLK */ - /* ADCHS Clock CGU_BASE_ADCHS_CLK => Clock Source CLK_IN */ - CGU_BASE_ADCHS_CLK = CGU_BASE_ADCHS_CLK_AUTOBLOCK - 7cc: f44f 6100 mov.w r1, #2048 ; 0x800 - 7d0: f2c0 4100 movt r1, #1024 ; 0x400 - 7d4: 6011 str r1, [r2, #0] - 7d6: e7f5 b.n 7c4 - | CGU_BASE_ADCHS_CLK_CLK_SEL(CGU_SRC_GP_CLKIN); - }else - { - /* ADCHS Clock CGU_BASE_ADCHS_CLK => Clock Source IDIVB */ - /* Use CGU_SRC_GP_CLKIN as clock source for IDIVB */ - CGU_IDIVB_CTRL = CGU_IDIVB_CTRL_IDIV(pt_airspy_sys_samplerate->idivb) - 7d8: 0098 lsls r0, r3, #2 - | CGU_IDIVB_CTRL_AUTOBLOCK - | CGU_IDIVB_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN); - 7da: f040 6080 orr.w r0, r0, #67108864 ; 0x4000000 - - /* ADCHS Clock CGU_BASE_ADCHS_CLK => Clock Source CLK_IDIVB */ - CGU_BASE_ADCHS_CLK = CGU_BASE_ADCHS_CLK_AUTOBLOCK - 7de: f44f 6300 mov.w r3, #2048 ; 0x800 - { - /* ADCHS Clock CGU_BASE_ADCHS_CLK => Clock Source IDIVB */ - /* Use CGU_SRC_GP_CLKIN as clock source for IDIVB */ - CGU_IDIVB_CTRL = CGU_IDIVB_CTRL_IDIV(pt_airspy_sys_samplerate->idivb) - | CGU_IDIVB_CTRL_AUTOBLOCK - | CGU_IDIVB_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN); - 7e2: 4318 orrs r0, r3 - - /* ADCHS Clock CGU_BASE_ADCHS_CLK => Clock Source CLK_IDIVB */ - CGU_BASE_ADCHS_CLK = CGU_BASE_ADCHS_CLK_AUTOBLOCK - 7e4: f6c0 5300 movt r3, #3328 ; 0xd00 - | CGU_BASE_ADCHS_CLK_CLK_SEL(CGU_SRC_GP_CLKIN); - }else - { - /* ADCHS Clock CGU_BASE_ADCHS_CLK => Clock Source IDIVB */ - /* Use CGU_SRC_GP_CLKIN as clock source for IDIVB */ - CGU_IDIVB_CTRL = CGU_IDIVB_CTRL_IDIV(pt_airspy_sys_samplerate->idivb) - 7e8: 6008 str r0, [r1, #0] - | CGU_IDIVB_CTRL_AUTOBLOCK - | CGU_IDIVB_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN); - - /* ADCHS Clock CGU_BASE_ADCHS_CLK => Clock Source CLK_IDIVB */ - CGU_BASE_ADCHS_CLK = CGU_BASE_ADCHS_CLK_AUTOBLOCK - 7ea: 6013 str r3, [r2, #0] - 7ec: e7ea b.n 7c4 - 7ee: bf00 nop - -000007f0 : - /* Configure PLL1 Clock */ - /* Integer mode: - FCLKOUT = M*(FCLKIN/N) - FCCO = 2*P*FCLKOUT = 2*P*M*(FCLKIN/N) - */ - pll_reg = CGU_PLL1_CTRL; - 7f0: 2144 movs r1, #68 ; 0x44 - 7f2: f2c4 0105 movt r1, #16389 ; 0x4005 - Connect PLL1 to M4/M0 core, Peripheral, APB1, APB3. - Init I2C0 & I2C1. -This function is mainly used to lower power consumption. -*/ -void cpu_clock_pll1_low_speed(const airspy_pll1_ls_t* const pt_airspy_pll1_ls_conf) -{ - 7f6: b470 push {r4, r5, r6} - FCLKOUT = M*(FCLKIN/N) - FCCO = 2*P*FCLKOUT = 2*P*M*(FCLKIN/N) - */ - pll_reg = CGU_PLL1_CTRL; - /* Clear PLL1 bits */ - pll_reg &= ~( CGU_PLL1_CTRL_CLK_SEL_MASK | CGU_PLL1_CTRL_PD | CGU_PLL1_CTRL_FBSEL | /* CLK SEL, PowerDown , FBSEL */ - 7f8: f64c 433c movw r3, #52284 ; 0xcc3c - /* Configure PLL1 Clock */ - /* Integer mode: - FCLKOUT = M*(FCLKIN/N) - FCCO = 2*P*FCLKOUT = 2*P*M*(FCLKIN/N) - */ - pll_reg = CGU_PLL1_CTRL; - 7fc: 680e ldr r6, [r1, #0] - CGU_PLL1_CTRL_BYPASS | /* BYPASS */ - CGU_PLL1_CTRL_DIRECT | /* DIRECT */ - CGU_PLL1_CTRL_PSEL_MASK | CGU_PLL1_CTRL_MSEL_MASK | CGU_PLL1_CTRL_NSEL_MASK ); /* PSEL, MSEL, NSEL- divider ratios */ - /* Set PLL1 */ - pll_reg |= CGU_PLL1_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN) - | CGU_PLL1_CTRL_PSEL(pll1_psel) - 7fe: 6805 ldr r5, [r0, #0] - | CGU_PLL1_CTRL_NSEL(pll1_nsel) - | CGU_PLL1_CTRL_MSEL(pll1_msel) - 800: 6882 ldr r2, [r0, #8] - CGU_PLL1_CTRL_DIRECT | /* DIRECT */ - CGU_PLL1_CTRL_PSEL_MASK | CGU_PLL1_CTRL_MSEL_MASK | CGU_PLL1_CTRL_NSEL_MASK ); /* PSEL, MSEL, NSEL- divider ratios */ - /* Set PLL1 */ - pll_reg |= CGU_PLL1_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN) - | CGU_PLL1_CTRL_PSEL(pll1_psel) - | CGU_PLL1_CTRL_NSEL(pll1_nsel) - 802: 6844 ldr r4, [r0, #4] - FCLKOUT = M*(FCLKIN/N) - FCCO = 2*P*FCLKOUT = 2*P*M*(FCLKIN/N) - */ - pll_reg = CGU_PLL1_CTRL; - /* Clear PLL1 bits */ - pll_reg &= ~( CGU_PLL1_CTRL_CLK_SEL_MASK | CGU_PLL1_CTRL_PD | CGU_PLL1_CTRL_FBSEL | /* CLK SEL, PowerDown , FBSEL */ - 804: f2ce 0300 movt r3, #57344 ; 0xe000 - 808: 4033 ands r3, r6 - CGU_PLL1_CTRL_DIRECT | /* DIRECT */ - CGU_PLL1_CTRL_PSEL_MASK | CGU_PLL1_CTRL_MSEL_MASK | CGU_PLL1_CTRL_NSEL_MASK ); /* PSEL, MSEL, NSEL- divider ratios */ - /* Set PLL1 */ - pll_reg |= CGU_PLL1_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN) - | CGU_PLL1_CTRL_PSEL(pll1_psel) - | CGU_PLL1_CTRL_NSEL(pll1_nsel) - 80a: ea43 2005 orr.w r0, r3, r5, lsl #8 - | CGU_PLL1_CTRL_MSEL(pll1_msel) - 80e: f040 6380 orr.w r3, r0, #67108864 ; 0x4000000 - 812: f043 00c0 orr.w r0, r3, #192 ; 0xc0 - pll_reg &= ~( CGU_PLL1_CTRL_CLK_SEL_MASK | CGU_PLL1_CTRL_PD | CGU_PLL1_CTRL_FBSEL | /* CLK SEL, PowerDown , FBSEL */ - CGU_PLL1_CTRL_BYPASS | /* BYPASS */ - CGU_PLL1_CTRL_DIRECT | /* DIRECT */ - CGU_PLL1_CTRL_PSEL_MASK | CGU_PLL1_CTRL_MSEL_MASK | CGU_PLL1_CTRL_NSEL_MASK ); /* PSEL, MSEL, NSEL- divider ratios */ - /* Set PLL1 */ - pll_reg |= CGU_PLL1_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN) - 816: ea40 3304 orr.w r3, r0, r4, lsl #12 - 81a: ea43 4002 orr.w r0, r3, r2, lsl #16 - | CGU_PLL1_CTRL_MSEL(pll1_msel) - | CGU_PLL1_CTRL_FBSEL - | CGU_PLL1_CTRL_DIRECT; - CGU_PLL1_CTRL = pll_reg; - /* wait until stable */ - while (!(CGU_PLL1_STAT & CGU_PLL1_STAT_LOCK)); - 81e: 2240 movs r2, #64 ; 0x40 - | CGU_PLL1_CTRL_PSEL(pll1_psel) - | CGU_PLL1_CTRL_NSEL(pll1_nsel) - | CGU_PLL1_CTRL_MSEL(pll1_msel) - | CGU_PLL1_CTRL_FBSEL - | CGU_PLL1_CTRL_DIRECT; - CGU_PLL1_CTRL = pll_reg; - 820: 6008 str r0, [r1, #0] - /* wait until stable */ - while (!(CGU_PLL1_STAT & CGU_PLL1_STAT_LOCK)); - 822: f2c4 0205 movt r2, #16389 ; 0x4005 - 826: 6811 ldr r1, [r2, #0] - 828: 07c8 lsls r0, r1, #31 - 82a: d5fc bpl.n 826 - -} - 82c: bc70 pop {r4, r5, r6} - 82e: 4770 bx lr - -00000830 : - - /* - * 12MHz clock is entering LPC XTAL1/OSC input now. - */ - /* set xtal oscillator to low frequency mode */ - CGU_XTAL_OSC_CTRL &= ~CGU_XTAL_OSC_CTRL_HF; - 830: 2218 movs r2, #24 - 832: f2c4 0205 movt r2, #16389 ; 0x4005 -Configure PLL1 to min speed (48MHz) => see cpu_clock_pll1_low_speed() . -Configure PLL0USB @480MHz for USB0. -Note: PLL1 clock is used by M4/M0 core, Peripheral, APB1, APB3. -*/ -void sys_clock_init(void) -{ - 836: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - - /* - * 12MHz clock is entering LPC XTAL1/OSC input now. - */ - /* set xtal oscillator to low frequency mode */ - CGU_XTAL_OSC_CTRL &= ~CGU_XTAL_OSC_CTRL_HF; - 83a: 6811 ldr r1, [r2, #0] - 83c: f021 0004 bic.w r0, r1, #4 - 840: 6010 str r0, [r2, #0] - - /* power on the oscillator and wait until stable */ - CGU_XTAL_OSC_CTRL &= ~CGU_XTAL_OSC_CTRL_ENABLE; - 842: 6814 ldr r4, [r2, #0] - 844: f024 0501 bic.w r5, r4, #1 -Configure PLL1 to min speed (48MHz) => see cpu_clock_pll1_low_speed() . -Configure PLL0USB @480MHz for USB0. -Note: PLL1 clock is used by M4/M0 core, Peripheral, APB1, APB3. -*/ -void sys_clock_init(void) -{ - 848: b095 sub sp, #84 ; 0x54 - */ - /* set xtal oscillator to low frequency mode */ - CGU_XTAL_OSC_CTRL &= ~CGU_XTAL_OSC_CTRL_HF; - - /* power on the oscillator and wait until stable */ - CGU_XTAL_OSC_CTRL &= ~CGU_XTAL_OSC_CTRL_ENABLE; - 84a: f242 7610 movw r6, #10000 ; 0x2710 - 84e: 6015 str r5, [r2, #0] -void delay(uint32_t duration) -{ - uint32_t i; - - for (i = 0; i < duration; i++) - __asm__("nop"); - 850: bf00 nop - 852: 1e73 subs r3, r6, #1 - 854: bf00 nop - -void delay(uint32_t duration) -{ - uint32_t i; - - for (i = 0; i < duration; i++) - 856: 1e5e subs r6, r3, #1 - 858: d1fa bne.n 850 - defined in User Manual 10503.pdf Rev1.8 See Fig 30. BASE_M4_CLK ramp-up procedure - */ - delay(WAIT_CPU_CLOCK_INIT_DELAY); - - /* Use CGU_SRC_XTAL as clock source for BASE_M4_CLK (CPU) */ - CGU_BASE_M4_CLK = (CGU_BASE_M4_CLK_CLK_SEL(CGU_SRC_XTAL) | CGU_BASE_M4_CLK_AUTOBLOCK); - 85a: 276c movs r7, #108 ; 0x6c - - /* Use CGU_SRC_XTAL as clock source for Peripheral */ - CGU_BASE_PERIPH_CLK = CGU_BASE_PERIPH_CLK_AUTOBLOCK - 85c: 2464 movs r4, #100 ; 0x64 - | CGU_BASE_PERIPH_CLK_CLK_SEL(CGU_SRC_XTAL); - - /* Use CGU_SRC_XTAL as clock source for APB1 */ - CGU_BASE_APB1_CLK = CGU_BASE_APB1_CLK_AUTOBLOCK - 85e: 2180 movs r1, #128 ; 0x80 - | CGU_BASE_APB1_CLK_CLK_SEL(CGU_SRC_XTAL); - - /* Use CGU_SRC_XTAL as clock source for APB3 */ - CGU_BASE_APB3_CLK = CGU_BASE_APB3_CLK_AUTOBLOCK - 860: 2284 movs r2, #132 ; 0x84 - /* Use CGU_SRC_XTAL as clock source for Peripheral */ - CGU_BASE_PERIPH_CLK = CGU_BASE_PERIPH_CLK_AUTOBLOCK - | CGU_BASE_PERIPH_CLK_CLK_SEL(CGU_SRC_XTAL); - - /* Use CGU_SRC_XTAL as clock source for APB1 */ - CGU_BASE_APB1_CLK = CGU_BASE_APB1_CLK_AUTOBLOCK - 862: f2c4 0105 movt r1, #16389 ; 0x4005 - | CGU_BASE_APB1_CLK_CLK_SEL(CGU_SRC_XTAL); - - /* Use CGU_SRC_XTAL as clock source for APB3 */ - CGU_BASE_APB3_CLK = CGU_BASE_APB3_CLK_AUTOBLOCK - 866: f2c4 0205 movt r2, #16389 ; 0x4005 - defined in User Manual 10503.pdf Rev1.8 See Fig 30. BASE_M4_CLK ramp-up procedure - */ - delay(WAIT_CPU_CLOCK_INIT_DELAY); - - /* Use CGU_SRC_XTAL as clock source for BASE_M4_CLK (CPU) */ - CGU_BASE_M4_CLK = (CGU_BASE_M4_CLK_CLK_SEL(CGU_SRC_XTAL) | CGU_BASE_M4_CLK_AUTOBLOCK); - 86a: f2c4 0705 movt r7, #16389 ; 0x4005 - - /* Use CGU_SRC_XTAL as clock source for Peripheral */ - CGU_BASE_PERIPH_CLK = CGU_BASE_PERIPH_CLK_AUTOBLOCK - 86e: f2c4 0405 movt r4, #16389 ; 0x4005 - defined in User Manual 10503.pdf Rev1.8 See Fig 30. BASE_M4_CLK ramp-up procedure - */ - delay(WAIT_CPU_CLOCK_INIT_DELAY); - - /* Use CGU_SRC_XTAL as clock source for BASE_M4_CLK (CPU) */ - CGU_BASE_M4_CLK = (CGU_BASE_M4_CLK_CLK_SEL(CGU_SRC_XTAL) | CGU_BASE_M4_CLK_AUTOBLOCK); - 872: f44f 6500 mov.w r5, #2048 ; 0x800 - 876: f2c0 6500 movt r5, #1536 ; 0x600 - 87a: 603d str r5, [r7, #0] - * CLK5 -> NC - * CLK6 -> NC - * CLK7 -> LPC4370 Main Clock xxMHz. - */ - /* Configure I2C0 (for SI5351C) to about 375kHz (12MHz/(2*16)=0.375MHz) when we switch over to APB1 clock = 12MHz */ - i2c0_init(16); - 87c: 2010 movs r0, #16 - - /* Use CGU_SRC_XTAL as clock source for BASE_M4_CLK (CPU) */ - CGU_BASE_M4_CLK = (CGU_BASE_M4_CLK_CLK_SEL(CGU_SRC_XTAL) | CGU_BASE_M4_CLK_AUTOBLOCK); - - /* Use CGU_SRC_XTAL as clock source for Peripheral */ - CGU_BASE_PERIPH_CLK = CGU_BASE_PERIPH_CLK_AUTOBLOCK - 87e: 6025 str r5, [r4, #0] - | CGU_BASE_PERIPH_CLK_CLK_SEL(CGU_SRC_XTAL); - - /* Use CGU_SRC_XTAL as clock source for APB1 */ - CGU_BASE_APB1_CLK = CGU_BASE_APB1_CLK_AUTOBLOCK - 880: 600d str r5, [r1, #0] - /* SI5351C detected continue init using AirSpy NOS configuration */ - addr = (uint32_t)&airspy_nos_conf; - addr = (addr | ROMFLASH_BASE_ADDR); /* Fix with Addr from ROMFLASH */ - src = (unsigned char *)addr; - /* Copy the configuration from Flash to SRAM */ - for (dest = (unsigned char *)airspy_conf; (uint32_t)dest < (((uint32_t)airspy_conf) + AIRSPY_CONF_MAX_DATA_SIZE); ) - 882: 4c21 ldr r4, [pc, #132] ; (908 ) - /* Use CGU_SRC_XTAL as clock source for APB1 */ - CGU_BASE_APB1_CLK = CGU_BASE_APB1_CLK_AUTOBLOCK - | CGU_BASE_APB1_CLK_CLK_SEL(CGU_SRC_XTAL); - - /* Use CGU_SRC_XTAL as clock source for APB3 */ - CGU_BASE_APB3_CLK = CGU_BASE_APB3_CLK_AUTOBLOCK - 884: 6015 str r5, [r2, #0] - * CLK5 -> NC - * CLK6 -> NC - * CLK7 -> LPC4370 Main Clock xxMHz. - */ - /* Configure I2C0 (for SI5351C) to about 375kHz (12MHz/(2*16)=0.375MHz) when we switch over to APB1 clock = 12MHz */ - i2c0_init(16); - 886: f000 fc59 bl 113c - - if (si5351c_disable_oeb_pin_control() == true) - 88a: f000 fbc3 bl 1014 - /* SI5351C detected continue init using AirSpy NOS configuration */ - addr = (uint32_t)&airspy_nos_conf; - addr = (addr | ROMFLASH_BASE_ADDR); /* Fix with Addr from ROMFLASH */ - src = (unsigned char *)addr; - /* Copy the configuration from Flash to SRAM */ - for (dest = (unsigned char *)airspy_conf; (uint32_t)dest < (((uint32_t)airspy_conf) + AIRSPY_CONF_MAX_DATA_SIZE); ) - 88e: 4f1f ldr r7, [pc, #124] ; (90c ) - 890: 6823 ldr r3, [r4, #0] - 892: 19d9 adds r1, r3, r7 - * CLK7 -> LPC4370 Main Clock xxMHz. - */ - /* Configure I2C0 (for SI5351C) to about 375kHz (12MHz/(2*16)=0.375MHz) when we switch over to APB1 clock = 12MHz */ - i2c0_init(16); - - if (si5351c_disable_oeb_pin_control() == true) - 894: 2800 cmp r0, #0 - 896: f000 81ed beq.w c74 - { - /* SI5351C detected continue init using AirSpy NOS configuration */ - addr = (uint32_t)&airspy_nos_conf; - addr = (addr | ROMFLASH_BASE_ADDR); /* Fix with Addr from ROMFLASH */ - 89a: 4e1d ldr r6, [pc, #116] ; (910 ) - src = (unsigned char *)addr; - /* Copy the configuration from Flash to SRAM */ - for (dest = (unsigned char *)airspy_conf; (uint32_t)dest < (((uint32_t)airspy_conf) + AIRSPY_CONF_MAX_DATA_SIZE); ) - 89c: 428b cmp r3, r1 - - if (si5351c_disable_oeb_pin_control() == true) - { - /* SI5351C detected continue init using AirSpy NOS configuration */ - addr = (uint32_t)&airspy_nos_conf; - addr = (addr | ROMFLASH_BASE_ADDR); /* Fix with Addr from ROMFLASH */ - 89e: f046 4600 orr.w r6, r6, #2147483648 ; 0x80000000 - src = (unsigned char *)addr; - /* Copy the configuration from Flash to SRAM */ - for (dest = (unsigned char *)airspy_conf; (uint32_t)dest < (((uint32_t)airspy_conf) + AIRSPY_CONF_MAX_DATA_SIZE); ) - 8a2: 4618 mov r0, r3 - 8a4: f080 823b bcs.w d1e -/* -Configure PLL1 to min speed (48MHz) => see cpu_clock_pll1_low_speed() . -Configure PLL0USB @480MHz for USB0. -Note: PLL1 clock is used by M4/M0 core, Peripheral, APB1, APB3. -*/ -void sys_clock_init(void) - 8a8: 1a1a subs r2, r3, r0 - addr = (addr | ROMFLASH_BASE_ADDR); /* Fix with Addr from ROMFLASH */ - src = (unsigned char *)addr; - /* Copy the configuration from Flash to SRAM */ - for (dest = (unsigned char *)airspy_conf; (uint32_t)dest < (((uint32_t)airspy_conf) + AIRSPY_CONF_MAX_DATA_SIZE); ) - { - *dest++ = *src++; - 8aa: 5d91 ldrb r1, [r2, r6] - 8ac: f803 1b01 strb.w r1, [r3], #1 - /* SI5351C detected continue init using AirSpy NOS configuration */ - addr = (uint32_t)&airspy_nos_conf; - addr = (addr | ROMFLASH_BASE_ADDR); /* Fix with Addr from ROMFLASH */ - src = (unsigned char *)addr; - /* Copy the configuration from Flash to SRAM */ - for (dest = (unsigned char *)airspy_conf; (uint32_t)dest < (((uint32_t)airspy_conf) + AIRSPY_CONF_MAX_DATA_SIZE); ) - 8b0: 6825 ldr r5, [r4, #0] - 8b2: 19ea adds r2, r5, r7 - 8b4: 4293 cmp r3, r2 - 8b6: d3f7 bcc.n 8a8 - addr += (sizeof_struct_u16 * nb_struct_u16); - /* 3rd Expansion Conf Point SI5351C Addr */ - airspy_conf->si5351c_config = (si5351c_conf_t*)addr; - - /* Set default r820t_conf_rw.if_freq to airspy_m0_m4_conf[0] => r820t_if_freq */ - airspy_conf->r820t_conf_rw.if_freq = airspy_conf->airspy_m0_m4_conf[0].airspy_m0_conf.r820t_if_freq; - 8b8: f8d5 309c ldr.w r3, [r5, #156] ; 0x9c - /* 1st Expansion Conf Point M0/M4 Addr */ - airspy_conf->airspy_m0_m4_conf = (airspy_m0_m4_conf_t*)addr; - sizeof_struct_u16 = airspy_conf->sizeof_airspy_m0_m4_conf_t; - nb_struct_u16 = airspy_conf->nb_airspy_m0_m4_conf_t; - - addr += (sizeof_struct_u16 * nb_struct_u16); - 8bc: f8b5 1074 ldrh.w r1, [r5, #116] ; 0x74 - addr += (sizeof_struct_u16 * nb_struct_u16); - /* 3rd Expansion Conf Point SI5351C Addr */ - airspy_conf->si5351c_config = (si5351c_conf_t*)addr; - - /* Set default r820t_conf_rw.if_freq to airspy_m0_m4_conf[0] => r820t_if_freq */ - airspy_conf->r820t_conf_rw.if_freq = airspy_conf->airspy_m0_m4_conf[0].airspy_m0_conf.r820t_if_freq; - 8c0: 652b str r3, [r5, #80] ; 0x50 - /* 1st Expansion Conf Point M0/M4 Addr */ - airspy_conf->airspy_m0_m4_conf = (airspy_m0_m4_conf_t*)addr; - sizeof_struct_u16 = airspy_conf->sizeof_airspy_m0_m4_conf_t; - nb_struct_u16 = airspy_conf->nb_airspy_m0_m4_conf_t; - - addr += (sizeof_struct_u16 * nb_struct_u16); - 8c2: f8b5 e076 ldrh.w lr, [r5, #118] ; 0x76 - /* 2nd Expansion Conf Point M0/M4 ALT Addr */ - airspy_conf->airspy_m0_m4_alt_conf = (airspy_m0_m4_conf_t*)addr; - sizeof_struct_u16 = airspy_conf->sizeof_airspy_m0_m4_alt_conf_t; - nb_struct_u16 = airspy_conf->nb_airspy_m0_m4_alt_conf_t; - - addr += (sizeof_struct_u16 * nb_struct_u16); - 8c6: f8b5 707e ldrh.w r7, [r5, #126] ; 0x7e - 8ca: f8b5 607c ldrh.w r6, [r5, #124] ; 0x7c - airspy_calib_flash = (airspy_calib_t*)(addr); - airspy_calib.header = airspy_calib_flash->header; - airspy_calib.timestamp = airspy_calib_flash->timestamp; - airspy_calib.correction_ppb = airspy_calib_flash->correction_ppb; - - if((airspy_conf->conf_hw.hardware_type & HW_FEATURE_SI5351C) == HW_FEATURE_SI5351C) - 8ce: 6868 ldr r0, [r5, #4] - airspy_conf->r820t_conf_rw.if_freq = airspy_conf->airspy_m0_m4_conf[0].airspy_m0_conf.r820t_if_freq; - - /* Load calibration data */ - addr = (ROMFLASH_BASE_ADDR + AIRSPY_FLASH_CALIB_OFFSET); /* Addr from Flash Configuration 0 (Calibration Data) */ - airspy_calib_flash = (airspy_calib_t*)(addr); - airspy_calib.header = airspy_calib_flash->header; - 8d0: 2300 movs r3, #0 - 8d2: f2c8 0302 movt r3, #32770 ; 0x8002 - *dest++ = *src++; - } - } - - /* Compute & update 1st, 2nd & 3rd Expansion Conf Point Addr */ - addr = ((uint32_t)(&airspy_conf->si5351c_config)) + (sizeof(void *)); - 8d6: f105 028c add.w r2, r5, #140 ; 0x8c - /* 1st Expansion Conf Point M0/M4 Addr */ - airspy_conf->airspy_m0_m4_conf = (airspy_m0_m4_conf_t*)addr; - sizeof_struct_u16 = airspy_conf->sizeof_airspy_m0_m4_conf_t; - nb_struct_u16 = airspy_conf->nb_airspy_m0_m4_conf_t; - - addr += (sizeof_struct_u16 * nb_struct_u16); - 8da: fb0e 2101 mla r1, lr, r1, r2 - /* 2nd Expansion Conf Point M0/M4 ALT Addr */ - airspy_conf->airspy_m0_m4_alt_conf = (airspy_m0_m4_conf_t*)addr; - sizeof_struct_u16 = airspy_conf->sizeof_airspy_m0_m4_alt_conf_t; - nb_struct_u16 = airspy_conf->nb_airspy_m0_m4_alt_conf_t; - - addr += (sizeof_struct_u16 * nb_struct_u16); - 8de: fb07 1606 mla r6, r7, r6, r1 - /* Load calibration data */ - addr = (ROMFLASH_BASE_ADDR + AIRSPY_FLASH_CALIB_OFFSET); /* Addr from Flash Configuration 0 (Calibration Data) */ - airspy_calib_flash = (airspy_calib_t*)(addr); - airspy_calib.header = airspy_calib_flash->header; - airspy_calib.timestamp = airspy_calib_flash->timestamp; - airspy_calib.correction_ppb = airspy_calib_flash->correction_ppb; - 8e2: f8d3 8008 ldr.w r8, [r3, #8] - airspy_conf->r820t_conf_rw.if_freq = airspy_conf->airspy_m0_m4_conf[0].airspy_m0_conf.r820t_if_freq; - - /* Load calibration data */ - addr = (ROMFLASH_BASE_ADDR + AIRSPY_FLASH_CALIB_OFFSET); /* Addr from Flash Configuration 0 (Calibration Data) */ - airspy_calib_flash = (airspy_calib_t*)(addr); - airspy_calib.header = airspy_calib_flash->header; - 8e6: 681f ldr r7, [r3, #0] - } - - /* Compute & update 1st, 2nd & 3rd Expansion Conf Point Addr */ - addr = ((uint32_t)(&airspy_conf->si5351c_config)) + (sizeof(void *)); - /* 1st Expansion Conf Point M0/M4 Addr */ - airspy_conf->airspy_m0_m4_conf = (airspy_m0_m4_conf_t*)addr; - 8e8: 67aa str r2, [r5, #120] ; 0x78 - airspy_calib_flash = (airspy_calib_t*)(addr); - airspy_calib.header = airspy_calib_flash->header; - airspy_calib.timestamp = airspy_calib_flash->timestamp; - airspy_calib.correction_ppb = airspy_calib_flash->correction_ppb; - - if((airspy_conf->conf_hw.hardware_type & HW_FEATURE_SI5351C) == HW_FEATURE_SI5351C) - 8ea: 0783 lsls r3, r0, #30 - sizeof_struct_u16 = airspy_conf->sizeof_airspy_m0_m4_conf_t; - nb_struct_u16 = airspy_conf->nb_airspy_m0_m4_conf_t; - - addr += (sizeof_struct_u16 * nb_struct_u16); - /* 2nd Expansion Conf Point M0/M4 ALT Addr */ - airspy_conf->airspy_m0_m4_alt_conf = (airspy_m0_m4_conf_t*)addr; - 8ec: f8c5 1080 str.w r1, [r5, #128] ; 0x80 - sizeof_struct_u16 = airspy_conf->sizeof_airspy_m0_m4_alt_conf_t; - nb_struct_u16 = airspy_conf->nb_airspy_m0_m4_alt_conf_t; - - addr += (sizeof_struct_u16 * nb_struct_u16); - /* 3rd Expansion Conf Point SI5351C Addr */ - airspy_conf->si5351c_config = (si5351c_conf_t*)addr; - 8f0: f8c5 6088 str.w r6, [r5, #136] ; 0x88 - airspy_calib_flash = (airspy_calib_t*)(addr); - airspy_calib.header = airspy_calib_flash->header; - airspy_calib.timestamp = airspy_calib_flash->timestamp; - airspy_calib.correction_ppb = airspy_calib_flash->correction_ppb; - - if((airspy_conf->conf_hw.hardware_type & HW_FEATURE_SI5351C) == HW_FEATURE_SI5351C) - 8f4: f100 81cd bmi.w c92 - delay(WAIT_CPU_CLOCK_INIT_DELAY); - si5351c_read[3] = si5351c_read_single(0); - }else - { - /* Check calibration is valid / enabled */ - if(airspy_calib.header == AIRSPY_FLASH_CALIB_HEADER) - 8f8: 2201 movs r2, #1 - 8fa: f6cc 221b movt r2, #51739 ; 0xca1b - 8fe: 4297 cmp r7, r2 - 900: f000 81f8 beq.w cf4 - 904: e006 b.n 914 - 906: bf00 nop - 908: 10080018 .word 0x10080018 - 90c: 00000c00 .word 0x00000c00 - 910: 000050dc .word 0x000050dc - - /* ********************************************************************* */ - /* M4/M0 core, Peripheral, APB1, APB3 Configuration (PLL1 clock source) */ - /* ********************************************************************* */ - /* Configure PLL1 with CGU_SRC_GP_CLKIN as source clock */ - cpu_clock_pll1_low_speed(&pt_airspy_sys_conf->pll1_ls); - 914: f105 003c add.w r0, r5, #60 ; 0x3c - 918: f7ff ff6a bl 7f0 - - /* Configure I2C0 (for SI5351C) to 400kHz when we switch over to APB1 clock = PLL1 */ - i2c0_init(airspy_conf->i2c_conf.i2c0_pll1_ls_hs_conf_val); - 91c: 6826 ldr r6, [r4, #0] - 91e: 8b30 ldrh r0, [r6, #24] - 920: f000 fc0c bl 113c - /* Configure I2C1 (for R820T) to 400kHz when we switch over to APB3 clock = PLL1 */ - i2c1_init(airspy_conf->i2c_conf.i2c1_pll1_ls_conf_val); - 924: 6820 ldr r0, [r4, #0] - 926: 8b80 ldrh r0, [r0, #28] - 928: f000 fc28 bl 117c - - /* ************************************************** */ - /* Connect PLL1 to M4/M0 core, Peripheral, APB1, APB3 */ - /* ************************************************** */ - /* Use PLL1 as clock source for BASE_M4_CLK (CPU) */ - CGU_BASE_M4_CLK = (CGU_BASE_M4_CLK_CLK_SEL(CGU_SRC_PLL1) | CGU_BASE_M4_CLK_AUTOBLOCK); - 92c: f04f 096c mov.w r9, #108 ; 0x6c - - /* Switch peripheral clock over to use PLL1 */ - CGU_BASE_PERIPH_CLK = CGU_BASE_PERIPH_CLK_AUTOBLOCK - 930: f04f 0c64 mov.w ip, #100 ; 0x64 - | CGU_BASE_PERIPH_CLK_CLK_SEL(CGU_SRC_PLL1); - - /* Switch APB1 clock over to use PLL1 */ - CGU_BASE_APB1_CLK = CGU_BASE_APB1_CLK_AUTOBLOCK - 934: 2780 movs r7, #128 ; 0x80 - | CGU_BASE_APB1_CLK_CLK_SEL(CGU_SRC_PLL1); - - /* Switch APB3 clock over to use PLL1 */ - CGU_BASE_APB3_CLK = CGU_BASE_APB3_CLK_AUTOBLOCK - 936: 2684 movs r6, #132 ; 0x84 - - /* **************************************************** */ - /* PLL0USB & USB0 Configuration (GP_CLKIN clock source) */ - /* **************************************************** */ - /* Use CGU_SRC_GP_CLKIN as clock source for PLL0USB */ - CGU_PLL0USB_CTRL = CGU_PLL0USB_CTRL_PD - 938: 2120 movs r1, #32 - - /* ************************************************** */ - /* Connect PLL1 to M4/M0 core, Peripheral, APB1, APB3 */ - /* ************************************************** */ - /* Use PLL1 as clock source for BASE_M4_CLK (CPU) */ - CGU_BASE_M4_CLK = (CGU_BASE_M4_CLK_CLK_SEL(CGU_SRC_PLL1) | CGU_BASE_M4_CLK_AUTOBLOCK); - 93a: f2c4 0905 movt r9, #16389 ; 0x4005 - 93e: f44f 6300 mov.w r3, #2048 ; 0x800 - - /* Switch peripheral clock over to use PLL1 */ - CGU_BASE_PERIPH_CLK = CGU_BASE_PERIPH_CLK_AUTOBLOCK - 942: f2c4 0c05 movt ip, #16389 ; 0x4005 - | CGU_BASE_PERIPH_CLK_CLK_SEL(CGU_SRC_PLL1); - - /* Switch APB1 clock over to use PLL1 */ - CGU_BASE_APB1_CLK = CGU_BASE_APB1_CLK_AUTOBLOCK - 946: f2c4 0705 movt r7, #16389 ; 0x4005 - | CGU_BASE_APB1_CLK_CLK_SEL(CGU_SRC_PLL1); - - /* Switch APB3 clock over to use PLL1 */ - CGU_BASE_APB3_CLK = CGU_BASE_APB3_CLK_AUTOBLOCK - 94a: f2c4 0605 movt r6, #16389 ; 0x4005 - - /* **************************************************** */ - /* PLL0USB & USB0 Configuration (GP_CLKIN clock source) */ - /* **************************************************** */ - /* Use CGU_SRC_GP_CLKIN as clock source for PLL0USB */ - CGU_PLL0USB_CTRL = CGU_PLL0USB_CTRL_PD - 94e: f2c4 0105 movt r1, #16389 ; 0x4005 - 952: f640 0001 movw r0, #2049 ; 0x801 - - /* ************************************************** */ - /* Connect PLL1 to M4/M0 core, Peripheral, APB1, APB3 */ - /* ************************************************** */ - /* Use PLL1 as clock source for BASE_M4_CLK (CPU) */ - CGU_BASE_M4_CLK = (CGU_BASE_M4_CLK_CLK_SEL(CGU_SRC_PLL1) | CGU_BASE_M4_CLK_AUTOBLOCK); - 956: f6c0 1300 movt r3, #2304 ; 0x900 - - /* **************************************************** */ - /* PLL0USB & USB0 Configuration (GP_CLKIN clock source) */ - /* **************************************************** */ - /* Use CGU_SRC_GP_CLKIN as clock source for PLL0USB */ - CGU_PLL0USB_CTRL = CGU_PLL0USB_CTRL_PD - 95a: f2c0 4000 movt r0, #1024 ; 0x400 - | CGU_PLL0USB_CTRL_AUTOBLOCK - | CGU_PLL0USB_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN); - while (CGU_PLL0USB_STAT & CGU_PLL0USB_STAT_LOCK); - 95e: 221c movs r2, #28 - - /* ************************************************** */ - /* Connect PLL1 to M4/M0 core, Peripheral, APB1, APB3 */ - /* ************************************************** */ - /* Use PLL1 as clock source for BASE_M4_CLK (CPU) */ - CGU_BASE_M4_CLK = (CGU_BASE_M4_CLK_CLK_SEL(CGU_SRC_PLL1) | CGU_BASE_M4_CLK_AUTOBLOCK); - 960: f8c9 3000 str.w r3, [r9] - /* **************************************************** */ - /* Use CGU_SRC_GP_CLKIN as clock source for PLL0USB */ - CGU_PLL0USB_CTRL = CGU_PLL0USB_CTRL_PD - | CGU_PLL0USB_CTRL_AUTOBLOCK - | CGU_PLL0USB_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN); - while (CGU_PLL0USB_STAT & CGU_PLL0USB_STAT_LOCK); - 964: f2c4 0205 movt r2, #16389 ; 0x4005 - /* ************************************************** */ - /* Use PLL1 as clock source for BASE_M4_CLK (CPU) */ - CGU_BASE_M4_CLK = (CGU_BASE_M4_CLK_CLK_SEL(CGU_SRC_PLL1) | CGU_BASE_M4_CLK_AUTOBLOCK); - - /* Switch peripheral clock over to use PLL1 */ - CGU_BASE_PERIPH_CLK = CGU_BASE_PERIPH_CLK_AUTOBLOCK - 968: f8cc 3000 str.w r3, [ip] - | CGU_BASE_PERIPH_CLK_CLK_SEL(CGU_SRC_PLL1); - - /* Switch APB1 clock over to use PLL1 */ - CGU_BASE_APB1_CLK = CGU_BASE_APB1_CLK_AUTOBLOCK - 96c: 603b str r3, [r7, #0] - | CGU_BASE_APB1_CLK_CLK_SEL(CGU_SRC_PLL1); - - /* Switch APB3 clock over to use PLL1 */ - CGU_BASE_APB3_CLK = CGU_BASE_APB3_CLK_AUTOBLOCK - 96e: 6033 str r3, [r6, #0] - - /* **************************************************** */ - /* PLL0USB & USB0 Configuration (GP_CLKIN clock source) */ - /* **************************************************** */ - /* Use CGU_SRC_GP_CLKIN as clock source for PLL0USB */ - CGU_PLL0USB_CTRL = CGU_PLL0USB_CTRL_PD - 970: 6008 str r0, [r1, #0] - | CGU_PLL0USB_CTRL_AUTOBLOCK - | CGU_PLL0USB_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN); - while (CGU_PLL0USB_STAT & CGU_PLL0USB_STAT_LOCK); - 972: 6817 ldr r7, [r2, #0] - 974: 07fe lsls r6, r7, #31 - 976: d4fc bmi.n 972 - - /* configure PLL0USB to produce 480 MHz clock from CGU_SRC_GP_CLKIN */ - CGU_PLL0USB_MDIV = pt_airspy_sys_conf->pll0_usb_mdiv; - 978: 2624 movs r6, #36 ; 0x24 - 97a: 6a69 ldr r1, [r5, #36] ; 0x24 - 97c: f2c4 0605 movt r6, #16389 ; 0x4005 - CGU_PLL0USB_NP_DIV = pt_airspy_sys_conf->pll0_usb_npdiv; - 980: 2028 movs r0, #40 ; 0x28 - | CGU_PLL0USB_CTRL_AUTOBLOCK - | CGU_PLL0USB_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN); - while (CGU_PLL0USB_STAT & CGU_PLL0USB_STAT_LOCK); - - /* configure PLL0USB to produce 480 MHz clock from CGU_SRC_GP_CLKIN */ - CGU_PLL0USB_MDIV = pt_airspy_sys_conf->pll0_usb_mdiv; - 982: 6031 str r1, [r6, #0] - CGU_PLL0USB_NP_DIV = pt_airspy_sys_conf->pll0_usb_npdiv; - 984: 6aaa ldr r2, [r5, #40] ; 0x28 - 986: f2c4 0005 movt r0, #16389 ; 0x4005 - CGU_PLL0USB_CTRL |= (CGU_PLL0USB_CTRL_PD - 98a: 2320 movs r3, #32 - 98c: f2c4 0305 movt r3, #16389 ; 0x4005 - | CGU_PLL0USB_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN); - while (CGU_PLL0USB_STAT & CGU_PLL0USB_STAT_LOCK); - - /* configure PLL0USB to produce 480 MHz clock from CGU_SRC_GP_CLKIN */ - CGU_PLL0USB_MDIV = pt_airspy_sys_conf->pll0_usb_mdiv; - CGU_PLL0USB_NP_DIV = pt_airspy_sys_conf->pll0_usb_npdiv; - 990: 6002 str r2, [r0, #0] - CGU_PLL0USB_CTRL |= (CGU_PLL0USB_CTRL_PD - 992: 681f ldr r7, [r3, #0] - 994: 6aed ldr r5, [r5, #44] ; 0x2c - 996: ea47 0605 orr.w r6, r7, r5 - 99a: f046 0111 orr.w r1, r6, #17 - 99e: 6019 str r1, [r3, #0] - | pt_airspy_sys_conf->pll0usb_ctrl_flags - | CGU_PLL0USB_CTRL_CLKEN); - - /* Power on PLL0USB and wait until stable */ - CGU_PLL0USB_CTRL &= ~CGU_PLL0USB_CTRL_PD; - 9a0: 6818 ldr r0, [r3, #0] - while (!(CGU_PLL0USB_STAT & CGU_PLL0USB_STAT_LOCK)); - 9a2: 221c movs r2, #28 - CGU_PLL0USB_CTRL |= (CGU_PLL0USB_CTRL_PD - | pt_airspy_sys_conf->pll0usb_ctrl_flags - | CGU_PLL0USB_CTRL_CLKEN); - - /* Power on PLL0USB and wait until stable */ - CGU_PLL0USB_CTRL &= ~CGU_PLL0USB_CTRL_PD; - 9a4: f020 0701 bic.w r7, r0, #1 - 9a8: 601f str r7, [r3, #0] - while (!(CGU_PLL0USB_STAT & CGU_PLL0USB_STAT_LOCK)); - 9aa: f2c4 0205 movt r2, #16389 ; 0x4005 - 9ae: 6813 ldr r3, [r2, #0] - 9b0: 07dd lsls r5, r3, #31 - 9b2: d5fc bpl.n 9ae - - /* Use PLL0USB as clock source for USB0 */ - CGU_BASE_USB0_CLK = CGU_BASE_USB0_CLK_AUTOBLOCK - 9b4: 2560 movs r5, #96 ; 0x60 - 9b6: f2c4 0505 movt r5, #16389 ; 0x4005 - 9ba: f44f 6600 mov.w r6, #2048 ; 0x800 - | CGU_BASE_USB0_CLK_CLK_SEL(CGU_SRC_PLL0USB); - - /* ****************************************** */ - /* Disable/PowerDown unused clock/peripherals */ - /* ****************************************** */ - CREG_CREG6 |= (1<<17); // PowerDown RNG - 9be: f243 112c movw r1, #12588 ; 0x312c - 9c2: f2c4 0104 movt r1, #16388 ; 0x4004 - /* Power on PLL0USB and wait until stable */ - CGU_PLL0USB_CTRL &= ~CGU_PLL0USB_CTRL_PD; - while (!(CGU_PLL0USB_STAT & CGU_PLL0USB_STAT_LOCK)); - - /* Use PLL0USB as clock source for USB0 */ - CGU_BASE_USB0_CLK = CGU_BASE_USB0_CLK_AUTOBLOCK - 9c6: f2c0 7600 movt r6, #1792 ; 0x700 - // CGU_BASE_M4_CLK is used - CGU_BASE_SPIFI_CLK = CGU_BASE_SPIFI_CLK_PD; - /* Switch off SPI clock */ - CGU_BASE_SPI_CLK = CGU_BASE_SPI_CLK_PD; - /* Switch off PHY RX & TX clock */ - CGU_BASE_PHY_RX_CLK = CGU_BASE_PHY_RX_CLK_PD; - 9ca: 2778 movs r7, #120 ; 0x78 - /* Power on PLL0USB and wait until stable */ - CGU_PLL0USB_CTRL &= ~CGU_PLL0USB_CTRL_PD; - while (!(CGU_PLL0USB_STAT & CGU_PLL0USB_STAT_LOCK)); - - /* Use PLL0USB as clock source for USB0 */ - CGU_BASE_USB0_CLK = CGU_BASE_USB0_CLK_AUTOBLOCK - 9cc: 602e str r6, [r5, #0] - // CGU_BASE_M4_CLK is used - CGU_BASE_SPIFI_CLK = CGU_BASE_SPIFI_CLK_PD; - /* Switch off SPI clock */ - CGU_BASE_SPI_CLK = CGU_BASE_SPI_CLK_PD; - /* Switch off PHY RX & TX clock */ - CGU_BASE_PHY_RX_CLK = CGU_BASE_PHY_RX_CLK_PD; - 9ce: f2c4 0705 movt r7, #16389 ; 0x4005 - | CGU_BASE_USB0_CLK_CLK_SEL(CGU_SRC_PLL0USB); - - /* ****************************************** */ - /* Disable/PowerDown unused clock/peripherals */ - /* ****************************************** */ - CREG_CREG6 |= (1<<17); // PowerDown RNG - 9d2: 6808 ldr r0, [r1, #0] - // CGU_BASE_M4_CLK is used - CGU_BASE_SPIFI_CLK = CGU_BASE_SPIFI_CLK_PD; - /* Switch off SPI clock */ - CGU_BASE_SPI_CLK = CGU_BASE_SPI_CLK_PD; - /* Switch off PHY RX & TX clock */ - CGU_BASE_PHY_RX_CLK = CGU_BASE_PHY_RX_CLK_PD; - 9d4: 9703 str r7, [sp, #12] - // CGU_BASE_APB3_CLK is used for I2C1 - /* Switch off LCD clock */ - CGU_BASE_LCD_CLK = CGU_BASE_LCD_CLK_PD; - // CGU_BASE_ADCHS_CLK is used - /* Switch off SDIO clock */ - CGU_BASE_SDIO_CLK = CGU_BASE_SDIO_CLK_PD; - 9d6: 2790 movs r7, #144 ; 0x90 - /* Switch off USB1 clock */ - CGU_BASE_USB1_CLK = CGU_BASE_USB1_CLK_PD; - // CGU_BASE_M4_CLK is used - CGU_BASE_SPIFI_CLK = CGU_BASE_SPIFI_CLK_PD; - /* Switch off SPI clock */ - CGU_BASE_SPI_CLK = CGU_BASE_SPI_CLK_PD; - 9d8: 2274 movs r2, #116 ; 0x74 - /* Switch off PHY RX & TX clock */ - CGU_BASE_PHY_RX_CLK = CGU_BASE_PHY_RX_CLK_PD; - CGU_BASE_PHY_TX_CLK = CGU_BASE_PHY_TX_CLK_PD; - 9da: 237c movs r3, #124 ; 0x7c - // CGU_BASE_APB3_CLK is used for I2C1 - /* Switch off LCD clock */ - CGU_BASE_LCD_CLK = CGU_BASE_LCD_CLK_PD; - // CGU_BASE_ADCHS_CLK is used - /* Switch off SDIO clock */ - CGU_BASE_SDIO_CLK = CGU_BASE_SDIO_CLK_PD; - 9dc: f2c4 0705 movt r7, #16389 ; 0x4005 - 9e0: 9706 str r7, [sp, #24] - /* Switch off USB1 clock */ - CGU_BASE_USB1_CLK = CGU_BASE_USB1_CLK_PD; - // CGU_BASE_M4_CLK is used - CGU_BASE_SPIFI_CLK = CGU_BASE_SPIFI_CLK_PD; - /* Switch off SPI clock */ - CGU_BASE_SPI_CLK = CGU_BASE_SPI_CLK_PD; - 9e2: f2c4 0205 movt r2, #16389 ; 0x4005 - /* Switch off PHY RX & TX clock */ - CGU_BASE_PHY_RX_CLK = CGU_BASE_PHY_RX_CLK_PD; - CGU_BASE_PHY_TX_CLK = CGU_BASE_PHY_TX_CLK_PD; - 9e6: f2c4 0305 movt r3, #16389 ; 0x4005 - CGU_BASE_SDIO_CLK = CGU_BASE_SDIO_CLK_PD; - CGU_BASE_SSP0_CLK = CGU_BASE_SSP0_CLK_PD; - /* Switch off SSP1 clock */ - CGU_BASE_SSP1_CLK = CGU_BASE_SSP1_CLK_PD; - /* Switch off UART0 to 3 clock */ - CGU_BASE_UART0_CLK = CGU_BASE_UART0_CLK_PD; - 9ea: 279c movs r7, #156 ; 0x9c - /* Switch off USB1 clock */ - CGU_BASE_USB1_CLK = CGU_BASE_USB1_CLK_PD; - // CGU_BASE_M4_CLK is used - CGU_BASE_SPIFI_CLK = CGU_BASE_SPIFI_CLK_PD; - /* Switch off SPI clock */ - CGU_BASE_SPI_CLK = CGU_BASE_SPI_CLK_PD; - 9ec: 9201 str r2, [sp, #4] - /* Switch off PHY RX & TX clock */ - CGU_BASE_PHY_RX_CLK = CGU_BASE_PHY_RX_CLK_PD; - CGU_BASE_PHY_TX_CLK = CGU_BASE_PHY_TX_CLK_PD; - 9ee: 9304 str r3, [sp, #16] - // CGU_BASE_APB1_CLK is used for I2C0 - // CGU_BASE_APB3_CLK is used for I2C1 - /* Switch off LCD clock */ - CGU_BASE_LCD_CLK = CGU_BASE_LCD_CLK_PD; - 9f0: 2288 movs r2, #136 ; 0x88 - // CGU_BASE_ADCHS_CLK is used - /* Switch off SDIO clock */ - CGU_BASE_SDIO_CLK = CGU_BASE_SDIO_CLK_PD; - CGU_BASE_SSP0_CLK = CGU_BASE_SSP0_CLK_PD; - 9f2: 2394 movs r3, #148 ; 0x94 - /* Switch off SSP1 clock */ - CGU_BASE_SSP1_CLK = CGU_BASE_SSP1_CLK_PD; - /* Switch off UART0 to 3 clock */ - CGU_BASE_UART0_CLK = CGU_BASE_UART0_CLK_PD; - 9f4: f2c4 0705 movt r7, #16389 ; 0x4005 - 9f8: 9709 str r7, [sp, #36] ; 0x24 - CGU_BASE_PHY_RX_CLK = CGU_BASE_PHY_RX_CLK_PD; - CGU_BASE_PHY_TX_CLK = CGU_BASE_PHY_TX_CLK_PD; - // CGU_BASE_APB1_CLK is used for I2C0 - // CGU_BASE_APB3_CLK is used for I2C1 - /* Switch off LCD clock */ - CGU_BASE_LCD_CLK = CGU_BASE_LCD_CLK_PD; - 9fa: f2c4 0205 movt r2, #16389 ; 0x4005 - // CGU_BASE_ADCHS_CLK is used - /* Switch off SDIO clock */ - CGU_BASE_SDIO_CLK = CGU_BASE_SDIO_CLK_PD; - CGU_BASE_SSP0_CLK = CGU_BASE_SSP0_CLK_PD; - 9fe: f2c4 0305 movt r3, #16389 ; 0x4005 - CGU_BASE_SSP1_CLK = CGU_BASE_SSP1_CLK_PD; - /* Switch off UART0 to 3 clock */ - CGU_BASE_UART0_CLK = CGU_BASE_UART0_CLK_PD; - CGU_BASE_UART1_CLK = CGU_BASE_UART1_CLK_PD; - CGU_BASE_UART2_CLK = CGU_BASE_UART2_CLK_PD; - CGU_BASE_UART3_CLK = CGU_BASE_UART3_CLK_PD; - a02: 27a8 movs r7, #168 ; 0xa8 - CGU_BASE_PHY_RX_CLK = CGU_BASE_PHY_RX_CLK_PD; - CGU_BASE_PHY_TX_CLK = CGU_BASE_PHY_TX_CLK_PD; - // CGU_BASE_APB1_CLK is used for I2C0 - // CGU_BASE_APB3_CLK is used for I2C1 - /* Switch off LCD clock */ - CGU_BASE_LCD_CLK = CGU_BASE_LCD_CLK_PD; - a04: 9205 str r2, [sp, #20] - // CGU_BASE_ADCHS_CLK is used - /* Switch off SDIO clock */ - CGU_BASE_SDIO_CLK = CGU_BASE_SDIO_CLK_PD; - CGU_BASE_SSP0_CLK = CGU_BASE_SSP0_CLK_PD; - a06: 9307 str r3, [sp, #28] - /* Switch off SSP1 clock */ - CGU_BASE_SSP1_CLK = CGU_BASE_SSP1_CLK_PD; - a08: 2298 movs r2, #152 ; 0x98 - /* Switch off UART0 to 3 clock */ - CGU_BASE_UART0_CLK = CGU_BASE_UART0_CLK_PD; - CGU_BASE_UART1_CLK = CGU_BASE_UART1_CLK_PD; - a0a: 23a0 movs r3, #160 ; 0xa0 - CGU_BASE_UART2_CLK = CGU_BASE_UART2_CLK_PD; - CGU_BASE_UART3_CLK = CGU_BASE_UART3_CLK_PD; - a0c: f2c4 0705 movt r7, #16389 ; 0x4005 - a10: 970c str r7, [sp, #48] ; 0x30 - // CGU_BASE_ADCHS_CLK is used - /* Switch off SDIO clock */ - CGU_BASE_SDIO_CLK = CGU_BASE_SDIO_CLK_PD; - CGU_BASE_SSP0_CLK = CGU_BASE_SSP0_CLK_PD; - /* Switch off SSP1 clock */ - CGU_BASE_SSP1_CLK = CGU_BASE_SSP1_CLK_PD; - a12: f2c4 0205 movt r2, #16389 ; 0x4005 - /* Switch off UART0 to 3 clock */ - CGU_BASE_UART0_CLK = CGU_BASE_UART0_CLK_PD; - CGU_BASE_UART1_CLK = CGU_BASE_UART1_CLK_PD; - a16: f2c4 0305 movt r3, #16389 ; 0x4005 - CGU_BASE_UART3_CLK = CGU_BASE_UART3_CLK_PD; - /* Switch off OUT clocks */ - CGU_BASE_OUT_CLK = CGU_BASE_OUT_CLK_PD; - /* Reserved/Undocumented clocks power down */ - CGU_OUTCLK_21_CTRL = 1; - CGU_OUTCLK_22_CTRL = 1; - a1a: 27b4 movs r7, #180 ; 0xb4 - // CGU_BASE_ADCHS_CLK is used - /* Switch off SDIO clock */ - CGU_BASE_SDIO_CLK = CGU_BASE_SDIO_CLK_PD; - CGU_BASE_SSP0_CLK = CGU_BASE_SSP0_CLK_PD; - /* Switch off SSP1 clock */ - CGU_BASE_SSP1_CLK = CGU_BASE_SSP1_CLK_PD; - a1c: 9208 str r2, [sp, #32] - /* Switch off UART0 to 3 clock */ - CGU_BASE_UART0_CLK = CGU_BASE_UART0_CLK_PD; - CGU_BASE_UART1_CLK = CGU_BASE_UART1_CLK_PD; - a1e: 930a str r3, [sp, #40] ; 0x28 - CGU_BASE_UART2_CLK = CGU_BASE_UART2_CLK_PD; - a20: 22a4 movs r2, #164 ; 0xa4 - CGU_BASE_UART3_CLK = CGU_BASE_UART3_CLK_PD; - /* Switch off OUT clocks */ - CGU_BASE_OUT_CLK = CGU_BASE_OUT_CLK_PD; - a22: 23ac movs r3, #172 ; 0xac - /* Reserved/Undocumented clocks power down */ - CGU_OUTCLK_21_CTRL = 1; - CGU_OUTCLK_22_CTRL = 1; - a24: f2c4 0705 movt r7, #16389 ; 0x4005 - a28: 970f str r7, [sp, #60] ; 0x3c - /* Switch off SSP1 clock */ - CGU_BASE_SSP1_CLK = CGU_BASE_SSP1_CLK_PD; - /* Switch off UART0 to 3 clock */ - CGU_BASE_UART0_CLK = CGU_BASE_UART0_CLK_PD; - CGU_BASE_UART1_CLK = CGU_BASE_UART1_CLK_PD; - CGU_BASE_UART2_CLK = CGU_BASE_UART2_CLK_PD; - a2a: f2c4 0205 movt r2, #16389 ; 0x4005 - CGU_BASE_UART3_CLK = CGU_BASE_UART3_CLK_PD; - /* Switch off OUT clocks */ - CGU_BASE_OUT_CLK = CGU_BASE_OUT_CLK_PD; - a2e: f2c4 0305 movt r3, #16389 ; 0x4005 - CGU_OUTCLK_21_CTRL = 1; - CGU_OUTCLK_22_CTRL = 1; - CGU_OUTCLK_23_CTRL = 1; - CGU_OUTCLK_24_CTRL = 1; - /* Switch off AUDIO clock */ - CGU_BASE_APLL_CLK = CGU_BASE_APLL_CLK_PD; - a32: 27c0 movs r7, #192 ; 0xc0 - | CGU_BASE_USB0_CLK_CLK_SEL(CGU_SRC_PLL0USB); - - /* ****************************************** */ - /* Disable/PowerDown unused clock/peripherals */ - /* ****************************************** */ - CREG_CREG6 |= (1<<17); // PowerDown RNG - a34: 9002 str r0, [sp, #8] - /* Switch off SSP1 clock */ - CGU_BASE_SSP1_CLK = CGU_BASE_SSP1_CLK_PD; - /* Switch off UART0 to 3 clock */ - CGU_BASE_UART0_CLK = CGU_BASE_UART0_CLK_PD; - CGU_BASE_UART1_CLK = CGU_BASE_UART1_CLK_PD; - CGU_BASE_UART2_CLK = CGU_BASE_UART2_CLK_PD; - a36: 920b str r2, [sp, #44] ; 0x2c - CGU_BASE_UART3_CLK = CGU_BASE_UART3_CLK_PD; - /* Switch off OUT clocks */ - CGU_BASE_OUT_CLK = CGU_BASE_OUT_CLK_PD; - a38: 930d str r3, [sp, #52] ; 0x34 - /* Reserved/Undocumented clocks power down */ - CGU_OUTCLK_21_CTRL = 1; - a3a: 22b0 movs r2, #176 ; 0xb0 - CGU_OUTCLK_22_CTRL = 1; - CGU_OUTCLK_23_CTRL = 1; - a3c: 23b8 movs r3, #184 ; 0xb8 - CGU_OUTCLK_24_CTRL = 1; - /* Switch off AUDIO clock */ - CGU_BASE_APLL_CLK = CGU_BASE_APLL_CLK_PD; - a3e: f2c4 0705 movt r7, #16389 ; 0x4005 - a42: 9712 str r7, [sp, #72] ; 0x48 - CGU_BASE_UART2_CLK = CGU_BASE_UART2_CLK_PD; - CGU_BASE_UART3_CLK = CGU_BASE_UART3_CLK_PD; - /* Switch off OUT clocks */ - CGU_BASE_OUT_CLK = CGU_BASE_OUT_CLK_PD; - /* Reserved/Undocumented clocks power down */ - CGU_OUTCLK_21_CTRL = 1; - a44: f2c4 0205 movt r2, #16389 ; 0x4005 - | CGU_BASE_USB0_CLK_CLK_SEL(CGU_SRC_PLL0USB); - - /* ****************************************** */ - /* Disable/PowerDown unused clock/peripherals */ - /* ****************************************** */ - CREG_CREG6 |= (1<<17); // PowerDown RNG - a48: 9f02 ldr r7, [sp, #8] - CGU_BASE_UART2_CLK = CGU_BASE_UART2_CLK_PD; - CGU_BASE_UART3_CLK = CGU_BASE_UART3_CLK_PD; - /* Switch off OUT clocks */ - CGU_BASE_OUT_CLK = CGU_BASE_OUT_CLK_PD; - /* Reserved/Undocumented clocks power down */ - CGU_OUTCLK_21_CTRL = 1; - a4a: 920e str r2, [sp, #56] ; 0x38 - CGU_OUTCLK_22_CTRL = 1; - CGU_OUTCLK_23_CTRL = 1; - a4c: f2c4 0305 movt r3, #16389 ; 0x4005 - a50: 9310 str r3, [sp, #64] ; 0x40 - CGU_OUTCLK_24_CTRL = 1; - a52: 22bc movs r2, #188 ; 0xbc - /* Switch off AUDIO clock */ - CGU_BASE_APLL_CLK = CGU_BASE_APLL_CLK_PD; - CGU_BASE_CGU_OUT0_CLK = CGU_BASE_CGU_OUT0_CLK_PD; - a54: 23c4 movs r3, #196 ; 0xc4 - CGU_BASE_OUT_CLK = CGU_BASE_OUT_CLK_PD; - /* Reserved/Undocumented clocks power down */ - CGU_OUTCLK_21_CTRL = 1; - CGU_OUTCLK_22_CTRL = 1; - CGU_OUTCLK_23_CTRL = 1; - CGU_OUTCLK_24_CTRL = 1; - a56: f2c4 0205 movt r2, #16389 ; 0x4005 - /* Switch off AUDIO clock */ - CGU_BASE_APLL_CLK = CGU_BASE_APLL_CLK_PD; - CGU_BASE_CGU_OUT0_CLK = CGU_BASE_CGU_OUT0_CLK_PD; - a5a: f2c4 0305 movt r3, #16389 ; 0x4005 - | CGU_BASE_USB0_CLK_CLK_SEL(CGU_SRC_PLL0USB); - - /* ****************************************** */ - /* Disable/PowerDown unused clock/peripherals */ - /* ****************************************** */ - CREG_CREG6 |= (1<<17); // PowerDown RNG - a5e: f447 3700 orr.w r7, r7, #131072 ; 0x20000 - - /* Disable XTAL because GP_CLKIN is used from SI5351C instead */ - /* Switch off the oscillator */ - CGU_XTAL_OSC_CTRL = CGU_XTAL_OSC_CTRL_ENABLE; - a62: f04f 0a18 mov.w sl, #24 - - CGU_BASE_SAFE_CLK = CGU_BASE_USB1_CLK_PD; - a66: f04f 095c mov.w r9, #92 ; 0x5c - // CGU_BASE_USB0_CLK is used for USB0 HS - // CGU_BASE_M0_CLK is used - /* Switch off USB1 clock */ - CGU_BASE_USB1_CLK = CGU_BASE_USB1_CLK_PD; - a6a: f04f 0868 mov.w r8, #104 ; 0x68 - // CGU_BASE_M4_CLK is used - CGU_BASE_SPIFI_CLK = CGU_BASE_SPIFI_CLK_PD; - a6e: f04f 0e70 mov.w lr, #112 ; 0x70 - CGU_BASE_OUT_CLK = CGU_BASE_OUT_CLK_PD; - /* Reserved/Undocumented clocks power down */ - CGU_OUTCLK_21_CTRL = 1; - CGU_OUTCLK_22_CTRL = 1; - CGU_OUTCLK_23_CTRL = 1; - CGU_OUTCLK_24_CTRL = 1; - a72: 9211 str r2, [sp, #68] ; 0x44 - /* Switch off AUDIO clock */ - CGU_BASE_APLL_CLK = CGU_BASE_APLL_CLK_PD; - CGU_BASE_CGU_OUT0_CLK = CGU_BASE_CGU_OUT0_CLK_PD; - a74: 9313 str r3, [sp, #76] ; 0x4c - /* ****************************************** */ - CREG_CREG6 |= (1<<17); // PowerDown RNG - - /* Disable XTAL because GP_CLKIN is used from SI5351C instead */ - /* Switch off the oscillator */ - CGU_XTAL_OSC_CTRL = CGU_XTAL_OSC_CTRL_ENABLE; - a76: f2c4 0a05 movt sl, #16389 ; 0x4005 - | CGU_BASE_USB0_CLK_CLK_SEL(CGU_SRC_PLL0USB); - - /* ****************************************** */ - /* Disable/PowerDown unused clock/peripherals */ - /* ****************************************** */ - CREG_CREG6 |= (1<<17); // PowerDown RNG - a7a: 600f str r7, [r1, #0] - - /* Disable XTAL because GP_CLKIN is used from SI5351C instead */ - /* Switch off the oscillator */ - CGU_XTAL_OSC_CTRL = CGU_XTAL_OSC_CTRL_ENABLE; - - CGU_BASE_SAFE_CLK = CGU_BASE_USB1_CLK_PD; - a7c: f2c4 0905 movt r9, #16389 ; 0x4005 - /* Switch off USB1 clock */ - CGU_BASE_USB1_CLK = CGU_BASE_USB1_CLK_PD; - // CGU_BASE_M4_CLK is used - CGU_BASE_SPIFI_CLK = CGU_BASE_SPIFI_CLK_PD; - /* Switch off SPI clock */ - CGU_BASE_SPI_CLK = CGU_BASE_SPI_CLK_PD; - a80: 9901 ldr r1, [sp, #4] - /* Switch off PHY RX & TX clock */ - CGU_BASE_PHY_RX_CLK = CGU_BASE_PHY_RX_CLK_PD; - a82: 9f03 ldr r7, [sp, #12] - - CGU_BASE_SAFE_CLK = CGU_BASE_USB1_CLK_PD; - // CGU_BASE_USB0_CLK is used for USB0 HS - // CGU_BASE_M0_CLK is used - /* Switch off USB1 clock */ - CGU_BASE_USB1_CLK = CGU_BASE_USB1_CLK_PD; - a84: f2c4 0805 movt r8, #16389 ; 0x4005 - // CGU_BASE_M4_CLK is used - CGU_BASE_SPIFI_CLK = CGU_BASE_SPIFI_CLK_PD; - a88: f2c4 0e05 movt lr, #16389 ; 0x4005 - /* ****************************************** */ - CREG_CREG6 |= (1<<17); // PowerDown RNG - - /* Disable XTAL because GP_CLKIN is used from SI5351C instead */ - /* Switch off the oscillator */ - CGU_XTAL_OSC_CTRL = CGU_XTAL_OSC_CTRL_ENABLE; - a8c: 2301 movs r3, #1 - a8e: f8ca 3000 str.w r3, [sl] - - CGU_BASE_SAFE_CLK = CGU_BASE_USB1_CLK_PD; - a92: f8c9 3000 str.w r3, [r9] - // CGU_BASE_USB0_CLK is used for USB0 HS - // CGU_BASE_M0_CLK is used - /* Switch off USB1 clock */ - CGU_BASE_USB1_CLK = CGU_BASE_USB1_CLK_PD; - a96: f8c8 3000 str.w r3, [r8] - // CGU_BASE_M4_CLK is used - CGU_BASE_SPIFI_CLK = CGU_BASE_SPIFI_CLK_PD; - a9a: f8ce 3000 str.w r3, [lr] - /* Switch off SPI clock */ - CGU_BASE_SPI_CLK = CGU_BASE_SPI_CLK_PD; - a9e: 600b str r3, [r1, #0] - /* Switch off PHY RX & TX clock */ - CGU_BASE_PHY_RX_CLK = CGU_BASE_PHY_RX_CLK_PD; - aa0: 603b str r3, [r7, #0] - CGU_BASE_PHY_TX_CLK = CGU_BASE_PHY_TX_CLK_PD; - aa2: 9904 ldr r1, [sp, #16] - // CGU_BASE_APB1_CLK is used for I2C0 - // CGU_BASE_APB3_CLK is used for I2C1 - /* Switch off LCD clock */ - CGU_BASE_LCD_CLK = CGU_BASE_LCD_CLK_PD; - aa4: 9f05 ldr r7, [sp, #20] - CGU_BASE_SPIFI_CLK = CGU_BASE_SPIFI_CLK_PD; - /* Switch off SPI clock */ - CGU_BASE_SPI_CLK = CGU_BASE_SPI_CLK_PD; - /* Switch off PHY RX & TX clock */ - CGU_BASE_PHY_RX_CLK = CGU_BASE_PHY_RX_CLK_PD; - CGU_BASE_PHY_TX_CLK = CGU_BASE_PHY_TX_CLK_PD; - aa6: 600b str r3, [r1, #0] - // CGU_BASE_APB1_CLK is used for I2C0 - // CGU_BASE_APB3_CLK is used for I2C1 - /* Switch off LCD clock */ - CGU_BASE_LCD_CLK = CGU_BASE_LCD_CLK_PD; - aa8: 603b str r3, [r7, #0] - // CGU_BASE_ADCHS_CLK is used - /* Switch off SDIO clock */ - CGU_BASE_SDIO_CLK = CGU_BASE_SDIO_CLK_PD; - aaa: 9906 ldr r1, [sp, #24] - CGU_BASE_SSP0_CLK = CGU_BASE_SSP0_CLK_PD; - aac: 9f07 ldr r7, [sp, #28] - // CGU_BASE_APB3_CLK is used for I2C1 - /* Switch off LCD clock */ - CGU_BASE_LCD_CLK = CGU_BASE_LCD_CLK_PD; - // CGU_BASE_ADCHS_CLK is used - /* Switch off SDIO clock */ - CGU_BASE_SDIO_CLK = CGU_BASE_SDIO_CLK_PD; - aae: 600b str r3, [r1, #0] - CGU_BASE_SSP0_CLK = CGU_BASE_SSP0_CLK_PD; - ab0: 603b str r3, [r7, #0] - /* Switch off SSP1 clock */ - CGU_BASE_SSP1_CLK = CGU_BASE_SSP1_CLK_PD; - ab2: 9908 ldr r1, [sp, #32] - /* Switch off UART0 to 3 clock */ - CGU_BASE_UART0_CLK = CGU_BASE_UART0_CLK_PD; - ab4: 9f09 ldr r7, [sp, #36] ; 0x24 - // CGU_BASE_ADCHS_CLK is used - /* Switch off SDIO clock */ - CGU_BASE_SDIO_CLK = CGU_BASE_SDIO_CLK_PD; - CGU_BASE_SSP0_CLK = CGU_BASE_SSP0_CLK_PD; - /* Switch off SSP1 clock */ - CGU_BASE_SSP1_CLK = CGU_BASE_SSP1_CLK_PD; - ab6: 600b str r3, [r1, #0] - /* Switch off UART0 to 3 clock */ - CGU_BASE_UART0_CLK = CGU_BASE_UART0_CLK_PD; - ab8: 603b str r3, [r7, #0] - CGU_BASE_UART1_CLK = CGU_BASE_UART1_CLK_PD; - aba: 990a ldr r1, [sp, #40] ; 0x28 - CGU_BASE_UART2_CLK = CGU_BASE_UART2_CLK_PD; - abc: 9f0b ldr r7, [sp, #44] ; 0x2c - CGU_BASE_SSP0_CLK = CGU_BASE_SSP0_CLK_PD; - /* Switch off SSP1 clock */ - CGU_BASE_SSP1_CLK = CGU_BASE_SSP1_CLK_PD; - /* Switch off UART0 to 3 clock */ - CGU_BASE_UART0_CLK = CGU_BASE_UART0_CLK_PD; - CGU_BASE_UART1_CLK = CGU_BASE_UART1_CLK_PD; - abe: 600b str r3, [r1, #0] - CGU_BASE_UART2_CLK = CGU_BASE_UART2_CLK_PD; - ac0: 603b str r3, [r7, #0] - CGU_BASE_UART3_CLK = CGU_BASE_UART3_CLK_PD; - ac2: 990c ldr r1, [sp, #48] ; 0x30 - /* Switch off OUT clocks */ - CGU_BASE_OUT_CLK = CGU_BASE_OUT_CLK_PD; - ac4: 9f0d ldr r7, [sp, #52] ; 0x34 - CGU_BASE_SSP1_CLK = CGU_BASE_SSP1_CLK_PD; - /* Switch off UART0 to 3 clock */ - CGU_BASE_UART0_CLK = CGU_BASE_UART0_CLK_PD; - CGU_BASE_UART1_CLK = CGU_BASE_UART1_CLK_PD; - CGU_BASE_UART2_CLK = CGU_BASE_UART2_CLK_PD; - CGU_BASE_UART3_CLK = CGU_BASE_UART3_CLK_PD; - ac6: 600b str r3, [r1, #0] - /* Switch off OUT clocks */ - CGU_BASE_OUT_CLK = CGU_BASE_OUT_CLK_PD; - ac8: 603b str r3, [r7, #0] - /* Reserved/Undocumented clocks power down */ - CGU_OUTCLK_21_CTRL = 1; - aca: 990e ldr r1, [sp, #56] ; 0x38 - CGU_OUTCLK_22_CTRL = 1; - acc: 9f0f ldr r7, [sp, #60] ; 0x3c - CGU_BASE_UART2_CLK = CGU_BASE_UART2_CLK_PD; - CGU_BASE_UART3_CLK = CGU_BASE_UART3_CLK_PD; - /* Switch off OUT clocks */ - CGU_BASE_OUT_CLK = CGU_BASE_OUT_CLK_PD; - /* Reserved/Undocumented clocks power down */ - CGU_OUTCLK_21_CTRL = 1; - ace: 600b str r3, [r1, #0] - CGU_OUTCLK_22_CTRL = 1; - ad0: 603b str r3, [r7, #0] - CGU_OUTCLK_23_CTRL = 1; - ad2: 9910 ldr r1, [sp, #64] ; 0x40 - CGU_OUTCLK_24_CTRL = 1; - ad4: 9f11 ldr r7, [sp, #68] ; 0x44 - /* Switch off OUT clocks */ - CGU_BASE_OUT_CLK = CGU_BASE_OUT_CLK_PD; - /* Reserved/Undocumented clocks power down */ - CGU_OUTCLK_21_CTRL = 1; - CGU_OUTCLK_22_CTRL = 1; - CGU_OUTCLK_23_CTRL = 1; - ad6: 600b str r3, [r1, #0] - /* Switch off AUDIO clock */ - CGU_BASE_APLL_CLK = CGU_BASE_APLL_CLK_PD; - CGU_BASE_CGU_OUT0_CLK = CGU_BASE_CGU_OUT0_CLK_PD; - CGU_BASE_CGU_OUT1_CLK = CGU_BASE_CGU_OUT1_CLK_PD; - /* Switch off IDIV C,D,E disabled */ - CGU_IDIVC_CTRL = CGU_IDIVC_CTRL_PD; - ad8: 2650 movs r6, #80 ; 0x50 - CGU_IDIVD_CTRL = CGU_IDIVD_CTRL_PD; - ada: 2554 movs r5, #84 ; 0x54 - CGU_IDIVE_CTRL = CGU_IDIVE_CTRL_PD; - adc: 2058 movs r0, #88 ; 0x58 - CGU_OUTCLK_23_CTRL = 1; - CGU_OUTCLK_24_CTRL = 1; - /* Switch off AUDIO clock */ - CGU_BASE_APLL_CLK = CGU_BASE_APLL_CLK_PD; - CGU_BASE_CGU_OUT0_CLK = CGU_BASE_CGU_OUT0_CLK_PD; - CGU_BASE_CGU_OUT1_CLK = CGU_BASE_CGU_OUT1_CLK_PD; - ade: f04f 0bc8 mov.w fp, #200 ; 0xc8 - CGU_BASE_OUT_CLK = CGU_BASE_OUT_CLK_PD; - /* Reserved/Undocumented clocks power down */ - CGU_OUTCLK_21_CTRL = 1; - CGU_OUTCLK_22_CTRL = 1; - CGU_OUTCLK_23_CTRL = 1; - CGU_OUTCLK_24_CTRL = 1; - ae2: 603b str r3, [r7, #0] - /* Switch off AUDIO clock */ - CGU_BASE_APLL_CLK = CGU_BASE_APLL_CLK_PD; - ae4: 9912 ldr r1, [sp, #72] ; 0x48 - CGU_BASE_CGU_OUT0_CLK = CGU_BASE_CGU_OUT0_CLK_PD; - ae6: 9f13 ldr r7, [sp, #76] ; 0x4c - CGU_OUTCLK_21_CTRL = 1; - CGU_OUTCLK_22_CTRL = 1; - CGU_OUTCLK_23_CTRL = 1; - CGU_OUTCLK_24_CTRL = 1; - /* Switch off AUDIO clock */ - CGU_BASE_APLL_CLK = CGU_BASE_APLL_CLK_PD; - ae8: 600b str r3, [r1, #0] - CGU_BASE_CGU_OUT0_CLK = CGU_BASE_CGU_OUT0_CLK_PD; - CGU_BASE_CGU_OUT1_CLK = CGU_BASE_CGU_OUT1_CLK_PD; - aea: f2c4 0b05 movt fp, #16389 ; 0x4005 - /* Switch off IDIV C,D,E disabled */ - CGU_IDIVC_CTRL = CGU_IDIVC_CTRL_PD; - aee: f2c4 0605 movt r6, #16389 ; 0x4005 - CGU_IDIVD_CTRL = CGU_IDIVD_CTRL_PD; - af2: f2c4 0505 movt r5, #16389 ; 0x4005 - CGU_IDIVE_CTRL = CGU_IDIVE_CTRL_PD; - af6: f2c4 0005 movt r0, #16389 ; 0x4005 -/* - // Power down M4 branches, but not BUS, GPIO, CREG and M0 & M4 CORE clock -*/ - //CCU1_CLK_M4_BUS_CFG &= ~(1); - CCU1_CLK_M4_SPIFI_CFG &= ~(1); - afa: f241 4208 movw r2, #5128 ; 0x1408 - afe: f2c4 0205 movt r2, #16389 ; 0x4005 - CGU_OUTCLK_22_CTRL = 1; - CGU_OUTCLK_23_CTRL = 1; - CGU_OUTCLK_24_CTRL = 1; - /* Switch off AUDIO clock */ - CGU_BASE_APLL_CLK = CGU_BASE_APLL_CLK_PD; - CGU_BASE_CGU_OUT0_CLK = CGU_BASE_CGU_OUT0_CLK_PD; - b02: 603b str r3, [r7, #0] - CGU_BASE_CGU_OUT1_CLK = CGU_BASE_CGU_OUT1_CLK_PD; - b04: f8cb 3000 str.w r3, [fp] - /* Switch off IDIV C,D,E disabled */ - CGU_IDIVC_CTRL = CGU_IDIVC_CTRL_PD; - b08: 6033 str r3, [r6, #0] - CGU_IDIVD_CTRL = CGU_IDIVD_CTRL_PD; - b0a: 602b str r3, [r5, #0] - CGU_IDIVE_CTRL = CGU_IDIVE_CTRL_PD; - b0c: 6003 str r3, [r0, #0] -/* - // Power down M4 branches, but not BUS, GPIO, CREG and M0 & M4 CORE clock -*/ - //CCU1_CLK_M4_BUS_CFG &= ~(1); - CCU1_CLK_M4_SPIFI_CFG &= ~(1); - b0e: 6810 ldr r0, [r2, #0] - //CCU1_CLK_M4_GPIO_CFG &= ~(1); - CCU1_CLK_M4_LCD_CFG &= ~(1); - b10: f241 4318 movw r3, #5144 ; 0x1418 - b14: f2c4 0305 movt r3, #16389 ; 0x4005 - CGU_IDIVE_CTRL = CGU_IDIVE_CTRL_PD; -/* - // Power down M4 branches, but not BUS, GPIO, CREG and M0 & M4 CORE clock -*/ - //CCU1_CLK_M4_BUS_CFG &= ~(1); - CCU1_CLK_M4_SPIFI_CFG &= ~(1); - b18: f020 0101 bic.w r1, r0, #1 - b1c: 6011 str r1, [r2, #0] - //CCU1_CLK_M4_GPIO_CFG &= ~(1); - CCU1_CLK_M4_LCD_CFG &= ~(1); - b1e: 6818 ldr r0, [r3, #0] - CCU1_CLK_M4_ETHERNET_CFG &= ~(1); - b20: f44f 52a1 mov.w r2, #5152 ; 0x1420 - b24: f2c4 0205 movt r2, #16389 ; 0x4005 - // Power down M4 branches, but not BUS, GPIO, CREG and M0 & M4 CORE clock -*/ - //CCU1_CLK_M4_BUS_CFG &= ~(1); - CCU1_CLK_M4_SPIFI_CFG &= ~(1); - //CCU1_CLK_M4_GPIO_CFG &= ~(1); - CCU1_CLK_M4_LCD_CFG &= ~(1); - b28: f020 0101 bic.w r1, r0, #1 - b2c: 6019 str r1, [r3, #0] - CCU1_CLK_M4_ETHERNET_CFG &= ~(1); - b2e: 6810 ldr r0, [r2, #0] - //CCU1_CLK_M4_USB0_CFG &= ~(1); - CCU1_CLK_M4_EMC_CFG &= ~(1); - b30: f241 4330 movw r3, #5168 ; 0x1430 - b34: f2c4 0305 movt r3, #16389 ; 0x4005 -*/ - //CCU1_CLK_M4_BUS_CFG &= ~(1); - CCU1_CLK_M4_SPIFI_CFG &= ~(1); - //CCU1_CLK_M4_GPIO_CFG &= ~(1); - CCU1_CLK_M4_LCD_CFG &= ~(1); - CCU1_CLK_M4_ETHERNET_CFG &= ~(1); - b38: f020 0101 bic.w r1, r0, #1 - b3c: 6011 str r1, [r2, #0] - //CCU1_CLK_M4_USB0_CFG &= ~(1); - CCU1_CLK_M4_EMC_CFG &= ~(1); - b3e: 6818 ldr r0, [r3, #0] - CCU1_CLK_M4_SDIO_CFG &= ~(1); - b40: f241 4238 movw r2, #5176 ; 0x1438 - b44: f2c4 0205 movt r2, #16389 ; 0x4005 - CCU1_CLK_M4_SPIFI_CFG &= ~(1); - //CCU1_CLK_M4_GPIO_CFG &= ~(1); - CCU1_CLK_M4_LCD_CFG &= ~(1); - CCU1_CLK_M4_ETHERNET_CFG &= ~(1); - //CCU1_CLK_M4_USB0_CFG &= ~(1); - CCU1_CLK_M4_EMC_CFG &= ~(1); - b48: f020 0101 bic.w r1, r0, #1 - b4c: 6019 str r1, [r3, #0] - CCU1_CLK_M4_SDIO_CFG &= ~(1); - b4e: 6810 ldr r0, [r2, #0] - //CCU1_CLK_M4_DMA_CFG &= ~(1); - //CCU1_CLK_M4_M4CORE_CFG &= ~(1); - CCU1_CLK_M4_SCT_CFG &= ~(1); - b50: f241 4368 movw r3, #5224 ; 0x1468 - b54: f2c4 0305 movt r3, #16389 ; 0x4005 - //CCU1_CLK_M4_GPIO_CFG &= ~(1); - CCU1_CLK_M4_LCD_CFG &= ~(1); - CCU1_CLK_M4_ETHERNET_CFG &= ~(1); - //CCU1_CLK_M4_USB0_CFG &= ~(1); - CCU1_CLK_M4_EMC_CFG &= ~(1); - CCU1_CLK_M4_SDIO_CFG &= ~(1); - b58: f020 0101 bic.w r1, r0, #1 - b5c: 6011 str r1, [r2, #0] - //CCU1_CLK_M4_DMA_CFG &= ~(1); - //CCU1_CLK_M4_M4CORE_CFG &= ~(1); - CCU1_CLK_M4_SCT_CFG &= ~(1); - b5e: 6818 ldr r0, [r3, #0] - CCU1_CLK_M4_USB1_CFG &= ~(1); - b60: f241 4270 movw r2, #5232 ; 0x1470 - b64: f2c4 0205 movt r2, #16389 ; 0x4005 - //CCU1_CLK_M4_USB0_CFG &= ~(1); - CCU1_CLK_M4_EMC_CFG &= ~(1); - CCU1_CLK_M4_SDIO_CFG &= ~(1); - //CCU1_CLK_M4_DMA_CFG &= ~(1); - //CCU1_CLK_M4_M4CORE_CFG &= ~(1); - CCU1_CLK_M4_SCT_CFG &= ~(1); - b68: f020 0101 bic.w r1, r0, #1 - b6c: 6019 str r1, [r3, #0] - CCU1_CLK_M4_USB1_CFG &= ~(1); - b6e: 6810 ldr r0, [r2, #0] - CCU1_CLK_M4_EMCDIV_CFG &= ~(1); - b70: f241 4378 movw r3, #5240 ; 0x1478 - b74: f2c4 0305 movt r3, #16389 ; 0x4005 - CCU1_CLK_M4_EMC_CFG &= ~(1); - CCU1_CLK_M4_SDIO_CFG &= ~(1); - //CCU1_CLK_M4_DMA_CFG &= ~(1); - //CCU1_CLK_M4_M4CORE_CFG &= ~(1); - CCU1_CLK_M4_SCT_CFG &= ~(1); - CCU1_CLK_M4_USB1_CFG &= ~(1); - b78: f020 0101 bic.w r1, r0, #1 - b7c: 6011 str r1, [r2, #0] - CCU1_CLK_M4_EMCDIV_CFG &= ~(1); - b7e: 6818 ldr r0, [r3, #0] - //CCU1_CLK_M4_M0APP_CFG &= ~(1); - //CCU1_CLK_M4_VADC_CFG &= ~(1); - CCU1_CLK_M4_WWDT_CFG &= ~(1); - b80: f44f 52a8 mov.w r2, #5376 ; 0x1500 - b84: f2c4 0205 movt r2, #16389 ; 0x4005 - CCU1_CLK_M4_SDIO_CFG &= ~(1); - //CCU1_CLK_M4_DMA_CFG &= ~(1); - //CCU1_CLK_M4_M4CORE_CFG &= ~(1); - CCU1_CLK_M4_SCT_CFG &= ~(1); - CCU1_CLK_M4_USB1_CFG &= ~(1); - CCU1_CLK_M4_EMCDIV_CFG &= ~(1); - b88: f020 0101 bic.w r1, r0, #1 - b8c: 6019 str r1, [r3, #0] - //CCU1_CLK_M4_M0APP_CFG &= ~(1); - //CCU1_CLK_M4_VADC_CFG &= ~(1); - CCU1_CLK_M4_WWDT_CFG &= ~(1); - b8e: 6810 ldr r0, [r2, #0] - CCU1_CLK_M4_USART0_CFG &= ~(1); - b90: f241 5308 movw r3, #5384 ; 0x1508 - b94: f2c4 0305 movt r3, #16389 ; 0x4005 - CCU1_CLK_M4_SCT_CFG &= ~(1); - CCU1_CLK_M4_USB1_CFG &= ~(1); - CCU1_CLK_M4_EMCDIV_CFG &= ~(1); - //CCU1_CLK_M4_M0APP_CFG &= ~(1); - //CCU1_CLK_M4_VADC_CFG &= ~(1); - CCU1_CLK_M4_WWDT_CFG &= ~(1); - b98: f020 0101 bic.w r1, r0, #1 - b9c: 6011 str r1, [r2, #0] - CCU1_CLK_M4_USART0_CFG &= ~(1); - b9e: 6818 ldr r0, [r3, #0] - CCU1_CLK_M4_UART1_CFG &= ~(1); - ba0: f241 5210 movw r2, #5392 ; 0x1510 - ba4: f2c4 0205 movt r2, #16389 ; 0x4005 - CCU1_CLK_M4_USB1_CFG &= ~(1); - CCU1_CLK_M4_EMCDIV_CFG &= ~(1); - //CCU1_CLK_M4_M0APP_CFG &= ~(1); - //CCU1_CLK_M4_VADC_CFG &= ~(1); - CCU1_CLK_M4_WWDT_CFG &= ~(1); - CCU1_CLK_M4_USART0_CFG &= ~(1); - ba8: f020 0101 bic.w r1, r0, #1 - bac: 6019 str r1, [r3, #0] - CCU1_CLK_M4_UART1_CFG &= ~(1); - bae: 6810 ldr r0, [r2, #0] - CCU1_CLK_M4_SSP0_CFG &= ~(1); - bb0: f241 5318 movw r3, #5400 ; 0x1518 - bb4: f2c4 0305 movt r3, #16389 ; 0x4005 - CCU1_CLK_M4_EMCDIV_CFG &= ~(1); - //CCU1_CLK_M4_M0APP_CFG &= ~(1); - //CCU1_CLK_M4_VADC_CFG &= ~(1); - CCU1_CLK_M4_WWDT_CFG &= ~(1); - CCU1_CLK_M4_USART0_CFG &= ~(1); - CCU1_CLK_M4_UART1_CFG &= ~(1); - bb8: f020 0101 bic.w r1, r0, #1 - bbc: 6011 str r1, [r2, #0] - CCU1_CLK_M4_SSP0_CFG &= ~(1); - bbe: 6818 ldr r0, [r3, #0] - CCU1_CLK_M4_SSP1_CFG &= ~(1); - bc0: f241 6228 movw r2, #5672 ; 0x1628 - bc4: f2c4 0205 movt r2, #16389 ; 0x4005 - //CCU1_CLK_M4_M0APP_CFG &= ~(1); - //CCU1_CLK_M4_VADC_CFG &= ~(1); - CCU1_CLK_M4_WWDT_CFG &= ~(1); - CCU1_CLK_M4_USART0_CFG &= ~(1); - CCU1_CLK_M4_UART1_CFG &= ~(1); - CCU1_CLK_M4_SSP0_CFG &= ~(1); - bc8: f020 0101 bic.w r1, r0, #1 - bcc: 6019 str r1, [r3, #0] - CCU1_CLK_M4_SSP1_CFG &= ~(1); - bce: 6810 ldr r0, [r2, #0] - CCU1_CLK_M4_TIMER0_CFG &= ~(1); - bd0: f44f 53a9 mov.w r3, #5408 ; 0x1520 - bd4: f2c4 0305 movt r3, #16389 ; 0x4005 - //CCU1_CLK_M4_VADC_CFG &= ~(1); - CCU1_CLK_M4_WWDT_CFG &= ~(1); - CCU1_CLK_M4_USART0_CFG &= ~(1); - CCU1_CLK_M4_UART1_CFG &= ~(1); - CCU1_CLK_M4_SSP0_CFG &= ~(1); - CCU1_CLK_M4_SSP1_CFG &= ~(1); - bd8: f020 0101 bic.w r1, r0, #1 - bdc: 6011 str r1, [r2, #0] - CCU1_CLK_M4_TIMER0_CFG &= ~(1); - bde: 6818 ldr r0, [r3, #0] - CCU1_CLK_M4_TIMER1_CFG &= ~(1); - be0: f241 5228 movw r2, #5416 ; 0x1528 - be4: f2c4 0205 movt r2, #16389 ; 0x4005 - CCU1_CLK_M4_WWDT_CFG &= ~(1); - CCU1_CLK_M4_USART0_CFG &= ~(1); - CCU1_CLK_M4_UART1_CFG &= ~(1); - CCU1_CLK_M4_SSP0_CFG &= ~(1); - CCU1_CLK_M4_SSP1_CFG &= ~(1); - CCU1_CLK_M4_TIMER0_CFG &= ~(1); - be8: f020 0101 bic.w r1, r0, #1 - bec: 6019 str r1, [r3, #0] - CCU1_CLK_M4_TIMER1_CFG &= ~(1); - bee: 6810 ldr r0, [r2, #0] - //CCU1_CLK_M4_SCU_CFG &= ~(1); - //CCU1_CLK_M4_CREG_CFG &= ~(1); - CCU1_CLK_M4_RITIMER_CFG &= ~(1); - bf0: f44f 53b0 mov.w r3, #5632 ; 0x1600 - bf4: f2c4 0305 movt r3, #16389 ; 0x4005 - CCU1_CLK_M4_USART0_CFG &= ~(1); - CCU1_CLK_M4_UART1_CFG &= ~(1); - CCU1_CLK_M4_SSP0_CFG &= ~(1); - CCU1_CLK_M4_SSP1_CFG &= ~(1); - CCU1_CLK_M4_TIMER0_CFG &= ~(1); - CCU1_CLK_M4_TIMER1_CFG &= ~(1); - bf8: f020 0101 bic.w r1, r0, #1 - bfc: 6011 str r1, [r2, #0] - //CCU1_CLK_M4_SCU_CFG &= ~(1); - //CCU1_CLK_M4_CREG_CFG &= ~(1); - CCU1_CLK_M4_RITIMER_CFG &= ~(1); - bfe: 6818 ldr r0, [r3, #0] - CCU1_CLK_M4_USART2_CFG &= ~(1); - c00: f241 6208 movw r2, #5640 ; 0x1608 - c04: f2c4 0205 movt r2, #16389 ; 0x4005 - CCU1_CLK_M4_SSP1_CFG &= ~(1); - CCU1_CLK_M4_TIMER0_CFG &= ~(1); - CCU1_CLK_M4_TIMER1_CFG &= ~(1); - //CCU1_CLK_M4_SCU_CFG &= ~(1); - //CCU1_CLK_M4_CREG_CFG &= ~(1); - CCU1_CLK_M4_RITIMER_CFG &= ~(1); - c08: f020 0101 bic.w r1, r0, #1 - c0c: 6019 str r1, [r3, #0] - CCU1_CLK_M4_USART2_CFG &= ~(1); - c0e: 6810 ldr r0, [r2, #0] - CCU1_CLK_M4_USART3_CFG &= ~(1); - c10: f241 6310 movw r3, #5648 ; 0x1610 - c14: f2c4 0305 movt r3, #16389 ; 0x4005 - CCU1_CLK_M4_TIMER0_CFG &= ~(1); - CCU1_CLK_M4_TIMER1_CFG &= ~(1); - //CCU1_CLK_M4_SCU_CFG &= ~(1); - //CCU1_CLK_M4_CREG_CFG &= ~(1); - CCU1_CLK_M4_RITIMER_CFG &= ~(1); - CCU1_CLK_M4_USART2_CFG &= ~(1); - c18: f020 0101 bic.w r1, r0, #1 - c1c: 6011 str r1, [r2, #0] - CCU1_CLK_M4_USART3_CFG &= ~(1); - c1e: 6818 ldr r0, [r3, #0] - CCU1_CLK_M4_TIMER2_CFG &= ~(1); - c20: f241 6218 movw r2, #5656 ; 0x1618 - c24: f2c4 0205 movt r2, #16389 ; 0x4005 - CCU1_CLK_M4_TIMER1_CFG &= ~(1); - //CCU1_CLK_M4_SCU_CFG &= ~(1); - //CCU1_CLK_M4_CREG_CFG &= ~(1); - CCU1_CLK_M4_RITIMER_CFG &= ~(1); - CCU1_CLK_M4_USART2_CFG &= ~(1); - CCU1_CLK_M4_USART3_CFG &= ~(1); - c28: f020 0101 bic.w r1, r0, #1 - c2c: 6019 str r1, [r3, #0] - CCU1_CLK_M4_TIMER2_CFG &= ~(1); - c2e: 6810 ldr r0, [r2, #0] - CCU1_CLK_M4_TIMER3_CFG &= ~(1); - c30: f44f 53b1 mov.w r3, #5664 ; 0x1620 - c34: f2c4 0305 movt r3, #16389 ; 0x4005 - //CCU1_CLK_M4_SCU_CFG &= ~(1); - //CCU1_CLK_M4_CREG_CFG &= ~(1); - CCU1_CLK_M4_RITIMER_CFG &= ~(1); - CCU1_CLK_M4_USART2_CFG &= ~(1); - CCU1_CLK_M4_USART3_CFG &= ~(1); - CCU1_CLK_M4_TIMER2_CFG &= ~(1); - c38: f020 0101 bic.w r1, r0, #1 - c3c: 6011 str r1, [r2, #0] - CCU1_CLK_M4_TIMER3_CFG &= ~(1); - c3e: 6818 ldr r0, [r3, #0] - - CCU1_CLK_M4_QEI_CFG &= ~(1); - c40: f241 6230 movw r2, #5680 ; 0x1630 - c44: f2c4 0205 movt r2, #16389 ; 0x4005 - //CCU1_CLK_M4_CREG_CFG &= ~(1); - CCU1_CLK_M4_RITIMER_CFG &= ~(1); - CCU1_CLK_M4_USART2_CFG &= ~(1); - CCU1_CLK_M4_USART3_CFG &= ~(1); - CCU1_CLK_M4_TIMER2_CFG &= ~(1); - CCU1_CLK_M4_TIMER3_CFG &= ~(1); - c48: f020 0101 bic.w r1, r0, #1 - c4c: 6019 str r1, [r3, #0] - - CCU1_CLK_M4_QEI_CFG &= ~(1); - c4e: 6810 ldr r0, [r2, #0] - CCU1_CLK_PERIPH_SGPIO_CFG &= ~(1); - - /* ******************************************** */ - /* ADCHS Configuration (GP_CLKIN clock source) */ - /* ******************************************** */ - sys_clock_samplerate(&airspy_conf->airspy_m0_m4_conf[0].airspy_m4_conf); - c50: 6821 ldr r1, [r4, #0] - CCU1_CLK_M4_TIMER2_CFG &= ~(1); - CCU1_CLK_M4_TIMER3_CFG &= ~(1); - - CCU1_CLK_M4_QEI_CFG &= ~(1); - - CCU1_CLK_PERIPH_SGPIO_CFG &= ~(1); - c52: f241 7318 movw r3, #5912 ; 0x1718 - c56: f2c4 0305 movt r3, #16389 ; 0x4005 - CCU1_CLK_M4_USART2_CFG &= ~(1); - CCU1_CLK_M4_USART3_CFG &= ~(1); - CCU1_CLK_M4_TIMER2_CFG &= ~(1); - CCU1_CLK_M4_TIMER3_CFG &= ~(1); - - CCU1_CLK_M4_QEI_CFG &= ~(1); - c5a: f020 0001 bic.w r0, r0, #1 - c5e: 6010 str r0, [r2, #0] - - CCU1_CLK_PERIPH_SGPIO_CFG &= ~(1); - c60: 681a ldr r2, [r3, #0] - - /* ******************************************** */ - /* ADCHS Configuration (GP_CLKIN clock source) */ - /* ******************************************** */ - sys_clock_samplerate(&airspy_conf->airspy_m0_m4_conf[0].airspy_m4_conf); - c62: 6f88 ldr r0, [r1, #120] ; 0x78 - CCU1_CLK_M4_TIMER2_CFG &= ~(1); - CCU1_CLK_M4_TIMER3_CFG &= ~(1); - - CCU1_CLK_M4_QEI_CFG &= ~(1); - - CCU1_CLK_PERIPH_SGPIO_CFG &= ~(1); - c64: f022 0101 bic.w r1, r2, #1 - c68: 6019 str r1, [r3, #0] - - /* ******************************************** */ - /* ADCHS Configuration (GP_CLKIN clock source) */ - /* ******************************************** */ - sys_clock_samplerate(&airspy_conf->airspy_m0_m4_conf[0].airspy_m4_conf); -} - c6a: b015 add sp, #84 ; 0x54 - c6c: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - CCU1_CLK_PERIPH_SGPIO_CFG &= ~(1); - - /* ******************************************** */ - /* ADCHS Configuration (GP_CLKIN clock source) */ - /* ******************************************** */ - sys_clock_samplerate(&airspy_conf->airspy_m0_m4_conf[0].airspy_m4_conf); - c70: f7ff bd64 b.w 73c - } - }else - { - /* SI5351C not detected continue init using AirSpy MINI configuration */ - addr = (uint32_t)&airspy_mini_conf; - addr = (addr | ROMFLASH_BASE_ADDR); /* Fix with Addr from ROMFLASH */ - c74: 4840 ldr r0, [pc, #256] ; (d78 ) - src = (unsigned char *)addr; - /* Copy the configuration from Flash to SRAM */ - for (dest = (unsigned char *)airspy_conf; (uint32_t)dest < (((uint32_t)airspy_conf) + AIRSPY_CONF_MAX_DATA_SIZE); ) - c76: 428b cmp r3, r1 - } - }else - { - /* SI5351C not detected continue init using AirSpy MINI configuration */ - addr = (uint32_t)&airspy_mini_conf; - addr = (addr | ROMFLASH_BASE_ADDR); /* Fix with Addr from ROMFLASH */ - c78: f040 4600 orr.w r6, r0, #2147483648 ; 0x80000000 - src = (unsigned char *)addr; - /* Copy the configuration from Flash to SRAM */ - for (dest = (unsigned char *)airspy_conf; (uint32_t)dest < (((uint32_t)airspy_conf) + AIRSPY_CONF_MAX_DATA_SIZE); ) - c7c: 4618 mov r0, r3 - c7e: d24e bcs.n d1e -/* -Configure PLL1 to min speed (48MHz) => see cpu_clock_pll1_low_speed() . -Configure PLL0USB @480MHz for USB0. -Note: PLL1 clock is used by M4/M0 core, Peripheral, APB1, APB3. -*/ -void sys_clock_init(void) - c80: 1a1a subs r2, r3, r0 - addr = (addr | ROMFLASH_BASE_ADDR); /* Fix with Addr from ROMFLASH */ - src = (unsigned char *)addr; - /* Copy the configuration from Flash to SRAM */ - for (dest = (unsigned char *)airspy_conf; (uint32_t)dest < (((uint32_t)airspy_conf) + AIRSPY_CONF_MAX_DATA_SIZE); ) - { - *dest++ = *src++; - c82: 5d95 ldrb r5, [r2, r6] - c84: f803 5b01 strb.w r5, [r3], #1 - /* SI5351C not detected continue init using AirSpy MINI configuration */ - addr = (uint32_t)&airspy_mini_conf; - addr = (addr | ROMFLASH_BASE_ADDR); /* Fix with Addr from ROMFLASH */ - src = (unsigned char *)addr; - /* Copy the configuration from Flash to SRAM */ - for (dest = (unsigned char *)airspy_conf; (uint32_t)dest < (((uint32_t)airspy_conf) + AIRSPY_CONF_MAX_DATA_SIZE); ) - c88: 6825 ldr r5, [r4, #0] - c8a: 19e9 adds r1, r5, r7 - c8c: 428b cmp r3, r1 - c8e: d3f7 bcc.n c80 - c90: e612 b.n 8b8 - if((airspy_conf->conf_hw.hardware_type & HW_FEATURE_SI5351C) == HW_FEATURE_SI5351C) - { - /* Programming the Si5351 via I2C - http://community.silabs.com/t5/Silicon-Labs-Knowledge-Base/Programming-the-Si5351-via-I2C/ta-p/112251 - */ - si5351c_disable_all_outputs(); - c92: f000 f9af bl ff4 - si5351c_init_fanout(); - c96: f000 fa0f bl 10b8 - si5351c_power_down_all_clocks(); - c9a: f000 f9f9 bl 1090 - si5351c_init_xtal(); - c9e: f000 fa19 bl 10d4 - si5351c_read[0] = si5351c_read_single(0); - ca2: 2000 movs r0, #0 - ca4: f000 f964 bl f70 - ca8: 4e34 ldr r6, [pc, #208] ; (d7c ) - caa: 7030 strb r0, [r6, #0] - - /* Configure and enable SI5351C clocks */ - si5351c_read[1] = (si5351c_read_single(0) & SI5351C_REG0_CLKIN_LOS); - cac: 2000 movs r0, #0 - cae: f000 f95f bl f70 - cb2: f000 0510 and.w r5, r0, #16 - cb6: b2ea uxtb r2, r5 - cb8: 7072 strb r2, [r6, #1] - - /* CLKIN Loss Of Signal (LOS) ? */ - if(si5351c_read[1] == SI5351C_REG0_CLKIN_LOS) - cba: bb92 cbnz r2, d22 - { - airspy_conf->r820t_conf_rw.xtal_freq = sys_calib_r820t(airspy_conf->r820t_conf_rw.xtal_freq, airspy_calib.correction_ppb); - } - }else - { - si5351c_airspy_config(&airspy_conf->si5351c_config[AIRSPY_SI5351C_CONFIG_CLKIN]); - cbc: 6820 ldr r0, [r4, #0] - cbe: f8d0 0088 ldr.w r0, [r0, #136] ; 0x88 - cc2: 30b4 adds r0, #180 ; 0xb4 - cc4: f000 f926 bl f14 - } - - si5351c_read[2] = si5351c_read_single(0); - cc8: 2000 movs r0, #0 - cca: f000 f951 bl f70 - - si5351c_init_pll_soft_reset(); - si5351c_enable_clock_outputs(); - cce: f242 7710 movw r7, #10000 ; 0x2710 - }else - { - si5351c_airspy_config(&airspy_conf->si5351c_config[AIRSPY_SI5351C_CONFIG_CLKIN]); - } - - si5351c_read[2] = si5351c_read_single(0); - cd2: 70b0 strb r0, [r6, #2] - - si5351c_init_pll_soft_reset(); - cd4: f000 fa0c bl 10f0 - si5351c_enable_clock_outputs(); - cd8: f000 fa18 bl 110c - cdc: 463a mov r2, r7 -void delay(uint32_t duration) -{ - uint32_t i; - - for (i = 0; i < duration; i++) - __asm__("nop"); - cde: bf00 nop - ce0: 1e55 subs r5, r2, #1 - ce2: bf00 nop - -void delay(uint32_t duration) -{ - uint32_t i; - - for (i = 0; i < duration; i++) - ce4: 1e6a subs r2, r5, #1 - ce6: d1fa bne.n cde - ce8: 4610 mov r0, r2 - si5351c_init_pll_soft_reset(); - si5351c_enable_clock_outputs(); - - /* Wait at least 300us after SI5351C Clock Enable */ - delay(WAIT_CPU_CLOCK_INIT_DELAY); - si5351c_read[3] = si5351c_read_single(0); - cea: f000 f941 bl f70 - cee: 6825 ldr r5, [r4, #0] - cf0: 70f0 strb r0, [r6, #3] - cf2: e60f b.n 914 - }else - { - /* Check calibration is valid / enabled */ - if(airspy_calib.header == AIRSPY_FLASH_CALIB_HEADER) - { - airspy_conf->r820t_conf_rw.xtal_freq = sys_calib_r820t(airspy_conf->r820t_conf_rw.xtal_freq, airspy_calib.correction_ppb); - cf4: 6cae ldr r6, [r5, #72] ; 0x48 - -/* Return corrected xtal_freq */ -uint32_t sys_calib_r820t(uint32_t xtal_freq, int32_t correction_ppb) -{ - const int invppb = 1000000000; - xtal_freq += ((int64_t)xtal_freq * (int64_t)correction_ppb + invppb / 2) / invppb; - cf6: 4640 mov r0, r8 - cf8: 17c1 asrs r1, r0, #31 - cfa: fba6 2308 umull r2, r3, r6, r8 - cfe: fb06 3301 mla r3, r6, r1, r3 - d02: a119 add r1, pc, #100 ; (adr r1, d68 ) - d04: e9d1 0100 ldrd r0, r1, [r1] - d08: 1880 adds r0, r0, r2 - d0a: eb41 0103 adc.w r1, r1, r3 - d0e: a318 add r3, pc, #96 ; (adr r3, d70 ) - d10: e9d3 2300 ldrd r2, r3, [r3] - d14: f000 fcb0 bl 1678 <__aeabi_ldivmod> - d18: 1837 adds r7, r6, r0 - }else - { - /* Check calibration is valid / enabled */ - if(airspy_calib.header == AIRSPY_FLASH_CALIB_HEADER) - { - airspy_conf->r820t_conf_rw.xtal_freq = sys_calib_r820t(airspy_conf->r820t_conf_rw.xtal_freq, airspy_calib.correction_ppb); - d1a: 64af str r7, [r5, #72] ; 0x48 - d1c: e5fa b.n 914 - /* SI5351C not detected continue init using AirSpy MINI configuration */ - addr = (uint32_t)&airspy_mini_conf; - addr = (addr | ROMFLASH_BASE_ADDR); /* Fix with Addr from ROMFLASH */ - src = (unsigned char *)addr; - /* Copy the configuration from Flash to SRAM */ - for (dest = (unsigned char *)airspy_conf; (uint32_t)dest < (((uint32_t)airspy_conf) + AIRSPY_CONF_MAX_DATA_SIZE); ) - d1e: 461d mov r5, r3 - d20: e5ca b.n 8b8 - - /* CLKIN Loss Of Signal (LOS) ? */ - if(si5351c_read[1] == SI5351C_REG0_CLKIN_LOS) - { - /* Apply SI5351C configuration */ - si5351c_airspy_config(&airspy_conf->si5351c_config[AIRSPY_SI5351C_CONFIG_XTAL]); - d22: 6821 ldr r1, [r4, #0] - d24: f8d1 0088 ldr.w r0, [r1, #136] ; 0x88 - d28: f000 f8f4 bl f14 - - /* Check calibration is valid / enabled */ - if(airspy_calib.header == AIRSPY_FLASH_CALIB_HEADER) - d2c: 2301 movs r3, #1 - d2e: f6cc 231b movt r3, #51739 ; 0xca1b - d32: 429f cmp r7, r3 - d34: d1c8 bne.n cc8 - { - airspy_conf->r820t_conf_rw.xtal_freq = sys_calib_r820t(airspy_conf->r820t_conf_rw.xtal_freq, airspy_calib.correction_ppb); - d36: 4f12 ldr r7, [pc, #72] ; (d80 ) - d38: 683f ldr r7, [r7, #0] - d3a: 6cbd ldr r5, [r7, #72] ; 0x48 - -/* Return corrected xtal_freq */ -uint32_t sys_calib_r820t(uint32_t xtal_freq, int32_t correction_ppb) -{ - const int invppb = 1000000000; - xtal_freq += ((int64_t)xtal_freq * (int64_t)correction_ppb + invppb / 2) / invppb; - d3c: 4642 mov r2, r8 - d3e: 17d0 asrs r0, r2, #31 - d40: fba5 2308 umull r2, r3, r5, r8 - d44: fb05 3300 mla r3, r5, r0, r3 - d48: a107 add r1, pc, #28 ; (adr r1, d68 ) - d4a: e9d1 0100 ldrd r0, r1, [r1] - d4e: 1880 adds r0, r0, r2 - d50: eb41 0103 adc.w r1, r1, r3 - d54: a306 add r3, pc, #24 ; (adr r3, d70 ) - d56: e9d3 2300 ldrd r2, r3, [r3] - d5a: f000 fc8d bl 1678 <__aeabi_ldivmod> - d5e: 1829 adds r1, r5, r0 - si5351c_airspy_config(&airspy_conf->si5351c_config[AIRSPY_SI5351C_CONFIG_XTAL]); - - /* Check calibration is valid / enabled */ - if(airspy_calib.header == AIRSPY_FLASH_CALIB_HEADER) - { - airspy_conf->r820t_conf_rw.xtal_freq = sys_calib_r820t(airspy_conf->r820t_conf_rw.xtal_freq, airspy_calib.correction_ppb); - d60: 64b9 str r1, [r7, #72] ; 0x48 - d62: e7b1 b.n cc8 - d64: f3af 8000 nop.w - d68: 1dcd6500 .word 0x1dcd6500 - d6c: 00000000 .word 0x00000000 - d70: 3b9aca00 .word 0x3b9aca00 - d74: 00000000 .word 0x00000000 - d78: 00005348 .word 0x00005348 - d7c: 10080084 .word 0x10080084 - d80: 10080018 .word 0x10080018 - d84: f3af 8000 nop.w - -00000d88 : - /* Configure PLL1 to Intermediate Clock final freq / 2 (because DIRECT=1) */ - /* Integer mode: - FCLKOUT = M*(FCLKIN/N) - FCCO = 2*P*FCLKOUT = 2*P*M*(FCLKIN/N) - */ - pll_reg = CGU_PLL1_CTRL; - d88: 2144 movs r1, #68 ; 0x44 - d8a: f2c4 0105 movt r1, #16389 ; 0x4005 - Configure PLL1 to high speed with CGU_SRC_GP_CLKIN. -(PLL1 High Speed compliant with UM10503 Rev. 1.8 — 28 January 2014 Fig 30. BASE_M4_CLK ramp-up procedure) - Connect PLL1 to M4/M0 core, Peripheral, APB1, APB3. -*/ -void cpu_clock_pll1_high_speed(const airspy_pll1_hs_t* const pt_airspy_pll1_hs_conf) -{ - d8e: b430 push {r4, r5} - CGU_PLL1_CTRL_DIRECT | /* DIRECT */ - CGU_PLL1_CTRL_PSEL_MASK | CGU_PLL1_CTRL_MSEL_MASK | CGU_PLL1_CTRL_NSEL_MASK ); /* PSEL, MSEL, NSEL- divider ratios */ - - /* Set PLL1 to High Speed/2 */ - pll_reg |= CGU_PLL1_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN) - | CGU_PLL1_CTRL_PSEL(pll1_psel) - d90: 6802 ldr r2, [r0, #0] - /* Configure PLL1 to Intermediate Clock final freq / 2 (because DIRECT=1) */ - /* Integer mode: - FCLKOUT = M*(FCLKIN/N) - FCCO = 2*P*FCLKOUT = 2*P*M*(FCLKIN/N) - */ - pll_reg = CGU_PLL1_CTRL; - d92: 680d ldr r5, [r1, #0] - CGU_PLL1_CTRL_PSEL_MASK | CGU_PLL1_CTRL_MSEL_MASK | CGU_PLL1_CTRL_NSEL_MASK ); /* PSEL, MSEL, NSEL- divider ratios */ - - /* Set PLL1 to High Speed/2 */ - pll_reg |= CGU_PLL1_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN) - | CGU_PLL1_CTRL_PSEL(pll1_psel) - | CGU_PLL1_CTRL_NSEL(pll1_nsel) - d94: 6844 ldr r4, [r0, #4] - | CGU_PLL1_CTRL_MSEL(pll1_msel) - d96: 6880 ldr r0, [r0, #8] - FCLKOUT = M*(FCLKIN/N) - FCCO = 2*P*FCLKOUT = 2*P*M*(FCLKIN/N) - */ - pll_reg = CGU_PLL1_CTRL; - /* Clear PLL1 bits */ - pll_reg &= ~( CGU_PLL1_CTRL_CLK_SEL_MASK | CGU_PLL1_CTRL_PD | CGU_PLL1_CTRL_FBSEL | /* CLK SEL, PowerDown , FBSEL */ - d98: f64c 433c movw r3, #52284 ; 0xcc3c - d9c: f2ce 0300 movt r3, #57344 ; 0xe000 - CGU_PLL1_CTRL_DIRECT | /* DIRECT */ - CGU_PLL1_CTRL_PSEL_MASK | CGU_PLL1_CTRL_MSEL_MASK | CGU_PLL1_CTRL_NSEL_MASK ); /* PSEL, MSEL, NSEL- divider ratios */ - - /* Set PLL1 to High Speed/2 */ - pll_reg |= CGU_PLL1_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN) - | CGU_PLL1_CTRL_PSEL(pll1_psel) - da0: 0212 lsls r2, r2, #8 - FCLKOUT = M*(FCLKIN/N) - FCCO = 2*P*FCLKOUT = 2*P*M*(FCLKIN/N) - */ - pll_reg = CGU_PLL1_CTRL; - /* Clear PLL1 bits */ - pll_reg &= ~( CGU_PLL1_CTRL_CLK_SEL_MASK | CGU_PLL1_CTRL_PD | CGU_PLL1_CTRL_FBSEL | /* CLK SEL, PowerDown , FBSEL */ - da2: 402b ands r3, r5 - CGU_PLL1_CTRL_PSEL_MASK | CGU_PLL1_CTRL_MSEL_MASK | CGU_PLL1_CTRL_NSEL_MASK ); /* PSEL, MSEL, NSEL- divider ratios */ - - /* Set PLL1 to High Speed/2 */ - pll_reg |= CGU_PLL1_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN) - | CGU_PLL1_CTRL_PSEL(pll1_psel) - | CGU_PLL1_CTRL_NSEL(pll1_nsel) - da4: ea42 3204 orr.w r2, r2, r4, lsl #12 - CGU_PLL1_CTRL_BYPASS | /* BYPASS */ - CGU_PLL1_CTRL_DIRECT | /* DIRECT */ - CGU_PLL1_CTRL_PSEL_MASK | CGU_PLL1_CTRL_MSEL_MASK | CGU_PLL1_CTRL_NSEL_MASK ); /* PSEL, MSEL, NSEL- divider ratios */ - - /* Set PLL1 to High Speed/2 */ - pll_reg |= CGU_PLL1_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN) - da8: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000 - | CGU_PLL1_CTRL_PSEL(pll1_psel) - | CGU_PLL1_CTRL_NSEL(pll1_nsel) - | CGU_PLL1_CTRL_MSEL(pll1_msel) - dac: ea42 4000 orr.w r0, r2, r0, lsl #16 - CGU_PLL1_CTRL_BYPASS | /* BYPASS */ - CGU_PLL1_CTRL_DIRECT | /* DIRECT */ - CGU_PLL1_CTRL_PSEL_MASK | CGU_PLL1_CTRL_MSEL_MASK | CGU_PLL1_CTRL_NSEL_MASK ); /* PSEL, MSEL, NSEL- divider ratios */ - - /* Set PLL1 to High Speed/2 */ - pll_reg |= CGU_PLL1_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN) - db0: f043 0340 orr.w r3, r3, #64 ; 0x40 - db4: 4303 orrs r3, r0 - | CGU_PLL1_CTRL_MSEL(pll1_msel) - | CGU_PLL1_CTRL_FBSEL; - CGU_PLL1_CTRL = pll_reg; - - /* wait until stable */ - while (!(CGU_PLL1_STAT & CGU_PLL1_STAT_LOCK)); - db6: 2240 movs r2, #64 ; 0x40 - pll_reg |= CGU_PLL1_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN) - | CGU_PLL1_CTRL_PSEL(pll1_psel) - | CGU_PLL1_CTRL_NSEL(pll1_nsel) - | CGU_PLL1_CTRL_MSEL(pll1_msel) - | CGU_PLL1_CTRL_FBSEL; - CGU_PLL1_CTRL = pll_reg; - db8: 600b str r3, [r1, #0] - - /* wait until stable */ - while (!(CGU_PLL1_STAT & CGU_PLL1_STAT_LOCK)); - dba: f2c4 0205 movt r2, #16389 ; 0x4005 - dbe: 6811 ldr r1, [r2, #0] - dc0: 07cb lsls r3, r1, #31 - dc2: d5fc bpl.n dbe - dc4: f242 7210 movw r2, #10000 ; 0x2710 -void delay(uint32_t duration) -{ - uint32_t i; - - for (i = 0; i < duration; i++) - __asm__("nop"); - dc8: bf00 nop - dca: 1e53 subs r3, r2, #1 - dcc: bf00 nop - -void delay(uint32_t duration) -{ - uint32_t i; - - for (i = 0; i < duration; i++) - dce: 1e5a subs r2, r3, #1 - dd0: d1fa bne.n dc8 - */ - delay(WAIT_CPU_CLOCK_INIT_DELAY); - - /* Configure PLL1 High Speed (DIRECT=1) */ - /* Direct mode: FCLKOUT = FCCO = M*(FCLKIN/N) */ - pll_reg = CGU_PLL1_CTRL; - dd2: 2144 movs r1, #68 ; 0x44 - dd4: f2c4 0105 movt r1, #16389 ; 0x4005 - /* Clear PLL1 bits */ - pll_reg &= ~( CGU_PLL1_CTRL_CLK_SEL_MASK | CGU_PLL1_CTRL_PD | CGU_PLL1_CTRL_FBSEL | /* CLK SEL, PowerDown , FBSEL */ - dd8: f64c 433c movw r3, #52284 ; 0xcc3c - */ - delay(WAIT_CPU_CLOCK_INIT_DELAY); - - /* Configure PLL1 High Speed (DIRECT=1) */ - /* Direct mode: FCLKOUT = FCCO = M*(FCLKIN/N) */ - pll_reg = CGU_PLL1_CTRL; - ddc: 680a ldr r2, [r1, #0] - /* Clear PLL1 bits */ - pll_reg &= ~( CGU_PLL1_CTRL_CLK_SEL_MASK | CGU_PLL1_CTRL_PD | CGU_PLL1_CTRL_FBSEL | /* CLK SEL, PowerDown , FBSEL */ - dde: f2ce 0300 movt r3, #57344 ; 0xe000 - de2: 4013 ands r3, r2 - CGU_PLL1_CTRL_BYPASS | /* BYPASS */ - CGU_PLL1_CTRL_DIRECT | /* DIRECT */ - CGU_PLL1_CTRL_PSEL_MASK | CGU_PLL1_CTRL_MSEL_MASK | CGU_PLL1_CTRL_NSEL_MASK ); /* PSEL, MSEL, NSEL- divider ratios */ - /* Set PLL1 to HighSpeed */ - pll_reg |= CGU_PLL1_CTRL_CLK_SEL(CGU_SRC_GP_CLKIN) - de4: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000 - de8: f043 02c0 orr.w r2, r3, #192 ; 0xc0 - dec: 4310 orrs r0, r2 - | CGU_PLL1_CTRL_MSEL(pll1_msel) - | CGU_PLL1_CTRL_FBSEL - | CGU_PLL1_CTRL_DIRECT; - CGU_PLL1_CTRL = pll_reg; - /* wait until stable */ - while (!(CGU_PLL1_STAT & CGU_PLL1_STAT_LOCK)); - dee: 2240 movs r2, #64 ; 0x40 - | CGU_PLL1_CTRL_PSEL(pll1_psel) - | CGU_PLL1_CTRL_NSEL(pll1_nsel) - | CGU_PLL1_CTRL_MSEL(pll1_msel) - | CGU_PLL1_CTRL_FBSEL - | CGU_PLL1_CTRL_DIRECT; - CGU_PLL1_CTRL = pll_reg; - df0: 6008 str r0, [r1, #0] - /* wait until stable */ - while (!(CGU_PLL1_STAT & CGU_PLL1_STAT_LOCK)); - df2: f2c4 0205 movt r2, #16389 ; 0x4005 - df6: 6811 ldr r1, [r2, #0] - df8: 07c9 lsls r1, r1, #31 - dfa: d5fc bpl.n df6 -} - dfc: bc30 pop {r4, r5} - dfe: 4770 bx lr - -00000e00 : - -void led_on(void) -{ - gpio_set(PORT_EN_LED1, PIN_EN_LED1); - e00: f44f 40c0 mov.w r0, #24576 ; 0x6000 - e04: f2c4 000f movt r0, #16399 ; 0x400f - e08: f44f 5180 mov.w r1, #4096 ; 0x1000 - e0c: f000 b98c b.w 1128 - -00000e10 : -} - -void led_off(void) -{ - gpio_clear(PORT_EN_LED1, PIN_EN_LED1); - e10: f44f 40c0 mov.w r0, #24576 ; 0x6000 - e14: f2c4 000f movt r0, #16399 ; 0x400f - e18: f44f 5180 mov.w r1, #4096 ; 0x1000 - e1c: f000 b988 b.w 1130 - -00000e20 : - led_off(); -} - -void enable_r820t_power(void) -{ - gpio_set(PORT_EN_R820T, PIN_EN_R820T); - e20: f246 0004 movw r0, #24580 ; 0x6004 - e24: f2c4 000f movt r0, #16399 ; 0x400f - - led_off(); -} - -void enable_r820t_power(void) -{ - e28: b508 push {r3, lr} - gpio_set(PORT_EN_R820T, PIN_EN_R820T); - e2a: 2180 movs r1, #128 ; 0x80 - e2c: f000 f97c bl 1128 - e30: f248 60a0 movw r0, #34464 ; 0x86a0 - e34: f2c0 0001 movt r0, #1 -void delay(uint32_t duration) -{ - uint32_t i; - - for (i = 0; i < duration; i++) - __asm__("nop"); - e38: bf00 nop - e3a: 1e43 subs r3, r0, #1 - e3c: bf00 nop - -void delay(uint32_t duration) -{ - uint32_t i; - - for (i = 0; i < duration; i++) - e3e: 1e58 subs r0, r3, #1 - e40: d1fa bne.n e38 -void enable_r820t_power(void) -{ - gpio_set(PORT_EN_R820T, PIN_EN_R820T); - /* Wait after PowerOn (stabilization of LDO & Internal Init of R820T) */ - delay(WAIT_R820T_POWER_ON_DELAY); -} - e42: bd08 pop {r3, pc} - -00000e44 : - gpio_set(PORT_EN_BIAST, PIN_EN_BIAST); -} - -void disable_biast_power(void) -{ - gpio_clear(PORT_EN_BIAST, PIN_EN_BIAST); - e44: f246 0004 movw r0, #24580 ; 0x6004 - e48: f2c4 000f movt r0, #16399 ; 0x400f - e4c: f44f 5100 mov.w r1, #8192 ; 0x2000 - e50: f000 b96e b.w 1130 - -00000e54 : -{ - gpio_clear(PORT_EN_LED1, PIN_EN_LED1); -} - -void pin_setup(void) -{ - e54: b5f8 push {r3, r4, r5, r6, r7, lr} - int i; - - /* Configure all GPIO as Input (safe state) */ - GPIO0_DIR = 0; - e56: f44f 4cc0 mov.w ip, #24576 ; 0x6000 - GPIO1_DIR = 0; - e5a: f246 0e04 movw lr, #24580 ; 0x6004 - GPIO2_DIR = 0; - e5e: f246 0708 movw r7, #24584 ; 0x6008 - GPIO3_DIR = 0; - e62: f246 060c movw r6, #24588 ; 0x600c - GPIO4_DIR = 0; - e66: f246 0410 movw r4, #24592 ; 0x6010 - GPIO5_DIR = 0; - e6a: f246 0014 movw r0, #24596 ; 0x6014 - GPIO6_DIR = 0; - e6e: f246 0118 movw r1, #24600 ; 0x6018 - GPIO7_DIR = 0; - e72: f246 021c movw r2, #24604 ; 0x601c -void pin_setup(void) -{ - int i; - - /* Configure all GPIO as Input (safe state) */ - GPIO0_DIR = 0; - e76: f2c4 0c0f movt ip, #16399 ; 0x400f - GPIO1_DIR = 0; - e7a: f2c4 0e0f movt lr, #16399 ; 0x400f - GPIO2_DIR = 0; - GPIO3_DIR = 0; - GPIO4_DIR = 0; - e7e: f2c4 040f movt r4, #16399 ; 0x400f - GPIO5_DIR = 0; - e82: f2c4 000f movt r0, #16399 ; 0x400f - GPIO6_DIR = 0; - e86: f2c4 010f movt r1, #16399 ; 0x400f - GPIO7_DIR = 0; - e8a: f2c4 020f movt r2, #16399 ; 0x400f - int i; - - /* Configure all GPIO as Input (safe state) */ - GPIO0_DIR = 0; - GPIO1_DIR = 0; - GPIO2_DIR = 0; - e8e: f2c4 070f movt r7, #16399 ; 0x400f - GPIO3_DIR = 0; - e92: f2c4 060f movt r6, #16399 ; 0x400f -void pin_setup(void) -{ - int i; - - /* Configure all GPIO as Input (safe state) */ - GPIO0_DIR = 0; - e96: 2300 movs r3, #0 - e98: 4d1d ldr r5, [pc, #116] ; (f10 ) - e9a: f8cc 3000 str.w r3, [ip] - GPIO1_DIR = 0; - e9e: f8ce 3000 str.w r3, [lr] - GPIO2_DIR = 0; - ea2: 603b str r3, [r7, #0] - GPIO3_DIR = 0; - ea4: 6033 str r3, [r6, #0] - GPIO4_DIR = 0; - ea6: 6023 str r3, [r4, #0] - GPIO5_DIR = 0; - ea8: 6003 str r3, [r0, #0] - GPIO6_DIR = 0; - eaa: 600b str r3, [r1, #0] - GPIO7_DIR = 0; - eac: 6013 str r3, [r2, #0] - - /* Pin configuration for all pins */ - for(i = 0; i < GPIO_CONF_NB; i++) - { - scu_pinmux(gpio_conf[i].group_pin, gpio_conf[i].scu_conf); - eae: e895 0003 ldmia.w r5, {r0, r1} - eb2: f000 f941 bl 1138 - eb6: 2408 movs r4, #8 -void led_off(void) -{ - gpio_clear(PORT_EN_LED1, PIN_EN_LED1); -} - -void pin_setup(void) - eb8: 1929 adds r1, r5, r4 - GPIO7_DIR = 0; - - /* Pin configuration for all pins */ - for(i = 0; i < GPIO_CONF_NB; i++) - { - scu_pinmux(gpio_conf[i].group_pin, gpio_conf[i].scu_conf); - eba: 5928 ldr r0, [r5, r4] - ebc: 6849 ldr r1, [r1, #4] - ebe: 3408 adds r4, #8 - ec0: f000 f93a bl 1138 -void led_off(void) -{ - gpio_clear(PORT_EN_LED1, PIN_EN_LED1); -} - -void pin_setup(void) - ec4: 192a adds r2, r5, r4 - GPIO7_DIR = 0; - - /* Pin configuration for all pins */ - for(i = 0; i < GPIO_CONF_NB; i++) - { - scu_pinmux(gpio_conf[i].group_pin, gpio_conf[i].scu_conf); - ec6: 5928 ldr r0, [r5, r4] - ec8: 6851 ldr r1, [r2, #4] - eca: 3408 adds r4, #8 - ecc: f000 f934 bl 1138 - GPIO5_DIR = 0; - GPIO6_DIR = 0; - GPIO7_DIR = 0; - - /* Pin configuration for all pins */ - for(i = 0; i < GPIO_CONF_NB; i++) - ed0: f5b4 6fa1 cmp.w r4, #1288 ; 0x508 - ed4: d1f0 bne.n eb8 - { - scu_pinmux(gpio_conf[i].group_pin, gpio_conf[i].scu_conf); - } - - /* GPIO1[7] on P1_14 as output. */ - GPIO1_DIR |= PIN_EN_R820T; - ed6: f246 0404 movw r4, #24580 ; 0x6004 - eda: f2c4 040f movt r4, #16399 ; 0x400f - ede: 6820 ldr r0, [r4, #0] - ee0: f040 0380 orr.w r3, r0, #128 ; 0x80 - ee4: 6023 str r3, [r4, #0] - enable_r820t_power(); - ee6: f7ff ff9b bl e20 - - /* GPIO1[13] on P2_13 as output. */ - GPIO1_DIR |= PIN_EN_BIAST; - eea: 6821 ldr r1, [r4, #0] - eec: f441 5200 orr.w r2, r1, #8192 ; 0x2000 - ef0: 6022 str r2, [r4, #0] - disable_biast_power(); - ef2: f7ff ffa7 bl e44 - - /* GPIO0[12] on P1_17 as output. */ - GPIO0_DIR |= PIN_EN_LED1; - ef6: f44f 40c0 mov.w r0, #24576 ; 0x6000 - efa: f2c4 000f movt r0, #16399 ; 0x400f - efe: 6803 ldr r3, [r0, #0] - f00: f443 5180 orr.w r1, r3, #4096 ; 0x1000 - f04: 6001 str r1, [r0, #0] - - led_off(); -} - f06: e8bd 40f8 ldmia.w sp!, {r3, r4, r5, r6, r7, lr} - disable_biast_power(); - - /* GPIO0[12] on P1_17 as output. */ - GPIO0_DIR |= PIN_EN_LED1; - - led_off(); - f0a: f7ff bf81 b.w e10 - f0e: bf00 nop - f10: 00004b90 .word 0x00004b90 - -00000f14 : - -#define SI5351C_WRITE_CONF_STEP2_REG (149) -#define SI5351C_WRITE_CONF_STEP2_SIZE (22) /* 170 - 149 + 1 */ - -void si5351c_airspy_config(const si5351c_conf_t* const pt_si5351c_conf) -{ - f14: b570 push {r4, r5, r6, lr} - f16: 4606 mov r6, r0 - int i; - - /* Write Conf Step1 */ - i2c0_tx_start(); - f18: f000 f950 bl 11bc - i2c0_tx_byte(SI5351C_I2C_ADDR | I2C_WRITE); - f1c: 20c0 movs r0, #192 ; 0xc0 - f1e: f000 f971 bl 1204 - - i2c0_tx_byte(SI5351C_WRITE_CONF_STEP1_REG); - f22: 200f movs r0, #15 - f24: f000 f96e bl 1204 - for(i = SI5351C_WRITE_CONF_STEP1_REG; i < (SI5351C_WRITE_CONF_STEP1_REG+SI5351C_WRITE_CONF_STEP1_SIZE); i++) - f28: 240f movs r4, #15 - f2a: 1c65 adds r5, r4, #1 - { - i2c0_tx_byte(pt_si5351c_conf->conf[i]); - f2c: 5d30 ldrb r0, [r6, r4] - f2e: f000 f969 bl 1204 - /* Write Conf Step1 */ - i2c0_tx_start(); - i2c0_tx_byte(SI5351C_I2C_ADDR | I2C_WRITE); - - i2c0_tx_byte(SI5351C_WRITE_CONF_STEP1_REG); - for(i = SI5351C_WRITE_CONF_STEP1_REG; i < (SI5351C_WRITE_CONF_STEP1_REG+SI5351C_WRITE_CONF_STEP1_SIZE); i++) - f32: 3402 adds r4, #2 - { - i2c0_tx_byte(pt_si5351c_conf->conf[i]); - f34: 5d70 ldrb r0, [r6, r5] - f36: f000 f965 bl 1204 - /* Write Conf Step1 */ - i2c0_tx_start(); - i2c0_tx_byte(SI5351C_I2C_ADDR | I2C_WRITE); - - i2c0_tx_byte(SI5351C_WRITE_CONF_STEP1_REG); - for(i = SI5351C_WRITE_CONF_STEP1_REG; i < (SI5351C_WRITE_CONF_STEP1_REG+SI5351C_WRITE_CONF_STEP1_SIZE); i++) - f3a: 2c5d cmp r4, #93 ; 0x5d - f3c: d1f5 bne.n f2a - { - i2c0_tx_byte(pt_si5351c_conf->conf[i]); - } - i2c0_stop(); - f3e: f000 f9c1 bl 12c4 - - /* Write Conf Step2 */ - i2c0_tx_start(); - f42: f000 f93b bl 11bc - i2c0_tx_byte(SI5351C_I2C_ADDR | I2C_WRITE); - f46: 20c0 movs r0, #192 ; 0xc0 - f48: f000 f95c bl 1204 - - i2c0_tx_byte(SI5351C_WRITE_CONF_STEP2_REG); - f4c: 2095 movs r0, #149 ; 0x95 - f4e: f000 f959 bl 1204 - for (i = SI5351C_WRITE_CONF_STEP2_REG; i < (SI5351C_WRITE_CONF_STEP2_REG+SI5351C_WRITE_CONF_STEP2_SIZE); i++) - f52: 2495 movs r4, #149 ; 0x95 - f54: 1c65 adds r5, r4, #1 - { - i2c0_tx_byte(pt_si5351c_conf->conf[i]); - f56: 5d30 ldrb r0, [r6, r4] - f58: f000 f954 bl 1204 - /* Write Conf Step2 */ - i2c0_tx_start(); - i2c0_tx_byte(SI5351C_I2C_ADDR | I2C_WRITE); - - i2c0_tx_byte(SI5351C_WRITE_CONF_STEP2_REG); - for (i = SI5351C_WRITE_CONF_STEP2_REG; i < (SI5351C_WRITE_CONF_STEP2_REG+SI5351C_WRITE_CONF_STEP2_SIZE); i++) - f5c: 3402 adds r4, #2 - { - i2c0_tx_byte(pt_si5351c_conf->conf[i]); - f5e: 5d70 ldrb r0, [r6, r5] - f60: f000 f950 bl 1204 - /* Write Conf Step2 */ - i2c0_tx_start(); - i2c0_tx_byte(SI5351C_I2C_ADDR | I2C_WRITE); - - i2c0_tx_byte(SI5351C_WRITE_CONF_STEP2_REG); - for (i = SI5351C_WRITE_CONF_STEP2_REG; i < (SI5351C_WRITE_CONF_STEP2_REG+SI5351C_WRITE_CONF_STEP2_SIZE); i++) - f64: 2cab cmp r4, #171 ; 0xab - f66: d1f5 bne.n f54 - { - i2c0_tx_byte(pt_si5351c_conf->conf[i]); - } - i2c0_stop(); -} - f68: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - i2c0_tx_byte(SI5351C_WRITE_CONF_STEP2_REG); - for (i = SI5351C_WRITE_CONF_STEP2_REG; i < (SI5351C_WRITE_CONF_STEP2_REG+SI5351C_WRITE_CONF_STEP2_SIZE); i++) - { - i2c0_tx_byte(pt_si5351c_conf->conf[i]); - } - i2c0_stop(); - f6c: f000 b9aa b.w 12c4 - -00000f70 : - i2c0_stop(); -} - -/* read single register */ -uint8_t si5351c_read_single(uint8_t reg) -{ - f70: b510 push {r4, lr} - f72: 4604 mov r4, r0 - uint8_t val; - - /* set register address with write */ - i2c0_tx_start(); - f74: f000 f922 bl 11bc - i2c0_tx_byte(SI5351C_I2C_ADDR | I2C_WRITE); - f78: 20c0 movs r0, #192 ; 0xc0 - f7a: f000 f943 bl 1204 - i2c0_tx_byte(reg); - f7e: 4620 mov r0, r4 - f80: f000 f940 bl 1204 - - /* read the value */ - i2c0_tx_start(); - f84: f000 f91a bl 11bc - i2c0_tx_byte(SI5351C_I2C_ADDR | I2C_READ); - f88: 20c1 movs r0, #193 ; 0xc1 - f8a: f000 f93b bl 1204 - val = i2c0_rx_byte(); - f8e: f000 f969 bl 1264 - f92: 4604 mov r4, r0 - i2c0_stop(); - f94: f000 f996 bl 12c4 - - return val; -} - f98: 4620 mov r0, r4 - f9a: bd10 pop {r4, pc} - -00000f9c : -/* - * Write to one or more contiguous registers. data[0] should be the first - * register number, one or more values follow. - */ -void si5351c_write(uint8_t* const data, const uint_fast8_t data_count) -{ - f9c: b570 push {r4, r5, r6, lr} - f9e: 4605 mov r5, r0 - fa0: 460e mov r6, r1 - uint_fast8_t i; - - i2c0_tx_start(); - fa2: f000 f90b bl 11bc - i2c0_tx_byte(SI5351C_I2C_ADDR | I2C_WRITE); - fa6: 20c0 movs r0, #192 ; 0xc0 - fa8: f000 f92c bl 1204 - - for (i = 0; i < data_count; i++) - fac: b1ee cbz r6, fea - i2c0_tx_byte(data[i]); - fae: 462c mov r4, r5 - -/* - * Write to one or more contiguous registers. data[0] should be the first - * register number, one or more values follow. - */ -void si5351c_write(uint8_t* const data, const uint_fast8_t data_count) - fb0: 19ae adds r6, r5, r6 - - i2c0_tx_start(); - i2c0_tx_byte(SI5351C_I2C_ADDR | I2C_WRITE); - - for (i = 0; i < data_count; i++) - i2c0_tx_byte(data[i]); - fb2: f814 0b01 ldrb.w r0, [r4], #1 - fb6: 43ed mvns r5, r5 - fb8: 19a9 adds r1, r5, r6 - fba: f001 0501 and.w r5, r1, #1 - fbe: f000 f921 bl 1204 - uint_fast8_t i; - - i2c0_tx_start(); - i2c0_tx_byte(SI5351C_I2C_ADDR | I2C_WRITE); - - for (i = 0; i < data_count; i++) - fc2: 42b4 cmp r4, r6 - fc4: d011 beq.n fea - fc6: b12d cbz r5, fd4 - i2c0_tx_byte(data[i]); - fc8: f814 0b01 ldrb.w r0, [r4], #1 - fcc: f000 f91a bl 1204 - uint_fast8_t i; - - i2c0_tx_start(); - i2c0_tx_byte(SI5351C_I2C_ADDR | I2C_WRITE); - - for (i = 0; i < data_count; i++) - fd0: 42b4 cmp r4, r6 - fd2: d00a beq.n fea - i2c0_tx_byte(data[i]); - fd4: 4625 mov r5, r4 - fd6: f815 0b01 ldrb.w r0, [r5], #1 - fda: f000 f913 bl 1204 - fde: 7860 ldrb r0, [r4, #1] - fe0: 1c6c adds r4, r5, #1 - fe2: f000 f90f bl 1204 - uint_fast8_t i; - - i2c0_tx_start(); - i2c0_tx_byte(SI5351C_I2C_ADDR | I2C_WRITE); - - for (i = 0; i < data_count; i++) - fe6: 42b4 cmp r4, r6 - fe8: d1f4 bne.n fd4 - i2c0_tx_byte(data[i]); - i2c0_stop(); -} - fea: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - i2c0_tx_start(); - i2c0_tx_byte(SI5351C_I2C_ADDR | I2C_WRITE); - - for (i = 0; i < data_count; i++) - i2c0_tx_byte(data[i]); - i2c0_stop(); - fee: f000 b969 b.w 12c4 - ff2: bf00 nop - -00000ff4 : -} - -/* Disable all CLKx outputs. */ -void si5351c_disable_all_outputs(void) -{ - ff4: b500 push {lr} - uint8_t data[] = { 3, 0xFF }; - ff6: f245 0398 movw r3, #20632 ; 0x5098 - ffa: f2c0 0300 movt r3, #0 - i2c0_stop(); -} - -/* Disable all CLKx outputs. */ -void si5351c_disable_all_outputs(void) -{ - ffe: b083 sub sp, #12 - uint8_t data[] = { 3, 0xFF }; - 1000: 881a ldrh r2, [r3, #0] - si5351c_write(data, sizeof(data)); - 1002: a801 add r0, sp, #4 - 1004: 2102 movs r1, #2 -} - -/* Disable all CLKx outputs. */ -void si5351c_disable_all_outputs(void) -{ - uint8_t data[] = { 3, 0xFF }; - 1006: f8ad 2004 strh.w r2, [sp, #4] - si5351c_write(data, sizeof(data)); - 100a: f7ff ffc7 bl f9c -} - 100e: b003 add sp, #12 - 1010: bd00 pop {pc} - 1012: bf00 nop - -00001014 : -/* Turn off OEB pin control for all CLKx - Check also the SI5351C work like expected - write/read with different pattern - */ -bool si5351c_disable_oeb_pin_control(void) -{ - 1014: b570 push {r4, r5, r6, lr} - 1016: b082 sub sp, #8 - uint8_t data[] = { 9, 0x00 }; - uint8_t val1; - - /* Check Written Data */ - data[1] = 0x55; - 1018: 2355 movs r3, #85 ; 0x55 - Check also the SI5351C work like expected - write/read with different pattern - */ -bool si5351c_disable_oeb_pin_control(void) -{ - uint8_t data[] = { 9, 0x00 }; - 101a: 2409 movs r4, #9 - uint8_t val1; - - /* Check Written Data */ - data[1] = 0x55; - si5351c_write(data, sizeof(data)); - 101c: 2102 movs r1, #2 - 101e: a801 add r0, sp, #4 -{ - uint8_t data[] = { 9, 0x00 }; - uint8_t val1; - - /* Check Written Data */ - data[1] = 0x55; - 1020: f88d 3005 strb.w r3, [sp, #5] - Check also the SI5351C work like expected - write/read with different pattern - */ -bool si5351c_disable_oeb_pin_control(void) -{ - uint8_t data[] = { 9, 0x00 }; - 1024: f88d 4004 strb.w r4, [sp, #4] - uint8_t val1; - - /* Check Written Data */ - data[1] = 0x55; - si5351c_write(data, sizeof(data)); - 1028: f7ff ffb8 bl f9c - val1 = si5351c_read_single(9); - 102c: 4620 mov r0, r4 - 102e: f7ff ff9f bl f70 - if(val1 == 0x55) - 1032: 2855 cmp r0, #85 ; 0x55 - 1034: d002 beq.n 103c - if( (val2 == 0x99) && (val3 == 0xAA) && (val4 == 0xFF) ) - { - return true; - }else - { - return false; - 1036: 2000 movs r0, #0 - } - }else - { - return false; - } -} - 1038: b002 add sp, #8 - 103a: bd70 pop {r4, r5, r6, pc} - { - uint8_t val2; - uint8_t val3; - uint8_t val4; - - data[1] = 0x99; - 103c: 2299 movs r2, #153 ; 0x99 - si5351c_write(data, sizeof(data)); - 103e: 2102 movs r1, #2 - 1040: a801 add r0, sp, #4 - { - uint8_t val2; - uint8_t val3; - uint8_t val4; - - data[1] = 0x99; - 1042: f88d 2005 strb.w r2, [sp, #5] - si5351c_write(data, sizeof(data)); - 1046: f7ff ffa9 bl f9c - val2 = si5351c_read_single(9); - 104a: 4620 mov r0, r4 - 104c: f7ff ff90 bl f70 - - data[1] = 0xAA; - 1050: 26aa movs r6, #170 ; 0xaa - si5351c_write(data, sizeof(data)); - 1052: 2102 movs r1, #2 - uint8_t val3; - uint8_t val4; - - data[1] = 0x99; - si5351c_write(data, sizeof(data)); - val2 = si5351c_read_single(9); - 1054: 4605 mov r5, r0 - - data[1] = 0xAA; - si5351c_write(data, sizeof(data)); - 1056: a801 add r0, sp, #4 - - data[1] = 0x99; - si5351c_write(data, sizeof(data)); - val2 = si5351c_read_single(9); - - data[1] = 0xAA; - 1058: f88d 6005 strb.w r6, [sp, #5] - si5351c_write(data, sizeof(data)); - 105c: f7ff ff9e bl f9c - val3 = si5351c_read_single(9); - 1060: 4620 mov r0, r4 - 1062: f7ff ff85 bl f70 - - data[1] = 0xFF; - 1066: 23ff movs r3, #255 ; 0xff - si5351c_write(data, sizeof(data)); - 1068: 2102 movs r1, #2 - si5351c_write(data, sizeof(data)); - val2 = si5351c_read_single(9); - - data[1] = 0xAA; - si5351c_write(data, sizeof(data)); - val3 = si5351c_read_single(9); - 106a: 4606 mov r6, r0 - - data[1] = 0xFF; - si5351c_write(data, sizeof(data)); - 106c: a801 add r0, sp, #4 - - data[1] = 0xAA; - si5351c_write(data, sizeof(data)); - val3 = si5351c_read_single(9); - - data[1] = 0xFF; - 106e: f88d 3005 strb.w r3, [sp, #5] - si5351c_write(data, sizeof(data)); - 1072: f7ff ff93 bl f9c - val4 = si5351c_read_single(9); - 1076: 4620 mov r0, r4 - 1078: f7ff ff7a bl f70 - - if( (val2 == 0x99) && (val3 == 0xAA) && (val4 == 0xFF) ) - 107c: 2d99 cmp r5, #153 ; 0x99 - 107e: d1da bne.n 1036 - 1080: 2eaa cmp r6, #170 ; 0xaa - 1082: d1d8 bne.n 1036 - 1084: f1b0 01ff subs.w r1, r0, #255 ; 0xff - 1088: 4248 negs r0, r1 - 108a: 4148 adcs r0, r1 - 108c: e7d4 b.n 1038 - 108e: bf00 nop - -00001090 : - } -} - -/* Power down all CLKx */ -void si5351c_power_down_all_clocks(void) -{ - 1090: b500 push {lr} - uint8_t data[] = { 16 - 1092: f245 0398 movw r3, #20632 ; 0x5098 - 1096: f2c0 0300 movt r3, #0 - } -} - -/* Power down all CLKx */ -void si5351c_power_down_all_clocks(void) -{ - 109a: b085 sub sp, #20 - uint8_t data[] = { 16 - 109c: f853 0f04 ldr.w r0, [r3, #4]! - 10a0: 6859 ldr r1, [r3, #4] - 10a2: 7a1b ldrb r3, [r3, #8] - 10a4: aa01 add r2, sp, #4 - 10a6: c203 stmia r2!, {r0, r1} - , SI5351C_CLK_POWERDOWN - , SI5351C_CLK_POWERDOWN - , SI5351C_CLK_POWERDOWN - , SI5351C_CLK_POWERDOWN - }; - si5351c_write(data, sizeof(data)); - 10a8: a801 add r0, sp, #4 - 10aa: 2109 movs r1, #9 -} - -/* Power down all CLKx */ -void si5351c_power_down_all_clocks(void) -{ - uint8_t data[] = { 16 - 10ac: 7013 strb r3, [r2, #0] - , SI5351C_CLK_POWERDOWN - , SI5351C_CLK_POWERDOWN - , SI5351C_CLK_POWERDOWN - , SI5351C_CLK_POWERDOWN - }; - si5351c_write(data, sizeof(data)); - 10ae: f7ff ff75 bl f9c -} - 10b2: b005 add sp, #20 - 10b4: bd00 pop {pc} - 10b6: bf00 nop - -000010b8 : - -void si5351c_init_fanout(void) -{ - 10b8: b500 push {lr} - uint8_t data[] = { 187, 0xc0 }; - 10ba: 4b05 ldr r3, [pc, #20] ; (10d0 ) - }; - si5351c_write(data, sizeof(data)); -} - -void si5351c_init_fanout(void) -{ - 10bc: b083 sub sp, #12 - uint8_t data[] = { 187, 0xc0 }; - 10be: 881a ldrh r2, [r3, #0] - si5351c_write(data, sizeof(data)); - 10c0: a801 add r0, sp, #4 - 10c2: 2102 movs r1, #2 - si5351c_write(data, sizeof(data)); -} - -void si5351c_init_fanout(void) -{ - uint8_t data[] = { 187, 0xc0 }; - 10c4: f8ad 2004 strh.w r2, [sp, #4] - si5351c_write(data, sizeof(data)); - 10c8: f7ff ff68 bl f9c -} - 10cc: b003 add sp, #12 - 10ce: bd00 pop {pc} - 10d0: 000050a8 .word 0x000050a8 - -000010d4 : - -void si5351c_init_xtal(void) -{ - 10d4: b500 push {lr} - /* Set Crystal Internal CL = 8 pF */ - uint8_t data[] = { 183, 0x92 }; - 10d6: 4b05 ldr r3, [pc, #20] ; (10ec ) - uint8_t data[] = { 187, 0xc0 }; - si5351c_write(data, sizeof(data)); -} - -void si5351c_init_xtal(void) -{ - 10d8: b083 sub sp, #12 - /* Set Crystal Internal CL = 8 pF */ - uint8_t data[] = { 183, 0x92 }; - 10da: 881a ldrh r2, [r3, #0] - si5351c_write(data, sizeof(data)); - 10dc: a801 add r0, sp, #4 - 10de: 2102 movs r1, #2 -} - -void si5351c_init_xtal(void) -{ - /* Set Crystal Internal CL = 8 pF */ - uint8_t data[] = { 183, 0x92 }; - 10e0: f8ad 2004 strh.w r2, [sp, #4] - si5351c_write(data, sizeof(data)); - 10e4: f7ff ff5a bl f9c -} - 10e8: b003 add sp, #12 - 10ea: bd00 pop {pc} - 10ec: 000050ac .word 0x000050ac - -000010f0 : - -void si5351c_init_pll_soft_reset(void) -{ - 10f0: b500 push {lr} - uint8_t data[] = { 177, 0xac }; - 10f2: 4b05 ldr r3, [pc, #20] ; (1108 ) - uint8_t data[] = { 183, 0x92 }; - si5351c_write(data, sizeof(data)); -} - -void si5351c_init_pll_soft_reset(void) -{ - 10f4: b083 sub sp, #12 - uint8_t data[] = { 177, 0xac }; - 10f6: 881a ldrh r2, [r3, #0] - si5351c_write(data, sizeof(data)); - 10f8: a801 add r0, sp, #4 - 10fa: 2102 movs r1, #2 - si5351c_write(data, sizeof(data)); -} - -void si5351c_init_pll_soft_reset(void) -{ - uint8_t data[] = { 177, 0xac }; - 10fc: f8ad 2004 strh.w r2, [sp, #4] - si5351c_write(data, sizeof(data)); - 1100: f7ff ff4c bl f9c -} - 1104: b003 add sp, #12 - 1106: bd00 pop {pc} - 1108: 000050b0 .word 0x000050b0 - -0000110c : - -/* Enable CLK outputs 0(R820T) and 7(LPC) only. */ -void si5351c_enable_clock_outputs(void) -{ - 110c: b500 push {lr} - uint8_t data[] = { 3, 0x7E }; - 110e: 4b05 ldr r3, [pc, #20] ; (1124 ) - si5351c_write(data, sizeof(data)); -} - -/* Enable CLK outputs 0(R820T) and 7(LPC) only. */ -void si5351c_enable_clock_outputs(void) -{ - 1110: b083 sub sp, #12 - uint8_t data[] = { 3, 0x7E }; - 1112: 881a ldrh r2, [r3, #0] - si5351c_write(data, sizeof(data)); - 1114: a801 add r0, sp, #4 - 1116: 2102 movs r1, #2 -} - -/* Enable CLK outputs 0(R820T) and 7(LPC) only. */ -void si5351c_enable_clock_outputs(void) -{ - uint8_t data[] = { 3, 0x7E }; - 1118: f8ad 2004 strh.w r2, [sp, #4] - si5351c_write(data, sizeof(data)); - 111c: f7ff ff3e bl f9c -} - 1120: b003 add sp, #12 - 1122: bd00 pop {pc} - 1124: 000050b4 .word 0x000050b4 - -00001128 : - -#include - -void gpio_set(uint32_t gpioport, uint32_t gpios) -{ - GPIO_SET(gpioport) = gpios; - 1128: f8c0 1200 str.w r1, [r0, #512] ; 0x200 - 112c: 4770 bx lr - 112e: bf00 nop - -00001130 : -} - -void gpio_clear(uint32_t gpioport, uint32_t gpios) -{ - GPIO_CLR(gpioport) = gpios; - 1130: f8c0 1280 str.w r1, [r0, #640] ; 0x280 - 1134: 4770 bx lr - 1136: bf00 nop - -00001138 : -/* For pin_conf_normal value see scu.h define SCU_CONF_XXX or Configuration for - * different I/O pins types - */ -void scu_pinmux(scu_grp_pin_t group_pin, uint32_t scu_conf) -{ - MMIO32(group_pin) = scu_conf; - 1138: 6001 str r1, [r0, #0] - 113a: 4770 bx lr - -0000113c : -#define I2C_TIMEOUT (10000) - -#define SFSP_I2C1_SDA_SCL (0x00000001 | SCU_CONF_ZIF_DIS_IN_GLITCH_FILT | SCU_CONF_EZI_EN_IN_BUFFER) - -void i2c0_init(const uint16_t duty_cycle_count) -{ - 113c: b470 push {r4, r5, r6} - /* enable input on SCL and SDA pins */ - SCU_SFSI2C0 = SCU_I2C0_NOMINAL; - - I2C0_SCLH = duty_cycle_count; - I2C0_SCLL = duty_cycle_count; - 113e: f241 0114 movw r1, #4116 ; 0x1014 -#define SFSP_I2C1_SDA_SCL (0x00000001 | SCU_CONF_ZIF_DIS_IN_GLITCH_FILT | SCU_CONF_EZI_EN_IN_BUFFER) - -void i2c0_init(const uint16_t duty_cycle_count) -{ - /* enable input on SCL and SDA pins */ - SCU_SFSI2C0 = SCU_I2C0_NOMINAL; - 1142: f646 4584 movw r5, #27780 ; 0x6c84 - - I2C0_SCLH = duty_cycle_count; - 1146: f241 0410 movw r4, #4112 ; 0x1010 - I2C0_SCLL = duty_cycle_count; - 114a: f2c4 010a movt r1, #16394 ; 0x400a - - /* clear the control bits */ - I2C0_CONCLR = (I2C_CONCLR_AAC | I2C_CONCLR_SIC - 114e: f241 0218 movw r2, #4120 ; 0x1018 - | I2C_CONCLR_STAC | I2C_CONCLR_I2ENC); - - /* enable I2C0 */ - I2C0_CONSET = I2C_CONSET_I2EN; - 1152: f44f 5380 mov.w r3, #4096 ; 0x1000 -#define SFSP_I2C1_SDA_SCL (0x00000001 | SCU_CONF_ZIF_DIS_IN_GLITCH_FILT | SCU_CONF_EZI_EN_IN_BUFFER) - -void i2c0_init(const uint16_t duty_cycle_count) -{ - /* enable input on SCL and SDA pins */ - SCU_SFSI2C0 = SCU_I2C0_NOMINAL; - 1156: f2c4 0508 movt r5, #16392 ; 0x4008 - - I2C0_SCLH = duty_cycle_count; - 115a: f2c4 040a movt r4, #16394 ; 0x400a - I2C0_SCLL = duty_cycle_count; - - /* clear the control bits */ - I2C0_CONCLR = (I2C_CONCLR_AAC | I2C_CONCLR_SIC - 115e: f2c4 020a movt r2, #16394 ; 0x400a - | I2C_CONCLR_STAC | I2C_CONCLR_I2ENC); - - /* enable I2C0 */ - I2C0_CONSET = I2C_CONSET_I2EN; - 1162: f2c4 030a movt r3, #16394 ; 0x400a -#define SFSP_I2C1_SDA_SCL (0x00000001 | SCU_CONF_ZIF_DIS_IN_GLITCH_FILT | SCU_CONF_EZI_EN_IN_BUFFER) - -void i2c0_init(const uint16_t duty_cycle_count) -{ - /* enable input on SCL and SDA pins */ - SCU_SFSI2C0 = SCU_I2C0_NOMINAL; - 1166: f640 0608 movw r6, #2056 ; 0x808 - 116a: 602e str r6, [r5, #0] - - I2C0_SCLH = duty_cycle_count; - 116c: 6020 str r0, [r4, #0] - I2C0_SCLL = duty_cycle_count; - 116e: 6008 str r0, [r1, #0] - - /* clear the control bits */ - I2C0_CONCLR = (I2C_CONCLR_AAC | I2C_CONCLR_SIC - 1170: 206c movs r0, #108 ; 0x6c - | I2C_CONCLR_STAC | I2C_CONCLR_I2ENC); - - /* enable I2C0 */ - I2C0_CONSET = I2C_CONSET_I2EN; - 1172: 2140 movs r1, #64 ; 0x40 - - I2C0_SCLH = duty_cycle_count; - I2C0_SCLL = duty_cycle_count; - - /* clear the control bits */ - I2C0_CONCLR = (I2C_CONCLR_AAC | I2C_CONCLR_SIC - 1174: 6010 str r0, [r2, #0] - | I2C_CONCLR_STAC | I2C_CONCLR_I2ENC); - - /* enable I2C0 */ - I2C0_CONSET = I2C_CONSET_I2EN; - 1176: 6019 str r1, [r3, #0] -} - 1178: bc70 pop {r4, r5, r6} - 117a: 4770 bx lr - -0000117c : - -void i2c1_init(const uint16_t duty_cycle_count) -{ - 117c: b4f0 push {r4, r5, r6, r7} - /* Configure pin function for I2C1*/ - SCU_SFSP2_3 = SFSP_I2C1_SDA_SCL; - SCU_SFSP2_4 = SFSP_I2C1_SDA_SCL; - - I2C1_SCLH = duty_cycle_count; - I2C1_SCLL = duty_cycle_count; - 117e: 2114 movs r1, #20 -} - -void i2c1_init(const uint16_t duty_cycle_count) -{ - /* Configure pin function for I2C1*/ - SCU_SFSP2_3 = SFSP_I2C1_SDA_SCL; - 1180: f246 160c movw r6, #24844 ; 0x610c - SCU_SFSP2_4 = SFSP_I2C1_SDA_SCL; - 1184: f246 1510 movw r5, #24848 ; 0x6110 - - I2C1_SCLH = duty_cycle_count; - 1188: 2410 movs r4, #16 - I2C1_SCLL = duty_cycle_count; - 118a: f2c4 010e movt r1, #16398 ; 0x400e - - /* clear the control bits */ - I2C1_CONCLR = (I2C_CONCLR_AAC | I2C_CONCLR_SIC - 118e: 2218 movs r2, #24 - | I2C_CONCLR_STAC | I2C_CONCLR_I2ENC); - - /* enable I2C1 */ - I2C1_CONSET = I2C_CONSET_I2EN; - 1190: 2300 movs r3, #0 -} - -void i2c1_init(const uint16_t duty_cycle_count) -{ - /* Configure pin function for I2C1*/ - SCU_SFSP2_3 = SFSP_I2C1_SDA_SCL; - 1192: f2c4 0608 movt r6, #16392 ; 0x4008 - SCU_SFSP2_4 = SFSP_I2C1_SDA_SCL; - 1196: f2c4 0508 movt r5, #16392 ; 0x4008 - - I2C1_SCLH = duty_cycle_count; - 119a: f2c4 040e movt r4, #16398 ; 0x400e -} - -void i2c1_init(const uint16_t duty_cycle_count) -{ - /* Configure pin function for I2C1*/ - SCU_SFSP2_3 = SFSP_I2C1_SDA_SCL; - 119e: 27c1 movs r7, #193 ; 0xc1 - - I2C1_SCLH = duty_cycle_count; - I2C1_SCLL = duty_cycle_count; - - /* clear the control bits */ - I2C1_CONCLR = (I2C_CONCLR_AAC | I2C_CONCLR_SIC - 11a0: f2c4 020e movt r2, #16398 ; 0x400e - | I2C_CONCLR_STAC | I2C_CONCLR_I2ENC); - - /* enable I2C1 */ - I2C1_CONSET = I2C_CONSET_I2EN; - 11a4: f2c4 030e movt r3, #16398 ; 0x400e -} - -void i2c1_init(const uint16_t duty_cycle_count) -{ - /* Configure pin function for I2C1*/ - SCU_SFSP2_3 = SFSP_I2C1_SDA_SCL; - 11a8: 6037 str r7, [r6, #0] - SCU_SFSP2_4 = SFSP_I2C1_SDA_SCL; - 11aa: 602f str r7, [r5, #0] - - I2C1_SCLH = duty_cycle_count; - 11ac: 6020 str r0, [r4, #0] - I2C1_SCLL = duty_cycle_count; - 11ae: 6008 str r0, [r1, #0] - - /* clear the control bits */ - I2C1_CONCLR = (I2C_CONCLR_AAC | I2C_CONCLR_SIC - 11b0: 206c movs r0, #108 ; 0x6c - | I2C_CONCLR_STAC | I2C_CONCLR_I2ENC); - - /* enable I2C1 */ - I2C1_CONSET = I2C_CONSET_I2EN; - 11b2: 2140 movs r1, #64 ; 0x40 - - I2C1_SCLH = duty_cycle_count; - I2C1_SCLL = duty_cycle_count; - - /* clear the control bits */ - I2C1_CONCLR = (I2C_CONCLR_AAC | I2C_CONCLR_SIC - 11b4: 6010 str r0, [r2, #0] - | I2C_CONCLR_STAC | I2C_CONCLR_I2ENC); - - /* enable I2C1 */ - I2C1_CONSET = I2C_CONSET_I2EN; - 11b6: 6019 str r1, [r3, #0] -} - 11b8: bcf0 pop {r4, r5, r6, r7} - 11ba: 4770 bx lr - -000011bc : -/* transmit start bit */ -void i2c0_tx_start(void) -{ - uint32_t timeout; - - I2C0_CONCLR = I2C_CONCLR_SIC; - 11bc: f241 0318 movw r3, #4120 ; 0x1018 - I2C0_CONSET = I2C_CONSET_STA; - 11c0: f44f 5280 mov.w r2, #4096 ; 0x1000 - 11c4: f2c4 020a movt r2, #16394 ; 0x400a -/* transmit start bit */ -void i2c0_tx_start(void) -{ - uint32_t timeout; - - I2C0_CONCLR = I2C_CONCLR_SIC; - 11c8: f2c4 030a movt r3, #16394 ; 0x400a - 11cc: 2108 movs r1, #8 - I2C0_CONSET = I2C_CONSET_STA; - 11ce: 2020 movs r0, #32 -/* transmit start bit */ -void i2c0_tx_start(void) -{ - uint32_t timeout; - - I2C0_CONCLR = I2C_CONCLR_SIC; - 11d0: 6019 str r1, [r3, #0] - I2C0_CONSET = I2C_CONSET_STA; - 11d2: 6010 str r0, [r2, #0] - - timeout = 0; - while( (!(I2C0_CONSET & I2C_CONSET_SI)) && (timeout < I2C_TIMEOUT) ) - 11d4: 6813 ldr r3, [r2, #0] - 11d6: 0718 lsls r0, r3, #28 - 11d8: d40d bmi.n 11f6 - 11da: f242 7010 movw r0, #10000 ; 0x2710 - 11de: e004 b.n 11ea - 11e0: 6813 ldr r3, [r2, #0] - 11e2: 0719 lsls r1, r3, #28 - 11e4: d407 bmi.n 11f6 - 11e6: 3801 subs r0, #1 - 11e8: d005 beq.n 11f6 - 11ea: 6811 ldr r1, [r2, #0] - 11ec: f011 0f08 tst.w r1, #8 - 11f0: f100 30ff add.w r0, r0, #4294967295 - 11f4: d0f4 beq.n 11e0 - { - timeout++; - } - - I2C0_CONCLR = I2C_CONCLR_STAC; - 11f6: f241 0118 movw r1, #4120 ; 0x1018 - 11fa: f2c4 010a movt r1, #16394 ; 0x400a - 11fe: 2220 movs r2, #32 - 1200: 600a str r2, [r1, #0] - 1202: 4770 bx lr - -00001204 : -/* transmit data byte */ -void i2c0_tx_byte(uint8_t byte) -{ - uint32_t timeout; - - if (I2C0_CONSET & I2C_CONSET_STA) - 1204: f44f 5380 mov.w r3, #4096 ; 0x1000 - 1208: f2c4 030a movt r3, #16394 ; 0x400a - 120c: 6819 ldr r1, [r3, #0] - 120e: 068b lsls r3, r1, #26 - 1210: d505 bpl.n 121e - { - I2C0_CONCLR = I2C_CONCLR_STAC; - 1212: f241 0318 movw r3, #4120 ; 0x1018 - 1216: f2c4 030a movt r3, #16394 ; 0x400a - 121a: 2220 movs r2, #32 - 121c: 601a str r2, [r3, #0] - } - I2C0_DAT = byte; - 121e: f241 0108 movw r1, #4104 ; 0x1008 - 1222: f2c4 010a movt r1, #16394 ; 0x400a - I2C0_CONCLR = I2C_CONCLR_SIC; - 1226: f241 0318 movw r3, #4120 ; 0x1018 - 122a: f2c4 030a movt r3, #16394 ; 0x400a - - timeout = 0; - while( (!(I2C0_CONSET & I2C_CONSET_SI)) && (timeout < I2C_TIMEOUT) ) - 122e: f44f 5280 mov.w r2, #4096 ; 0x1000 - - if (I2C0_CONSET & I2C_CONSET_STA) - { - I2C0_CONCLR = I2C_CONCLR_STAC; - } - I2C0_DAT = byte; - 1232: 6008 str r0, [r1, #0] - I2C0_CONCLR = I2C_CONCLR_SIC; - - timeout = 0; - while( (!(I2C0_CONSET & I2C_CONSET_SI)) && (timeout < I2C_TIMEOUT) ) - 1234: f2c4 020a movt r2, #16394 ; 0x400a - if (I2C0_CONSET & I2C_CONSET_STA) - { - I2C0_CONCLR = I2C_CONCLR_STAC; - } - I2C0_DAT = byte; - I2C0_CONCLR = I2C_CONCLR_SIC; - 1238: 2008 movs r0, #8 - 123a: 6018 str r0, [r3, #0] - - timeout = 0; - while( (!(I2C0_CONSET & I2C_CONSET_SI)) && (timeout < I2C_TIMEOUT) ) - 123c: 6811 ldr r1, [r2, #0] - 123e: 0708 lsls r0, r1, #28 - 1240: d40d bmi.n 125e - 1242: f242 7310 movw r3, #10000 ; 0x2710 - 1246: e004 b.n 1252 - 1248: 6811 ldr r1, [r2, #0] - 124a: 0709 lsls r1, r1, #28 - 124c: d407 bmi.n 125e - 124e: 3b01 subs r3, #1 - 1250: d006 beq.n 1260 - 1252: 6810 ldr r0, [r2, #0] - 1254: f010 0f08 tst.w r0, #8 - 1258: f103 33ff add.w r3, r3, #4294967295 - 125c: d0f4 beq.n 1248 - 125e: 4770 bx lr - 1260: 4770 bx lr - 1262: bf00 nop - -00001264 : -/* receive data byte */ -uint8_t i2c0_rx_byte(void) -{ - uint32_t timeout; - - if (I2C0_CONSET & I2C_CONSET_STA) - 1264: f44f 5380 mov.w r3, #4096 ; 0x1000 - 1268: f2c4 030a movt r3, #16394 ; 0x400a - 126c: 6818 ldr r0, [r3, #0] - 126e: 0683 lsls r3, r0, #26 - 1270: d505 bpl.n 127e - { - I2C0_CONCLR = I2C_CONCLR_STAC; - 1272: f241 0118 movw r1, #4120 ; 0x1018 - 1276: f2c4 010a movt r1, #16394 ; 0x400a - 127a: 2220 movs r2, #32 - 127c: 600a str r2, [r1, #0] - } - I2C0_CONCLR = I2C_CONCLR_SIC; - 127e: f241 0318 movw r3, #4120 ; 0x1018 - 1282: f2c4 030a movt r3, #16394 ; 0x400a - - timeout = 0; - while( (!(I2C0_CONSET & I2C_CONSET_SI)) && (timeout < I2C_TIMEOUT) ) - 1286: f44f 5280 mov.w r2, #4096 ; 0x1000 - - if (I2C0_CONSET & I2C_CONSET_STA) - { - I2C0_CONCLR = I2C_CONCLR_STAC; - } - I2C0_CONCLR = I2C_CONCLR_SIC; - 128a: 2008 movs r0, #8 - - timeout = 0; - while( (!(I2C0_CONSET & I2C_CONSET_SI)) && (timeout < I2C_TIMEOUT) ) - 128c: f2c4 020a movt r2, #16394 ; 0x400a - - if (I2C0_CONSET & I2C_CONSET_STA) - { - I2C0_CONCLR = I2C_CONCLR_STAC; - } - I2C0_CONCLR = I2C_CONCLR_SIC; - 1290: 6018 str r0, [r3, #0] - - timeout = 0; - while( (!(I2C0_CONSET & I2C_CONSET_SI)) && (timeout < I2C_TIMEOUT) ) - 1292: 6811 ldr r1, [r2, #0] - 1294: 0708 lsls r0, r1, #28 - 1296: d40d bmi.n 12b4 - 1298: f242 7310 movw r3, #10000 ; 0x2710 - 129c: e004 b.n 12a8 - 129e: 6811 ldr r1, [r2, #0] - 12a0: 0709 lsls r1, r1, #28 - 12a2: d407 bmi.n 12b4 - 12a4: 3b01 subs r3, #1 - 12a6: d005 beq.n 12b4 - 12a8: 6810 ldr r0, [r2, #0] - 12aa: f010 0f08 tst.w r0, #8 - 12ae: f103 33ff add.w r3, r3, #4294967295 - 12b2: d0f4 beq.n 129e - { - timeout++; - } - - return I2C0_DAT; - 12b4: f241 0208 movw r2, #4104 ; 0x1008 - 12b8: f2c4 020a movt r2, #16394 ; 0x400a - 12bc: 6810 ldr r0, [r2, #0] -} - 12be: b2c0 uxtb r0, r0 - 12c0: 4770 bx lr - 12c2: bf00 nop - -000012c4 : -} - -/* transmit stop bit */ -void i2c0_stop(void) -{ - if (I2C0_CONSET & I2C_CONSET_STA) { - 12c4: f44f 5380 mov.w r3, #4096 ; 0x1000 - 12c8: f2c4 030a movt r3, #16394 ; 0x400a - 12cc: 6818 ldr r0, [r3, #0] - 12ce: 0682 lsls r2, r0, #26 - 12d0: d505 bpl.n 12de - I2C0_CONCLR = I2C_CONCLR_STAC; - 12d2: f241 0118 movw r1, #4120 ; 0x1018 - 12d6: f2c4 010a movt r1, #16394 ; 0x400a - 12da: 2220 movs r2, #32 - 12dc: 600a str r2, [r1, #0] - } - I2C0_CONSET = I2C_CONSET_STO; - 12de: f44f 5080 mov.w r0, #4096 ; 0x1000 - I2C0_CONCLR = I2C_CONCLR_SIC; - 12e2: f241 0318 movw r3, #4120 ; 0x1018 -void i2c0_stop(void) -{ - if (I2C0_CONSET & I2C_CONSET_STA) { - I2C0_CONCLR = I2C_CONCLR_STAC; - } - I2C0_CONSET = I2C_CONSET_STO; - 12e6: f2c4 000a movt r0, #16394 ; 0x400a - I2C0_CONCLR = I2C_CONCLR_SIC; - 12ea: f2c4 030a movt r3, #16394 ; 0x400a -void i2c0_stop(void) -{ - if (I2C0_CONSET & I2C_CONSET_STA) { - I2C0_CONCLR = I2C_CONCLR_STAC; - } - I2C0_CONSET = I2C_CONSET_STO; - 12ee: 2110 movs r1, #16 - I2C0_CONCLR = I2C_CONCLR_SIC; - 12f0: 2208 movs r2, #8 -void i2c0_stop(void) -{ - if (I2C0_CONSET & I2C_CONSET_STA) { - I2C0_CONCLR = I2C_CONCLR_STAC; - } - I2C0_CONSET = I2C_CONSET_STO; - 12f2: 6001 str r1, [r0, #0] - I2C0_CONCLR = I2C_CONCLR_SIC; - 12f4: 601a str r2, [r3, #0] - 12f6: 4770 bx lr - -000012f8 : -void ipc_halt_m0(void) -{ - volatile uint32_t rst_active_status1; - - /* Check if M0 is reset by reading status */ - rst_active_status1 = RESET_ACTIVE_STATUS1; - 12f8: f243 1154 movw r1, #12628 ; 0x3154 - 12fc: f2c4 0105 movt r1, #16389 ; 0x4005 -#include -#include - -/* Set M0 in reset mode */ -void ipc_halt_m0(void) -{ - 1300: b082 sub sp, #8 - volatile uint32_t rst_active_status1; - - /* Check if M0 is reset by reading status */ - rst_active_status1 = RESET_ACTIVE_STATUS1; - 1302: 680b ldr r3, [r1, #0] - 1304: 9301 str r3, [sp, #4] - - /* If the M0 has reset not asserted, halt it... */ - while (rst_active_status1 & RESET_CTRL1_M0APP_RST) { - 1306: 9801 ldr r0, [sp, #4] - 1308: 01c2 lsls r2, r0, #7 - 130a: d50d bpl.n 1328 - RESET_CTRL1 = ((~rst_active_status1) | RESET_CTRL1_M0APP_RST); - 130c: f243 1204 movw r2, #12548 ; 0x3104 - 1310: f2c4 0205 movt r2, #16389 ; 0x4005 - 1314: 9b01 ldr r3, [sp, #4] - 1316: 43d8 mvns r0, r3 - 1318: f040 7380 orr.w r3, r0, #16777216 ; 0x1000000 - 131c: 6013 str r3, [r2, #0] - rst_active_status1 = RESET_ACTIVE_STATUS1; - 131e: 6808 ldr r0, [r1, #0] - 1320: 9001 str r0, [sp, #4] - - /* Check if M0 is reset by reading status */ - rst_active_status1 = RESET_ACTIVE_STATUS1; - - /* If the M0 has reset not asserted, halt it... */ - while (rst_active_status1 & RESET_CTRL1_M0APP_RST) { - 1322: 9b01 ldr r3, [sp, #4] - 1324: 01db lsls r3, r3, #7 - 1326: d4f5 bmi.n 1314 - RESET_CTRL1 = ((~rst_active_status1) | RESET_CTRL1_M0APP_RST); - rst_active_status1 = RESET_ACTIVE_STATUS1; - } -} - 1328: b002 add sp, #8 - 132a: 4770 bx lr - -0000132c : -void ipc_start_m0(uint32_t cm0_baseaddr) -{ - volatile uint32_t rst_active_status1; - - /* Set M0 memory mapping to point to start of M0 image */ - CREG_M0APPMEMMAP = cm0_baseaddr; - 132c: f243 4304 movw r3, #13316 ; 0x3404 - 1330: f2c4 0304 movt r3, #16388 ; 0x4004 - - /* Start/run M0 core */ - - /* Release Slave from reset, first read status */ - rst_active_status1 = RESET_ACTIVE_STATUS1; - 1334: f243 1154 movw r1, #12628 ; 0x3154 - 1338: f2c4 0105 movt r1, #16389 ; 0x4005 -void ipc_start_m0(uint32_t cm0_baseaddr) -{ - volatile uint32_t rst_active_status1; - - /* Set M0 memory mapping to point to start of M0 image */ - CREG_M0APPMEMMAP = cm0_baseaddr; - 133c: 6018 str r0, [r3, #0] - } -} - -/* Start M0 */ -void ipc_start_m0(uint32_t cm0_baseaddr) -{ - 133e: b082 sub sp, #8 - CREG_M0APPMEMMAP = cm0_baseaddr; - - /* Start/run M0 core */ - - /* Release Slave from reset, first read status */ - rst_active_status1 = RESET_ACTIVE_STATUS1; - 1340: 6808 ldr r0, [r1, #0] - 1342: 9001 str r0, [sp, #4] - - /* If the M0 is being held in reset, release it */ - /* 1 = no reset, 0 = reset */ - while (!(rst_active_status1 & RESET_CTRL1_M0APP_RST)) { - 1344: 9a01 ldr r2, [sp, #4] - 1346: 01d3 lsls r3, r2, #7 - 1348: d40d bmi.n 1366 - RESET_CTRL1 = ((~rst_active_status1) & ~RESET_CTRL1_M0APP_RST); - 134a: f243 1204 movw r2, #12548 ; 0x3104 - 134e: f2c4 0205 movt r2, #16389 ; 0x4005 - 1352: 9b01 ldr r3, [sp, #4] - 1354: 43d8 mvns r0, r3 - 1356: f020 7380 bic.w r3, r0, #16777216 ; 0x1000000 - 135a: 6013 str r3, [r2, #0] - rst_active_status1 = RESET_ACTIVE_STATUS1; - 135c: 6808 ldr r0, [r1, #0] - 135e: 9001 str r0, [sp, #4] - /* Release Slave from reset, first read status */ - rst_active_status1 = RESET_ACTIVE_STATUS1; - - /* If the M0 is being held in reset, release it */ - /* 1 = no reset, 0 = reset */ - while (!(rst_active_status1 & RESET_CTRL1_M0APP_RST)) { - 1360: 9b01 ldr r3, [sp, #4] - 1362: 01d8 lsls r0, r3, #7 - 1364: d5f5 bpl.n 1352 - RESET_CTRL1 = ((~rst_active_status1) & ~RESET_CTRL1_M0APP_RST); - rst_active_status1 = RESET_ACTIVE_STATUS1; - } -} - 1366: b002 add sp, #8 - 1368: 4770 bx lr - 136a: bf00 nop - -0000136c : -void ipc_halt_m0s(void) -{ - volatile uint32_t rst_active_status0; - - /* Check if M0s is reset by reading status */ - rst_active_status0 = RESET_ACTIVE_STATUS0; - 136c: f243 1150 movw r1, #12624 ; 0x3150 - 1370: f2c4 0105 movt r1, #16389 ; 0x4005 - CREG_M0TXEVENT &= ~CREG_M0TXEVENT_TXEVCLR; -} - -/* Set M0s in reset mode (only for LPC4370) */ -void ipc_halt_m0s(void) -{ - 1374: b082 sub sp, #8 - volatile uint32_t rst_active_status0; - - /* Check if M0s is reset by reading status */ - rst_active_status0 = RESET_ACTIVE_STATUS0; - 1376: 680b ldr r3, [r1, #0] - 1378: 9301 str r3, [sp, #4] - - /* If the M0s has reset not asserted, halt it... */ - while (rst_active_status0 & RESET_CTRL0_M0_SUB_RST) { - 137a: 9801 ldr r0, [sp, #4] - 137c: 04c3 lsls r3, r0, #19 - 137e: d50d bpl.n 139c - RESET_CTRL0 = ((~rst_active_status0) | RESET_CTRL0_M0_SUB_RST); - 1380: f44f 5244 mov.w r2, #12544 ; 0x3100 - 1384: f2c4 0205 movt r2, #16389 ; 0x4005 - 1388: 9b01 ldr r3, [sp, #4] - 138a: 43d8 mvns r0, r3 - 138c: f440 5380 orr.w r3, r0, #4096 ; 0x1000 - 1390: 6013 str r3, [r2, #0] - rst_active_status0 = RESET_ACTIVE_STATUS0; - 1392: 6808 ldr r0, [r1, #0] - 1394: 9001 str r0, [sp, #4] - - /* Check if M0s is reset by reading status */ - rst_active_status0 = RESET_ACTIVE_STATUS0; - - /* If the M0s has reset not asserted, halt it... */ - while (rst_active_status0 & RESET_CTRL0_M0_SUB_RST) { - 1396: 9b01 ldr r3, [sp, #4] - 1398: 04d8 lsls r0, r3, #19 - 139a: d4f5 bmi.n 1388 - RESET_CTRL0 = ((~rst_active_status0) | RESET_CTRL0_M0_SUB_RST); - rst_active_status0 = RESET_ACTIVE_STATUS0; - } -} - 139c: b002 add sp, #8 - 139e: 4770 bx lr - -000013a0 : - } - -} - -void blocking_handler(void) -{ - 13a0: e7fe b.n 13a0 - 13a2: bf00 nop - -000013a4 : - while (1); -} - -void null_handler(void) -{ - 13a4: 4770 bx lr - 13a6: bf00 nop - -000013a8 : -void WEAK __attribute__ ((naked)) reset_handler(void) -{ - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; - 13a8: 4997 ldr r1, [pc, #604] ; (1608 ) - 13aa: 4a98 ldr r2, [pc, #608] ; (160c ) - 13ac: 4291 cmp r1, r2 - 13ae: f080 8128 bcs.w 1602 - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) - 13b2: 1cd5 adds r5, r2, #3 - 13b4: 1d0b adds r3, r1, #4 -{ - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; - 13b6: 4896 ldr r0, [pc, #600] ; (1610 ) - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) - 13b8: 1aec subs r4, r5, r3 - 13ba: f024 0703 bic.w r7, r4, #3 - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; - dest < &_edata; - src++, dest++) { - *dest = *src; - 13be: 4602 mov r2, r0 - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) - 13c0: 1d3d adds r5, r7, #4 - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; - dest < &_edata; - src++, dest++) { - *dest = *src; - 13c2: f852 6b04 ldr.w r6, [r2], #4 - 13c6: 463c mov r4, r7 - 13c8: 186f adds r7, r5, r1 -void WEAK __attribute__ ((naked)) reset_handler(void) -{ - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; - 13ca: 42bb cmp r3, r7 - dest < &_edata; - src++, dest++) { - *dest = *src; - 13cc: 600e str r6, [r1, #0] - 13ce: f3c4 0680 ubfx r6, r4, #2, #1 -void WEAK __attribute__ ((naked)) reset_handler(void) -{ - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; - 13d2: d014 beq.n 13fe - 13d4: b13e cbz r6, 13e6 - dest < &_edata; - src++, dest++) { - *dest = *src; - 13d6: 6812 ldr r2, [r2, #0] - 13d8: 601a str r2, [r3, #0] - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; - dest < &_edata; - src++, dest++) { - 13da: f101 0308 add.w r3, r1, #8 -void WEAK __attribute__ ((naked)) reset_handler(void) -{ - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; - 13de: 42bb cmp r3, r7 - dest < &_edata; - src++, dest++) { - 13e0: f100 0208 add.w r2, r0, #8 -void WEAK __attribute__ ((naked)) reset_handler(void) -{ - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; - 13e4: d00b beq.n 13fe - dest < &_edata; - src++, dest++) { - *dest = *src; - 13e6: 4611 mov r1, r2 - 13e8: 4618 mov r0, r3 - 13ea: f851 4b04 ldr.w r4, [r1], #4 - 13ee: f840 4b04 str.w r4, [r0], #4 - 13f2: 6855 ldr r5, [r2, #4] - 13f4: 605d str r5, [r3, #4] - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; - dest < &_edata; - src++, dest++) { - 13f6: 1d03 adds r3, r0, #4 - 13f8: 1d0a adds r2, r1, #4 -void WEAK __attribute__ ((naked)) reset_handler(void) -{ - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; - 13fa: 42bb cmp r3, r7 - 13fc: d1f3 bne.n 13e6 - dest < &_edata; - src++, dest++) { - *dest = *src; - } - - while (dest < &_ebss) { - 13fe: 4f85 ldr r7, [pc, #532] ; (1614 ) - 1400: 42bb cmp r3, r7 - 1402: d216 bcs.n 1432 - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) - 1404: 1cfe adds r6, r7, #3 - 1406: 1d1a adds r2, r3, #4 - 1408: 1ab1 subs r1, r6, r2 - 140a: f021 0003 bic.w r0, r1, #3 - 140e: 1d04 adds r4, r0, #4 - 1410: 191d adds r5, r3, r4 - 1412: 1aaf subs r7, r5, r2 - src++, dest++) { - *dest = *src; - } - - while (dest < &_ebss) { - *dest++ = 0; - 1414: 2600 movs r6, #0 - 1416: 077c lsls r4, r7, #29 - 1418: d508 bpl.n 142c - 141a: 601e str r6, [r3, #0] - 141c: 4613 mov r3, r2 - 141e: 3204 adds r2, #4 - dest < &_edata; - src++, dest++) { - *dest = *src; - } - - while (dest < &_ebss) { - 1420: 42aa cmp r2, r5 - *dest++ = 0; - 1422: 601e str r6, [r3, #0] - dest < &_edata; - src++, dest++) { - *dest = *src; - } - - while (dest < &_ebss) { - 1424: d005 beq.n 1432 - *dest++ = 0; - 1426: 1d13 adds r3, r2, #4 - 1428: 6016 str r6, [r2, #0] - 142a: 1d1a adds r2, r3, #4 - dest < &_edata; - src++, dest++) { - *dest = *src; - } - - while (dest < &_ebss) { - 142c: 42aa cmp r2, r5 - *dest++ = 0; - 142e: 601e str r6, [r3, #0] - dest < &_edata; - src++, dest++) { - *dest = *src; - } - - while (dest < &_ebss) { - 1430: d1f9 bne.n 1426 - *dest++ = 0; - } - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - 1432: 4d79 ldr r5, [pc, #484] ; (1618 ) - 1434: 4b79 ldr r3, [pc, #484] ; (161c ) - 1436: 429d cmp r5, r3 - 1438: d21c bcs.n 1474 - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) - 143a: 1cd9 adds r1, r3, #3 - 143c: 1d2e adds r6, r5, #4 - 143e: 1b88 subs r0, r1, r6 - 1440: 0883 lsrs r3, r0, #2 - 1442: 1c5f adds r7, r3, #1 - 1444: 2401 movs r4, #1 - *dest++ = 0; - } - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - (*fp)(); - 1446: 682a ldr r2, [r5, #0] - 1448: ea03 0804 and.w r8, r3, r4 - 144c: 4790 blx r2 - while (dest < &_ebss) { - *dest++ = 0; - } - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - 144e: 42bc cmp r4, r7 - 1450: d010 beq.n 1474 - 1452: f1b8 0f00 cmp.w r8, #0 - 1456: d005 beq.n 1464 - 1458: 2402 movs r4, #2 - (*fp)(); - 145a: 6831 ldr r1, [r6, #0] - 145c: 4788 blx r1 - while (dest < &_ebss) { - *dest++ = 0; - } - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - 145e: 42bc cmp r4, r7 - 1460: 4635 mov r5, r6 - 1462: d007 beq.n 1474 - (*fp)(); - 1464: 686e ldr r6, [r5, #4] - 1466: 47b0 blx r6 - 1468: 3402 adds r4, #2 - 146a: 68a8 ldr r0, [r5, #8] - 146c: 4780 blx r0 - 146e: 3508 adds r5, #8 - while (dest < &_ebss) { - *dest++ = 0; - } - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - 1470: 42bc cmp r4, r7 - 1472: d1f7 bne.n 1464 - (*fp)(); - } - for (fp = &__init_array_start; fp < &__init_array_end; fp++) { - 1474: 4d6a ldr r5, [pc, #424] ; (1620 ) - 1476: 4b6b ldr r3, [pc, #428] ; (1624 ) - 1478: 429d cmp r5, r3 - 147a: d21c bcs.n 14b6 - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) - 147c: 1cdf adds r7, r3, #3 - 147e: 1d2e adds r6, r5, #4 - 1480: 1bba subs r2, r7, r6 - 1482: 0891 lsrs r1, r2, #2 - 1484: 1c4f adds r7, r1, #1 - 1486: 2401 movs r4, #1 - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - (*fp)(); - } - for (fp = &__init_array_start; fp < &__init_array_end; fp++) { - (*fp)(); - 1488: 6828 ldr r0, [r5, #0] - 148a: ea01 0904 and.w r9, r1, r4 - 148e: 4780 blx r0 - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - (*fp)(); - } - for (fp = &__init_array_start; fp < &__init_array_end; fp++) { - 1490: 42bc cmp r4, r7 - 1492: d010 beq.n 14b6 - 1494: f1b9 0f00 cmp.w r9, #0 - 1498: d005 beq.n 14a6 - 149a: 2402 movs r4, #2 - (*fp)(); - 149c: 6833 ldr r3, [r6, #0] - 149e: 4798 blx r3 - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - (*fp)(); - } - for (fp = &__init_array_start; fp < &__init_array_end; fp++) { - 14a0: 42bc cmp r4, r7 - 14a2: 4635 mov r5, r6 - 14a4: d007 beq.n 14b6 - (*fp)(); - 14a6: 686e ldr r6, [r5, #4] - 14a8: 47b0 blx r6 - 14aa: 3402 adds r4, #2 - 14ac: 68aa ldr r2, [r5, #8] - 14ae: 4790 blx r2 - 14b0: 3508 adds r5, #8 - - /* Constructors. */ - for (fp = &__preinit_array_start; fp < &__preinit_array_end; fp++) { - (*fp)(); - } - for (fp = &__init_array_start; fp < &__init_array_end; fp++) { - 14b2: 42bc cmp r4, r7 - 14b4: d1f7 bne.n 14a6 - // (for example when creating a final executable which you will - // not debug) by setting the define 'DONT_RESET_ON_RESTART'. - // - #ifndef DONT_RESET_ON_RESTART - // Disable interrupts - __asm volatile ("cpsid i"); - 14b6: b672 cpsid i - // LPC_RGU->RESET_CTRL1 @ 0x40053104 - // Note that we do not use the CMSIS register access mechanism, - // as there is no guarantee that the project has been configured - // to use CMSIS. - // Write to LPC_RGU->RESET_CTRL0 - *(RESET_CONTROL+0) = 0x10DF1000; - 14b8: f44f 5944 mov.w r9, #12544 ; 0x3100 - // GPIO_RST|AES_RST|ETHERNET_RST|SDIO_RST|DMA_RST| - // USB1_RST|USB0_RST|LCD_RST|M0_SUB_RST - // Write to LPC_RGU->RESET_CTRL1 - *(RESET_CONTROL+1) = 0x01DFF7FF; - 14bc: f243 1c04 movw ip, #12548 ; 0x3104 - // Clear all pending interrupts in the NVIC - volatile unsigned int *NVIC_ICPR = (unsigned int *) 0xE000E280; - unsigned int irqpendloop; - for(irqpendloop = 0; irqpendloop < 8; irqpendloop++) - { - *(NVIC_ICPR+irqpendloop)= 0xFFFFFFFF; - 14c0: f24e 2e80 movw lr, #57984 ; 0xe280 - 14c4: f24e 2784 movw r7, #57988 ; 0xe284 - 14c8: f24e 2688 movw r6, #57992 ; 0xe288 - 14cc: f24e 258c movw r5, #57996 ; 0xe28c - 14d0: f24e 2490 movw r4, #58000 ; 0xe290 - 14d4: f24e 2094 movw r0, #58004 ; 0xe294 - 14d8: f24e 2198 movw r1, #58008 ; 0xe298 - 14dc: f24e 229c movw r2, #58012 ; 0xe29c - // LPC_RGU->RESET_CTRL1 @ 0x40053104 - // Note that we do not use the CMSIS register access mechanism, - // as there is no guarantee that the project has been configured - // to use CMSIS. - // Write to LPC_RGU->RESET_CTRL0 - *(RESET_CONTROL+0) = 0x10DF1000; - 14e0: f2c4 0905 movt r9, #16389 ; 0x4005 - // GPIO_RST|AES_RST|ETHERNET_RST|SDIO_RST|DMA_RST| - // USB1_RST|USB0_RST|LCD_RST|M0_SUB_RST - // Write to LPC_RGU->RESET_CTRL1 - *(RESET_CONTROL+1) = 0x01DFF7FF; - 14e4: f2c4 0c05 movt ip, #16389 ; 0x4005 - // Clear all pending interrupts in the NVIC - volatile unsigned int *NVIC_ICPR = (unsigned int *) 0xE000E280; - unsigned int irqpendloop; - for(irqpendloop = 0; irqpendloop < 8; irqpendloop++) - { - *(NVIC_ICPR+irqpendloop)= 0xFFFFFFFF; - 14e8: f2ce 0e00 movt lr, #57344 ; 0xe000 - 14ec: f2ce 0700 movt r7, #57344 ; 0xe000 - 14f0: f2ce 0600 movt r6, #57344 ; 0xe000 - 14f4: f2ce 0500 movt r5, #57344 ; 0xe000 - 14f8: f2ce 0400 movt r4, #57344 ; 0xe000 - 14fc: f2ce 0000 movt r0, #57344 ; 0xe000 - 1500: f2ce 0100 movt r1, #57344 ; 0xe000 - 1504: f2ce 0200 movt r2, #57344 ; 0xe000 - // LPC_RGU->RESET_CTRL1 @ 0x40053104 - // Note that we do not use the CMSIS register access mechanism, - // as there is no guarantee that the project has been configured - // to use CMSIS. - // Write to LPC_RGU->RESET_CTRL0 - *(RESET_CONTROL+0) = 0x10DF1000; - 1508: f44f 5a80 mov.w sl, #4096 ; 0x1000 - // GPIO_RST|AES_RST|ETHERNET_RST|SDIO_RST|DMA_RST| - // USB1_RST|USB0_RST|LCD_RST|M0_SUB_RST - // Write to LPC_RGU->RESET_CTRL1 - *(RESET_CONTROL+1) = 0x01DFF7FF; - 150c: f24f 78ff movw r8, #63487 ; 0xf7ff - // Clear all pending interrupts in the NVIC - volatile unsigned int *NVIC_ICPR = (unsigned int *) 0xE000E280; - unsigned int irqpendloop; - for(irqpendloop = 0; irqpendloop < 8; irqpendloop++) - { - *(NVIC_ICPR+irqpendloop)= 0xFFFFFFFF; - 1510: f04f 33ff mov.w r3, #4294967295 - // LPC_RGU->RESET_CTRL1 @ 0x40053104 - // Note that we do not use the CMSIS register access mechanism, - // as there is no guarantee that the project has been configured - // to use CMSIS. - // Write to LPC_RGU->RESET_CTRL0 - *(RESET_CONTROL+0) = 0x10DF1000; - 1514: f2c1 0adf movt sl, #4319 ; 0x10df - // GPIO_RST|AES_RST|ETHERNET_RST|SDIO_RST|DMA_RST| - // USB1_RST|USB0_RST|LCD_RST|M0_SUB_RST - // Write to LPC_RGU->RESET_CTRL1 - *(RESET_CONTROL+1) = 0x01DFF7FF; - 1518: f2c0 18df movt r8, #479 ; 0x1df - // LPC_RGU->RESET_CTRL1 @ 0x40053104 - // Note that we do not use the CMSIS register access mechanism, - // as there is no guarantee that the project has been configured - // to use CMSIS. - // Write to LPC_RGU->RESET_CTRL0 - *(RESET_CONTROL+0) = 0x10DF1000; - 151c: f8c9 a000 str.w sl, [r9] - // GPIO_RST|AES_RST|ETHERNET_RST|SDIO_RST|DMA_RST| - // USB1_RST|USB0_RST|LCD_RST|M0_SUB_RST - // Write to LPC_RGU->RESET_CTRL1 - *(RESET_CONTROL+1) = 0x01DFF7FF; - 1520: f8cc 8000 str.w r8, [ip] - // Clear all pending interrupts in the NVIC - volatile unsigned int *NVIC_ICPR = (unsigned int *) 0xE000E280; - unsigned int irqpendloop; - for(irqpendloop = 0; irqpendloop < 8; irqpendloop++) - { - *(NVIC_ICPR+irqpendloop)= 0xFFFFFFFF; - 1524: f8ce 3000 str.w r3, [lr] - 1528: 603b str r3, [r7, #0] - 152a: 6033 str r3, [r6, #0] - 152c: 602b str r3, [r5, #0] - 152e: 6023 str r3, [r4, #0] - 1530: 6003 str r3, [r0, #0] - 1532: 600b str r3, [r1, #0] - 1534: 6013 str r3, [r2, #0] - } - // Reenable interrupts - __asm volatile ("cpsie i"); - 1536: b662 cpsie i - // equivalent to CMSIS '__enable_irq()' function - #endif // ifndef DONT_RESET_ON_RESTART - // ************************************************************* - - /* Copy the code from ROM to Real RAM (if enabled) */ - if ((&_etext_ram-&_text_ram) > 0) { - 1538: 4b3b ldr r3, [pc, #236] ; (1628 ) - 153a: 4e3c ldr r6, [pc, #240] ; (162c ) - 153c: 1b9d subs r5, r3, r6 - 153e: 2d03 cmp r5, #3 - 1540: dd33 ble.n 15aa - src = &_etext_rom-(&_etext_ram-&_text_ram); - /* Change Shadow memory to ROM (for Debug Purpose in case Boot - * has not set correctly the M4MEMMAP because of debug) - */ - CREG_M4MEMMAP = (unsigned long)src; - 1542: f44f 5044 mov.w r0, #12544 ; 0x3100 - #endif // ifndef DONT_RESET_ON_RESTART - // ************************************************************* - - /* Copy the code from ROM to Real RAM (if enabled) */ - if ((&_etext_ram-&_text_ram) > 0) { - src = &_etext_rom-(&_etext_ram-&_text_ram); - 1546: 4a3a ldr r2, [pc, #232] ; (1630 ) - 1548: f025 0103 bic.w r1, r5, #3 - /* Change Shadow memory to ROM (for Debug Purpose in case Boot - * has not set correctly the M4MEMMAP because of debug) - */ - CREG_M4MEMMAP = (unsigned long)src; - 154c: f2c4 0004 movt r0, #16388 ; 0x4004 - #endif // ifndef DONT_RESET_ON_RESTART - // ************************************************************* - - /* Copy the code from ROM to Real RAM (if enabled) */ - if ((&_etext_ram-&_text_ram) > 0) { - src = &_etext_rom-(&_etext_ram-&_text_ram); - 1550: 1a52 subs r2, r2, r1 - /* Change Shadow memory to ROM (for Debug Purpose in case Boot - * has not set correctly the M4MEMMAP because of debug) - */ - CREG_M4MEMMAP = (unsigned long)src; - - for (dest = &_text_ram; dest < &_etext_ram; ) { - 1552: 429e cmp r6, r3 - if ((&_etext_ram-&_text_ram) > 0) { - src = &_etext_rom-(&_etext_ram-&_text_ram); - /* Change Shadow memory to ROM (for Debug Purpose in case Boot - * has not set correctly the M4MEMMAP because of debug) - */ - CREG_M4MEMMAP = (unsigned long)src; - 1554: 6002 str r2, [r0, #0] - - for (dest = &_text_ram; dest < &_etext_ram; ) { - 1556: d223 bcs.n 15a0 - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) - 1558: 1cdc adds r4, r3, #3 - 155a: 1d30 adds r0, r6, #4 - *dest++ = *src++; - 155c: 4613 mov r3, r2 - 155e: 1a25 subs r5, r4, r0 - 1560: f025 0503 bic.w r5, r5, #3 - 1564: f853 4b04 ldr.w r4, [r3], #4 - 1568: 4629 mov r1, r5 - 156a: 3504 adds r5, #4 - 156c: 1955 adds r5, r2, r5 - /* Change Shadow memory to ROM (for Debug Purpose in case Boot - * has not set correctly the M4MEMMAP because of debug) - */ - CREG_M4MEMMAP = (unsigned long)src; - - for (dest = &_text_ram; dest < &_etext_ram; ) { - 156e: 42ab cmp r3, r5 - *dest++ = *src++; - 1570: 6034 str r4, [r6, #0] - 1572: f3c1 0280 ubfx r2, r1, #2, #1 - /* Change Shadow memory to ROM (for Debug Purpose in case Boot - * has not set correctly the M4MEMMAP because of debug) - */ - CREG_M4MEMMAP = (unsigned long)src; - - for (dest = &_text_ram; dest < &_etext_ram; ) { - 1576: d013 beq.n 15a0 - 1578: b132 cbz r2, 1588 - *dest++ = *src++; - 157a: f853 1b04 ldr.w r1, [r3], #4 - /* Change Shadow memory to ROM (for Debug Purpose in case Boot - * has not set correctly the M4MEMMAP because of debug) - */ - CREG_M4MEMMAP = (unsigned long)src; - - for (dest = &_text_ram; dest < &_etext_ram; ) { - 157e: 42ab cmp r3, r5 - *dest++ = *src++; - 1580: 6001 str r1, [r0, #0] - 1582: f106 0008 add.w r0, r6, #8 - /* Change Shadow memory to ROM (for Debug Purpose in case Boot - * has not set correctly the M4MEMMAP because of debug) - */ - CREG_M4MEMMAP = (unsigned long)src; - - for (dest = &_text_ram; dest < &_etext_ram; ) { - 1586: d00b beq.n 15a0 - *dest++ = *src++; - 1588: 4619 mov r1, r3 - 158a: 4602 mov r2, r0 - 158c: f851 4b04 ldr.w r4, [r1], #4 - 1590: f842 4b04 str.w r4, [r2], #4 - 1594: 685c ldr r4, [r3, #4] - 1596: 1d0b adds r3, r1, #4 - 1598: 6044 str r4, [r0, #4] - 159a: 1d10 adds r0, r2, #4 - /* Change Shadow memory to ROM (for Debug Purpose in case Boot - * has not set correctly the M4MEMMAP because of debug) - */ - CREG_M4MEMMAP = (unsigned long)src; - - for (dest = &_text_ram; dest < &_etext_ram; ) { - 159c: 42ab cmp r3, r5 - 159e: d1f3 bne.n 1588 - *dest++ = *src++; - } - - /* Change Shadow memory to Real RAM */ - CREG_M4MEMMAP = (unsigned long)&_text_ram; - 15a0: f44f 5344 mov.w r3, #12544 ; 0x3100 - 15a4: f2c4 0304 movt r3, #16388 ; 0x4004 - 15a8: 601e str r6, [r3, #0] - - /* Continue Execution in RAM */ - } - - /* Enable access to Floating-Point coprocessor. */ - SCB_CPACR |= SCB_CPACR_FULL * (SCB_CPACR_CP10 | SCB_CPACR_CP11); - 15aa: f64e 5588 movw r5, #60808 ; 0xed88 - 15ae: f2ce 0500 movt r5, #57344 ; 0xe000 - 15b2: 6828 ldr r0, [r5, #0] - 15b4: f440 0170 orr.w r1, r0, #15728640 ; 0xf00000 - 15b8: 6029 str r1, [r5, #0] - - /* might be provided by platform specific vector.c */ - pre_main(); - - /* Call the application's entry point. */ - main(); - 15ba: f7fe fedd bl 378
- - /* Destructors. */ - for (fp = &__fini_array_start; fp < &__fini_array_end; fp++) { - 15be: 4d1d ldr r5, [pc, #116] ; (1634 ) - 15c0: 4a1d ldr r2, [pc, #116] ; (1638 ) - 15c2: 4295 cmp r5, r2 - 15c4: d21d bcs.n 1602 - .irq = { - IRQ_HANDLERS - } -}; - -void WEAK __attribute__ ((naked)) reset_handler(void) - 15c6: 1cd7 adds r7, r2, #3 - 15c8: 1d2e adds r6, r5, #4 - 15ca: 1bbc subs r4, r7, r6 - 15cc: 08a3 lsrs r3, r4, #2 - 15ce: 1c5f adds r7, r3, #1 - 15d0: 2401 movs r4, #1 - /* Call the application's entry point. */ - main(); - - /* Destructors. */ - for (fp = &__fini_array_start; fp < &__fini_array_end; fp++) { - (*fp)(); - 15d2: 6828 ldr r0, [r5, #0] - 15d4: ea03 0804 and.w r8, r3, r4 - 15d8: 4780 blx r0 - - /* Call the application's entry point. */ - main(); - - /* Destructors. */ - for (fp = &__fini_array_start; fp < &__fini_array_end; fp++) { - 15da: 42bc cmp r4, r7 - 15dc: d011 beq.n 1602 - 15de: f1b8 0f00 cmp.w r8, #0 - 15e2: d005 beq.n 15f0 - 15e4: 2402 movs r4, #2 - (*fp)(); - 15e6: 6831 ldr r1, [r6, #0] - 15e8: 4788 blx r1 - - /* Call the application's entry point. */ - main(); - - /* Destructors. */ - for (fp = &__fini_array_start; fp < &__fini_array_end; fp++) { - 15ea: 42bc cmp r4, r7 - 15ec: 4635 mov r5, r6 - 15ee: d008 beq.n 1602 - (*fp)(); - 15f0: 686a ldr r2, [r5, #4] - 15f2: 4790 blx r2 - 15f4: 3402 adds r4, #2 - 15f6: 68ab ldr r3, [r5, #8] - 15f8: 1d2e adds r6, r5, #4 - 15fa: 4798 blx r3 - 15fc: 3508 adds r5, #8 - - /* Call the application's entry point. */ - main(); - - /* Destructors. */ - for (fp = &__fini_array_start; fp < &__fini_array_end; fp++) { - 15fe: 42bc cmp r4, r7 - 1600: d1f6 bne.n 15f0 -void WEAK __attribute__ ((naked)) reset_handler(void) -{ - volatile unsigned *src, *dest; - funcp_t *fp; - - for (src = &_data_loadaddr, dest = &_data; - 1602: 460b mov r3, r1 - 1604: e6fb b.n 13fe - 1606: bf00 nop - 1608: 10080000 .word 0x10080000 - 160c: 1008001c .word 0x1008001c - 1610: 000050c0 .word 0x000050c0 - 1614: 10080088 .word 0x10080088 - 1618: 000050b8 .word 0x000050b8 - 161c: 000050b8 .word 0x000050b8 - 1620: 000050b8 .word 0x000050b8 - 1624: 000050b8 .word 0x000050b8 - 1628: 100050c0 .word 0x100050c0 - 162c: 10000000 .word 0x10000000 - 1630: 800050c0 .word 0x800050c0 - 1634: 000050b8 .word 0x000050b8 - 1638: 000050b8 .word 0x000050b8 - -0000163c : - * @param[in] irqn Unsigned int8. Interrupt number @ref nvic_stm32f1_userint - */ - -void nvic_enable_irq(uint8_t irqn) -{ - NVIC_ISER(irqn / 32) = (1 << (irqn % 32)); - 163c: 0943 lsrs r3, r0, #5 - 163e: 0099 lsls r1, r3, #2 - 1640: f101 4260 add.w r2, r1, #3758096384 ; 0xe0000000 - 1644: f502 4361 add.w r3, r2, #57600 ; 0xe100 - 1648: f000 001f and.w r0, r0, #31 - 164c: 2101 movs r1, #1 - 164e: fa01 f200 lsl.w r2, r1, r0 - 1652: 601a str r2, [r3, #0] - 1654: 4770 bx lr - 1656: bf00 nop - -00001658 : -void nvic_set_priority(uint8_t irqn, uint8_t priority) -{ - /* code from lpc43xx/nvic.c -- this is quite a hack and alludes to the - * negative interrupt numbers assigned to the system interrupts. better - * handling would mean signed integers. */ - if (irqn >= NVIC_IRQ_COUNT) { - 1658: 2834 cmp r0, #52 ; 0x34 - 165a: d805 bhi.n 1668 - /* Cortex-M system interrupts */ - SCS_SHPR((irqn & 0xF) - 4) = priority; - } else { - /* Device specific interrupts */ - NVIC_IPR(irqn) = priority; - 165c: f100 4060 add.w r0, r0, #3758096384 ; 0xe0000000 - 1660: f500 4264 add.w r2, r0, #58368 ; 0xe400 - 1664: 7011 strb r1, [r2, #0] - 1666: 4770 bx lr - /* code from lpc43xx/nvic.c -- this is quite a hack and alludes to the - * negative interrupt numbers assigned to the system interrupts. better - * handling would mean signed integers. */ - if (irqn >= NVIC_IRQ_COUNT) { - /* Cortex-M system interrupts */ - SCS_SHPR((irqn & 0xF) - 4) = priority; - 1668: f64e 5314 movw r3, #60692 ; 0xed14 - 166c: f000 000f and.w r0, r0, #15 - 1670: f2ce 0300 movt r3, #57344 ; 0xe000 - 1674: 54c1 strb r1, [r0, r3] - 1676: 4770 bx lr - -00001678 <__aeabi_ldivmod>: - 1678: b973 cbnz r3, 1698 <__aeabi_ldivmod+0x20> - 167a: b96a cbnz r2, 1698 <__aeabi_ldivmod+0x20> - 167c: 2900 cmp r1, #0 - 167e: bf08 it eq - 1680: 2800 cmpeq r0, #0 - 1682: bfbc itt lt - 1684: 2000 movlt r0, #0 - 1686: f04f 4100 movlt.w r1, #2147483648 ; 0x80000000 - 168a: bfc4 itt gt - 168c: f06f 4100 mvngt.w r1, #2147483648 ; 0x80000000 - 1690: f04f 30ff movgt.w r0, #4294967295 - 1694: f000 b838 b.w 1708 <__aeabi_idiv0> - 1698: b082 sub sp, #8 - 169a: 46ec mov ip, sp - 169c: e92d 5000 stmdb sp!, {ip, lr} - 16a0: f000 f806 bl 16b0 <__gnu_ldivmod_helper> - 16a4: f8dd e004 ldr.w lr, [sp, #4] - 16a8: b002 add sp, #8 - 16aa: bc0c pop {r2, r3} - 16ac: 4770 bx lr - 16ae: bf00 nop - -000016b0 <__gnu_ldivmod_helper>: - 16b0: b5f8 push {r3, r4, r5, r6, r7, lr} - 16b2: 4616 mov r6, r2 - 16b4: 4604 mov r4, r0 - 16b6: 460d mov r5, r1 - 16b8: 461f mov r7, r3 - 16ba: f000 f827 bl 170c <__divdi3> - 16be: fb06 f301 mul.w r3, r6, r1 - 16c2: fb00 3707 mla r7, r0, r7, r3 - 16c6: fba6 2300 umull r2, r3, r6, r0 - 16ca: 18fb adds r3, r7, r3 - 16cc: 1aa2 subs r2, r4, r2 - 16ce: eb65 0303 sbc.w r3, r5, r3 - 16d2: 9c06 ldr r4, [sp, #24] - 16d4: e9c4 2300 strd r2, r3, [r4] - 16d8: bdf8 pop {r3, r4, r5, r6, r7, pc} - 16da: bf00 nop - -000016dc <__gnu_uldivmod_helper>: - 16dc: b5f8 push {r3, r4, r5, r6, r7, lr} - 16de: 4616 mov r6, r2 - 16e0: 4604 mov r4, r0 - 16e2: 460d mov r5, r1 - 16e4: 461f mov r7, r3 - 16e6: f000 f96f bl 19c8 <__udivdi3> - 16ea: fb00 f707 mul.w r7, r0, r7 - 16ee: fba0 2306 umull r2, r3, r0, r6 - 16f2: fb06 7701 mla r7, r6, r1, r7 - 16f6: 18fb adds r3, r7, r3 - 16f8: 1aa2 subs r2, r4, r2 - 16fa: eb65 0303 sbc.w r3, r5, r3 - 16fe: 9c06 ldr r4, [sp, #24] - 1700: e9c4 2300 strd r2, r3, [r4] - 1704: bdf8 pop {r3, r4, r5, r6, r7, pc} - 1706: bf00 nop - -00001708 <__aeabi_idiv0>: - 1708: 4770 bx lr - 170a: bf00 nop - -0000170c <__divdi3>: - 170c: 2900 cmp r1, #0 - 170e: e92d 0ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp} - 1712: 461d mov r5, r3 - 1714: f2c0 809d blt.w 1852 <__divdi3+0x146> - 1718: 2400 movs r4, #0 - 171a: 2d00 cmp r5, #0 - 171c: f2c0 8094 blt.w 1848 <__divdi3+0x13c> - 1720: 4680 mov r8, r0 - 1722: 460f mov r7, r1 - 1724: 4694 mov ip, r2 - 1726: 461e mov r6, r3 - 1728: bbe3 cbnz r3, 17a4 <__divdi3+0x98> - 172a: 428a cmp r2, r1 - 172c: d955 bls.n 17da <__divdi3+0xce> - 172e: fab2 f782 clz r7, r2 - 1732: b147 cbz r7, 1746 <__divdi3+0x3a> - 1734: f1c7 0520 rsb r5, r7, #32 - 1738: fa20 f605 lsr.w r6, r0, r5 - 173c: fa01 f107 lsl.w r1, r1, r7 - 1740: 40ba lsls r2, r7 - 1742: 4331 orrs r1, r6 - 1744: 40b8 lsls r0, r7 - 1746: 0c17 lsrs r7, r2, #16 - 1748: fbb1 f6f7 udiv r6, r1, r7 - 174c: 0c03 lsrs r3, r0, #16 - 174e: fa1f fc82 uxth.w ip, r2 - 1752: fb07 1116 mls r1, r7, r6, r1 - 1756: fb0c f506 mul.w r5, ip, r6 - 175a: ea43 4301 orr.w r3, r3, r1, lsl #16 - 175e: 429d cmp r5, r3 - 1760: d908 bls.n 1774 <__divdi3+0x68> - 1762: 1e71 subs r1, r6, #1 - 1764: 189b adds r3, r3, r2 - 1766: f080 8113 bcs.w 1990 <__divdi3+0x284> - 176a: 429d cmp r5, r3 - 176c: f240 8110 bls.w 1990 <__divdi3+0x284> - 1770: 3e02 subs r6, #2 - 1772: 189b adds r3, r3, r2 - 1774: 1b59 subs r1, r3, r5 - 1776: fbb1 f5f7 udiv r5, r1, r7 - 177a: fb07 1315 mls r3, r7, r5, r1 - 177e: b280 uxth r0, r0 - 1780: fb0c fc05 mul.w ip, ip, r5 - 1784: ea40 4103 orr.w r1, r0, r3, lsl #16 - 1788: 458c cmp ip, r1 - 178a: d907 bls.n 179c <__divdi3+0x90> - 178c: 1e6b subs r3, r5, #1 - 178e: 188a adds r2, r1, r2 - 1790: f080 8100 bcs.w 1994 <__divdi3+0x288> - 1794: 4594 cmp ip, r2 - 1796: f240 80fd bls.w 1994 <__divdi3+0x288> - 179a: 3d02 subs r5, #2 - 179c: ea45 4106 orr.w r1, r5, r6, lsl #16 - 17a0: 2500 movs r5, #0 - 17a2: e003 b.n 17ac <__divdi3+0xa0> - 17a4: 428b cmp r3, r1 - 17a6: d90c bls.n 17c2 <__divdi3+0xb6> - 17a8: 2500 movs r5, #0 - 17aa: 4629 mov r1, r5 - 17ac: 460a mov r2, r1 - 17ae: 462b mov r3, r5 - 17b0: b114 cbz r4, 17b8 <__divdi3+0xac> - 17b2: 4252 negs r2, r2 - 17b4: eb63 0343 sbc.w r3, r3, r3, lsl #1 - 17b8: 4610 mov r0, r2 - 17ba: 4619 mov r1, r3 - 17bc: e8bd 0ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp} - 17c0: 4770 bx lr - 17c2: fab3 f583 clz r5, r3 - 17c6: 2d00 cmp r5, #0 - 17c8: f040 8087 bne.w 18da <__divdi3+0x1ce> - 17cc: 428b cmp r3, r1 - 17ce: d301 bcc.n 17d4 <__divdi3+0xc8> - 17d0: 4282 cmp r2, r0 - 17d2: d8ea bhi.n 17aa <__divdi3+0x9e> - 17d4: 2500 movs r5, #0 - 17d6: 2101 movs r1, #1 - 17d8: e7e8 b.n 17ac <__divdi3+0xa0> - 17da: b912 cbnz r2, 17e2 <__divdi3+0xd6> - 17dc: 2601 movs r6, #1 - 17de: fbb6 f2f2 udiv r2, r6, r2 - 17e2: fab2 f682 clz r6, r2 - 17e6: 2e00 cmp r6, #0 - 17e8: d139 bne.n 185e <__divdi3+0x152> - 17ea: 1a8e subs r6, r1, r2 - 17ec: 0c13 lsrs r3, r2, #16 - 17ee: fa1f fc82 uxth.w ip, r2 - 17f2: 2501 movs r5, #1 - 17f4: fbb6 f7f3 udiv r7, r6, r3 - 17f8: fb03 6117 mls r1, r3, r7, r6 - 17fc: ea4f 4910 mov.w r9, r0, lsr #16 - 1800: fb0c f807 mul.w r8, ip, r7 - 1804: ea49 4601 orr.w r6, r9, r1, lsl #16 - 1808: 45b0 cmp r8, r6 - 180a: d906 bls.n 181a <__divdi3+0x10e> - 180c: 1e79 subs r1, r7, #1 - 180e: 18b6 adds r6, r6, r2 - 1810: d202 bcs.n 1818 <__divdi3+0x10c> - 1812: 45b0 cmp r8, r6 - 1814: f200 80d3 bhi.w 19be <__divdi3+0x2b2> - 1818: 460f mov r7, r1 - 181a: ebc8 0606 rsb r6, r8, r6 - 181e: fbb6 f1f3 udiv r1, r6, r3 - 1822: fb03 6311 mls r3, r3, r1, r6 - 1826: b280 uxth r0, r0 - 1828: fb0c fc01 mul.w ip, ip, r1 - 182c: ea40 4303 orr.w r3, r0, r3, lsl #16 - 1830: 459c cmp ip, r3 - 1832: d906 bls.n 1842 <__divdi3+0x136> - 1834: 1e4e subs r6, r1, #1 - 1836: 189a adds r2, r3, r2 - 1838: d202 bcs.n 1840 <__divdi3+0x134> - 183a: 4594 cmp ip, r2 - 183c: f200 80c2 bhi.w 19c4 <__divdi3+0x2b8> - 1840: 4631 mov r1, r6 - 1842: ea41 4107 orr.w r1, r1, r7, lsl #16 - 1846: e7b1 b.n 17ac <__divdi3+0xa0> - 1848: 43e4 mvns r4, r4 - 184a: 4252 negs r2, r2 - 184c: eb63 0343 sbc.w r3, r3, r3, lsl #1 - 1850: e766 b.n 1720 <__divdi3+0x14> - 1852: 4240 negs r0, r0 - 1854: eb61 0141 sbc.w r1, r1, r1, lsl #1 - 1858: f04f 34ff mov.w r4, #4294967295 - 185c: e75d b.n 171a <__divdi3+0xe> - 185e: 40b2 lsls r2, r6 - 1860: f1c6 0920 rsb r9, r6, #32 - 1864: fa21 f709 lsr.w r7, r1, r9 - 1868: fa20 f509 lsr.w r5, r0, r9 - 186c: 0c13 lsrs r3, r2, #16 - 186e: fa01 f106 lsl.w r1, r1, r6 - 1872: fbb7 f8f3 udiv r8, r7, r3 - 1876: ea45 0901 orr.w r9, r5, r1 - 187a: fa1f fc82 uxth.w ip, r2 - 187e: fb03 7718 mls r7, r3, r8, r7 - 1882: ea4f 4119 mov.w r1, r9, lsr #16 - 1886: fb0c f508 mul.w r5, ip, r8 - 188a: ea41 4707 orr.w r7, r1, r7, lsl #16 - 188e: 40b0 lsls r0, r6 - 1890: 42bd cmp r5, r7 - 1892: d90a bls.n 18aa <__divdi3+0x19e> - 1894: 18bf adds r7, r7, r2 - 1896: f108 36ff add.w r6, r8, #4294967295 - 189a: f080 808e bcs.w 19ba <__divdi3+0x2ae> - 189e: 42bd cmp r5, r7 - 18a0: f240 808b bls.w 19ba <__divdi3+0x2ae> - 18a4: f1a8 0802 sub.w r8, r8, #2 - 18a8: 18bf adds r7, r7, r2 - 18aa: 1b79 subs r1, r7, r5 - 18ac: fbb1 f5f3 udiv r5, r1, r3 - 18b0: fb03 1715 mls r7, r3, r5, r1 - 18b4: fa1f f989 uxth.w r9, r9 - 18b8: fb0c f605 mul.w r6, ip, r5 - 18bc: ea49 4107 orr.w r1, r9, r7, lsl #16 - 18c0: 428e cmp r6, r1 - 18c2: d906 bls.n 18d2 <__divdi3+0x1c6> - 18c4: 1e6f subs r7, r5, #1 - 18c6: 1889 adds r1, r1, r2 - 18c8: d271 bcs.n 19ae <__divdi3+0x2a2> - 18ca: 428e cmp r6, r1 - 18cc: d96f bls.n 19ae <__divdi3+0x2a2> - 18ce: 3d02 subs r5, #2 - 18d0: 1889 adds r1, r1, r2 - 18d2: 1b8e subs r6, r1, r6 - 18d4: ea45 4508 orr.w r5, r5, r8, lsl #16 - 18d8: e78c b.n 17f4 <__divdi3+0xe8> - 18da: f1c5 0120 rsb r1, r5, #32 - 18de: fa22 f301 lsr.w r3, r2, r1 - 18e2: fa06 f605 lsl.w r6, r6, r5 - 18e6: 431e orrs r6, r3 - 18e8: fa27 f201 lsr.w r2, r7, r1 - 18ec: ea4f 4916 mov.w r9, r6, lsr #16 - 18f0: fa07 f705 lsl.w r7, r7, r5 - 18f4: fa20 f101 lsr.w r1, r0, r1 - 18f8: fbb2 f8f9 udiv r8, r2, r9 - 18fc: 430f orrs r7, r1 - 18fe: 0c3b lsrs r3, r7, #16 - 1900: fa1f fa86 uxth.w sl, r6 - 1904: fb09 2218 mls r2, r9, r8, r2 - 1908: fb0a fb08 mul.w fp, sl, r8 - 190c: ea43 4202 orr.w r2, r3, r2, lsl #16 - 1910: 4593 cmp fp, r2 - 1912: fa0c fc05 lsl.w ip, ip, r5 - 1916: d908 bls.n 192a <__divdi3+0x21e> - 1918: 1992 adds r2, r2, r6 - 191a: f108 31ff add.w r1, r8, #4294967295 - 191e: d24a bcs.n 19b6 <__divdi3+0x2aa> - 1920: 4593 cmp fp, r2 - 1922: d948 bls.n 19b6 <__divdi3+0x2aa> - 1924: f1a8 0802 sub.w r8, r8, #2 - 1928: 1992 adds r2, r2, r6 - 192a: ebcb 0302 rsb r3, fp, r2 - 192e: fbb3 f1f9 udiv r1, r3, r9 - 1932: fb09 3211 mls r2, r9, r1, r3 - 1936: b2bf uxth r7, r7 - 1938: fb0a fa01 mul.w sl, sl, r1 - 193c: ea47 4302 orr.w r3, r7, r2, lsl #16 - 1940: 459a cmp sl, r3 - 1942: d906 bls.n 1952 <__divdi3+0x246> - 1944: 1e4a subs r2, r1, #1 - 1946: 199b adds r3, r3, r6 - 1948: d233 bcs.n 19b2 <__divdi3+0x2a6> - 194a: 459a cmp sl, r3 - 194c: d931 bls.n 19b2 <__divdi3+0x2a6> - 194e: 3902 subs r1, #2 - 1950: 199b adds r3, r3, r6 - 1952: ea41 4108 orr.w r1, r1, r8, lsl #16 - 1956: 0c0f lsrs r7, r1, #16 - 1958: fa1f f88c uxth.w r8, ip - 195c: fb08 f607 mul.w r6, r8, r7 - 1960: b28a uxth r2, r1 - 1962: ea4f 4c1c mov.w ip, ip, lsr #16 - 1966: fb08 f802 mul.w r8, r8, r2 - 196a: fb0c 6202 mla r2, ip, r2, r6 - 196e: eb02 4218 add.w r2, r2, r8, lsr #16 - 1972: fb0c fc07 mul.w ip, ip, r7 - 1976: 4296 cmp r6, r2 - 1978: bf88 it hi - 197a: f50c 3c80 addhi.w ip, ip, #65536 ; 0x10000 - 197e: ebca 0303 rsb r3, sl, r3 - 1982: eb0c 4c12 add.w ip, ip, r2, lsr #16 - 1986: 4563 cmp r3, ip - 1988: d30e bcc.n 19a8 <__divdi3+0x29c> - 198a: d005 beq.n 1998 <__divdi3+0x28c> - 198c: 2500 movs r5, #0 - 198e: e70d b.n 17ac <__divdi3+0xa0> - 1990: 460e mov r6, r1 - 1992: e6ef b.n 1774 <__divdi3+0x68> - 1994: 461d mov r5, r3 - 1996: e701 b.n 179c <__divdi3+0x90> - 1998: fa1f f888 uxth.w r8, r8 - 199c: fa00 f005 lsl.w r0, r0, r5 - 19a0: eb08 4502 add.w r5, r8, r2, lsl #16 - 19a4: 42a8 cmp r0, r5 - 19a6: d2f1 bcs.n 198c <__divdi3+0x280> - 19a8: 3901 subs r1, #1 - 19aa: 2500 movs r5, #0 - 19ac: e6fe b.n 17ac <__divdi3+0xa0> - 19ae: 463d mov r5, r7 - 19b0: e78f b.n 18d2 <__divdi3+0x1c6> - 19b2: 4611 mov r1, r2 - 19b4: e7cd b.n 1952 <__divdi3+0x246> - 19b6: 4688 mov r8, r1 - 19b8: e7b7 b.n 192a <__divdi3+0x21e> - 19ba: 46b0 mov r8, r6 - 19bc: e775 b.n 18aa <__divdi3+0x19e> - 19be: 3f02 subs r7, #2 - 19c0: 18b6 adds r6, r6, r2 - 19c2: e72a b.n 181a <__divdi3+0x10e> - 19c4: 3902 subs r1, #2 - 19c6: e73c b.n 1842 <__divdi3+0x136> - -000019c8 <__udivdi3>: - 19c8: e92d 07f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl} - 19cc: 4614 mov r4, r2 - 19ce: 4605 mov r5, r0 - 19d0: 460e mov r6, r1 - 19d2: 2b00 cmp r3, #0 - 19d4: d13d bne.n 1a52 <__udivdi3+0x8a> - 19d6: 428a cmp r2, r1 - 19d8: d949 bls.n 1a6e <__udivdi3+0xa6> - 19da: fab2 f782 clz r7, r2 - 19de: b147 cbz r7, 19f2 <__udivdi3+0x2a> - 19e0: f1c7 0120 rsb r1, r7, #32 - 19e4: fa20 f201 lsr.w r2, r0, r1 - 19e8: fa06 f607 lsl.w r6, r6, r7 - 19ec: 40bc lsls r4, r7 - 19ee: 4316 orrs r6, r2 - 19f0: 40bd lsls r5, r7 - 19f2: 0c22 lsrs r2, r4, #16 - 19f4: fbb6 f0f2 udiv r0, r6, r2 - 19f8: 0c2f lsrs r7, r5, #16 - 19fa: b2a1 uxth r1, r4 - 19fc: fb02 6610 mls r6, r2, r0, r6 - 1a00: fb01 f300 mul.w r3, r1, r0 - 1a04: ea47 4606 orr.w r6, r7, r6, lsl #16 - 1a08: 42b3 cmp r3, r6 - 1a0a: d908 bls.n 1a1e <__udivdi3+0x56> - 1a0c: 1e47 subs r7, r0, #1 - 1a0e: 1936 adds r6, r6, r4 - 1a10: f080 80f8 bcs.w 1c04 <__udivdi3+0x23c> - 1a14: 42b3 cmp r3, r6 - 1a16: f240 80f5 bls.w 1c04 <__udivdi3+0x23c> - 1a1a: 3802 subs r0, #2 - 1a1c: 1936 adds r6, r6, r4 - 1a1e: 1af6 subs r6, r6, r3 - 1a20: fbb6 f3f2 udiv r3, r6, r2 - 1a24: fb02 6213 mls r2, r2, r3, r6 - 1a28: b2ad uxth r5, r5 - 1a2a: fb01 f103 mul.w r1, r1, r3 - 1a2e: ea45 4202 orr.w r2, r5, r2, lsl #16 - 1a32: 4291 cmp r1, r2 - 1a34: d907 bls.n 1a46 <__udivdi3+0x7e> - 1a36: 1e5e subs r6, r3, #1 - 1a38: 1912 adds r2, r2, r4 - 1a3a: f080 80e5 bcs.w 1c08 <__udivdi3+0x240> - 1a3e: 4291 cmp r1, r2 - 1a40: f240 80e2 bls.w 1c08 <__udivdi3+0x240> - 1a44: 3b02 subs r3, #2 - 1a46: ea43 4000 orr.w r0, r3, r0, lsl #16 - 1a4a: 2100 movs r1, #0 - 1a4c: e8bd 07f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl} - 1a50: 4770 bx lr - 1a52: 428b cmp r3, r1 - 1a54: d843 bhi.n 1ade <__udivdi3+0x116> - 1a56: fab3 f483 clz r4, r3 - 1a5a: 2c00 cmp r4, #0 - 1a5c: d142 bne.n 1ae4 <__udivdi3+0x11c> - 1a5e: 428b cmp r3, r1 - 1a60: d302 bcc.n 1a68 <__udivdi3+0xa0> - 1a62: 4282 cmp r2, r0 - 1a64: f200 80df bhi.w 1c26 <__udivdi3+0x25e> - 1a68: 2100 movs r1, #0 - 1a6a: 2001 movs r0, #1 - 1a6c: e7ee b.n 1a4c <__udivdi3+0x84> - 1a6e: b912 cbnz r2, 1a76 <__udivdi3+0xae> - 1a70: 2701 movs r7, #1 - 1a72: fbb7 f4f2 udiv r4, r7, r2 - 1a76: fab4 f284 clz r2, r4 - 1a7a: 2a00 cmp r2, #0 - 1a7c: f040 8088 bne.w 1b90 <__udivdi3+0x1c8> - 1a80: 1b0a subs r2, r1, r4 - 1a82: 0c23 lsrs r3, r4, #16 - 1a84: b2a7 uxth r7, r4 - 1a86: 2101 movs r1, #1 - 1a88: fbb2 f6f3 udiv r6, r2, r3 - 1a8c: fb03 2216 mls r2, r3, r6, r2 - 1a90: ea4f 4c15 mov.w ip, r5, lsr #16 - 1a94: fb07 f006 mul.w r0, r7, r6 - 1a98: ea4c 4202 orr.w r2, ip, r2, lsl #16 - 1a9c: 4290 cmp r0, r2 - 1a9e: d907 bls.n 1ab0 <__udivdi3+0xe8> - 1aa0: 1912 adds r2, r2, r4 - 1aa2: f106 3cff add.w ip, r6, #4294967295 - 1aa6: d202 bcs.n 1aae <__udivdi3+0xe6> - 1aa8: 4290 cmp r0, r2 - 1aaa: f200 80ce bhi.w 1c4a <__udivdi3+0x282> - 1aae: 4666 mov r6, ip - 1ab0: 1a12 subs r2, r2, r0 - 1ab2: fbb2 f0f3 udiv r0, r2, r3 - 1ab6: fb03 2310 mls r3, r3, r0, r2 - 1aba: b2ad uxth r5, r5 - 1abc: fb07 f700 mul.w r7, r7, r0 - 1ac0: ea45 4303 orr.w r3, r5, r3, lsl #16 - 1ac4: 429f cmp r7, r3 - 1ac6: d907 bls.n 1ad8 <__udivdi3+0x110> - 1ac8: 1e42 subs r2, r0, #1 - 1aca: 191b adds r3, r3, r4 - 1acc: f080 809e bcs.w 1c0c <__udivdi3+0x244> - 1ad0: 429f cmp r7, r3 - 1ad2: f240 809b bls.w 1c0c <__udivdi3+0x244> - 1ad6: 3802 subs r0, #2 - 1ad8: ea40 4006 orr.w r0, r0, r6, lsl #16 - 1adc: e7b6 b.n 1a4c <__udivdi3+0x84> - 1ade: 2100 movs r1, #0 - 1ae0: 4608 mov r0, r1 - 1ae2: e7b3 b.n 1a4c <__udivdi3+0x84> - 1ae4: f1c4 0620 rsb r6, r4, #32 - 1ae8: fa22 f506 lsr.w r5, r2, r6 - 1aec: fa03 f304 lsl.w r3, r3, r4 - 1af0: 432b orrs r3, r5 - 1af2: ea4f 4c13 mov.w ip, r3, lsr #16 - 1af6: fa21 f506 lsr.w r5, r1, r6 - 1afa: fa01 f104 lsl.w r1, r1, r4 - 1afe: fa20 f606 lsr.w r6, r0, r6 - 1b02: fbb5 f7fc udiv r7, r5, ip - 1b06: ea46 0a01 orr.w sl, r6, r1 - 1b0a: fa1f f883 uxth.w r8, r3 - 1b0e: fb0c 5517 mls r5, ip, r7, r5 - 1b12: ea4f 411a mov.w r1, sl, lsr #16 - 1b16: fb08 f907 mul.w r9, r8, r7 - 1b1a: ea41 4505 orr.w r5, r1, r5, lsl #16 - 1b1e: 45a9 cmp r9, r5 - 1b20: fa02 f204 lsl.w r2, r2, r4 - 1b24: d903 bls.n 1b2e <__udivdi3+0x166> - 1b26: 1e7e subs r6, r7, #1 - 1b28: 18ed adds r5, r5, r3 - 1b2a: d37f bcc.n 1c2c <__udivdi3+0x264> - 1b2c: 4637 mov r7, r6 - 1b2e: ebc9 0105 rsb r1, r9, r5 - 1b32: fbb1 f6fc udiv r6, r1, ip - 1b36: fb0c 1516 mls r5, ip, r6, r1 - 1b3a: fa1f fa8a uxth.w sl, sl - 1b3e: fb08 f806 mul.w r8, r8, r6 - 1b42: ea4a 4105 orr.w r1, sl, r5, lsl #16 - 1b46: 4588 cmp r8, r1 - 1b48: d903 bls.n 1b52 <__udivdi3+0x18a> - 1b4a: 1e75 subs r5, r6, #1 - 1b4c: 18c9 adds r1, r1, r3 - 1b4e: d373 bcc.n 1c38 <__udivdi3+0x270> - 1b50: 462e mov r6, r5 - 1b52: ea46 4607 orr.w r6, r6, r7, lsl #16 - 1b56: 0c37 lsrs r7, r6, #16 - 1b58: fa1f fc82 uxth.w ip, r2 - 1b5c: fb0c f507 mul.w r5, ip, r7 - 1b60: 0c12 lsrs r2, r2, #16 - 1b62: b2b3 uxth r3, r6 - 1b64: fb0c fc03 mul.w ip, ip, r3 - 1b68: fb02 5303 mla r3, r2, r3, r5 - 1b6c: eb03 431c add.w r3, r3, ip, lsr #16 - 1b70: fb02 f207 mul.w r2, r2, r7 - 1b74: 429d cmp r5, r3 - 1b76: bf88 it hi - 1b78: f502 3280 addhi.w r2, r2, #65536 ; 0x10000 - 1b7c: ebc8 0101 rsb r1, r8, r1 - 1b80: eb02 4213 add.w r2, r2, r3, lsr #16 - 1b84: 4291 cmp r1, r2 - 1b86: d34b bcc.n 1c20 <__udivdi3+0x258> - 1b88: d042 beq.n 1c10 <__udivdi3+0x248> - 1b8a: 4630 mov r0, r6 - 1b8c: 2100 movs r1, #0 - 1b8e: e75d b.n 1a4c <__udivdi3+0x84> - 1b90: 4094 lsls r4, r2 - 1b92: f1c2 0520 rsb r5, r2, #32 - 1b96: fa21 f605 lsr.w r6, r1, r5 - 1b9a: 0c23 lsrs r3, r4, #16 - 1b9c: fa20 f705 lsr.w r7, r0, r5 - 1ba0: fa01 f102 lsl.w r1, r1, r2 - 1ba4: fbb6 fcf3 udiv ip, r6, r3 - 1ba8: 4339 orrs r1, r7 - 1baa: 0c0d lsrs r5, r1, #16 - 1bac: b2a7 uxth r7, r4 - 1bae: fb03 661c mls r6, r3, ip, r6 - 1bb2: ea45 4606 orr.w r6, r5, r6, lsl #16 - 1bb6: fb07 f80c mul.w r8, r7, ip - 1bba: 45b0 cmp r8, r6 - 1bbc: fa00 f502 lsl.w r5, r0, r2 - 1bc0: d908 bls.n 1bd4 <__udivdi3+0x20c> - 1bc2: 1936 adds r6, r6, r4 - 1bc4: f10c 30ff add.w r0, ip, #4294967295 - 1bc8: d23d bcs.n 1c46 <__udivdi3+0x27e> - 1bca: 45b0 cmp r8, r6 - 1bcc: d93b bls.n 1c46 <__udivdi3+0x27e> - 1bce: f1ac 0c02 sub.w ip, ip, #2 - 1bd2: 1936 adds r6, r6, r4 - 1bd4: ebc8 0206 rsb r2, r8, r6 - 1bd8: fbb2 f0f3 udiv r0, r2, r3 - 1bdc: fb03 2610 mls r6, r3, r0, r2 - 1be0: b28a uxth r2, r1 - 1be2: ea42 4206 orr.w r2, r2, r6, lsl #16 - 1be6: fb07 f100 mul.w r1, r7, r0 - 1bea: 4291 cmp r1, r2 - 1bec: d906 bls.n 1bfc <__udivdi3+0x234> - 1bee: 1e46 subs r6, r0, #1 - 1bf0: 1912 adds r2, r2, r4 - 1bf2: d226 bcs.n 1c42 <__udivdi3+0x27a> - 1bf4: 4291 cmp r1, r2 - 1bf6: d924 bls.n 1c42 <__udivdi3+0x27a> - 1bf8: 3802 subs r0, #2 - 1bfa: 1912 adds r2, r2, r4 - 1bfc: 1a52 subs r2, r2, r1 - 1bfe: ea40 410c orr.w r1, r0, ip, lsl #16 - 1c02: e741 b.n 1a88 <__udivdi3+0xc0> - 1c04: 4638 mov r0, r7 - 1c06: e70a b.n 1a1e <__udivdi3+0x56> - 1c08: 4633 mov r3, r6 - 1c0a: e71c b.n 1a46 <__udivdi3+0x7e> - 1c0c: 4610 mov r0, r2 - 1c0e: e763 b.n 1ad8 <__udivdi3+0x110> - 1c10: fa1f fc8c uxth.w ip, ip - 1c14: fa00 f004 lsl.w r0, r0, r4 - 1c18: eb0c 4303 add.w r3, ip, r3, lsl #16 - 1c1c: 4298 cmp r0, r3 - 1c1e: d2b4 bcs.n 1b8a <__udivdi3+0x1c2> - 1c20: 1e70 subs r0, r6, #1 - 1c22: 2100 movs r1, #0 - 1c24: e712 b.n 1a4c <__udivdi3+0x84> - 1c26: 4621 mov r1, r4 - 1c28: 4620 mov r0, r4 - 1c2a: e70f b.n 1a4c <__udivdi3+0x84> - 1c2c: 45a9 cmp r9, r5 - 1c2e: f67f af7d bls.w 1b2c <__udivdi3+0x164> - 1c32: 3f02 subs r7, #2 - 1c34: 18ed adds r5, r5, r3 - 1c36: e77a b.n 1b2e <__udivdi3+0x166> - 1c38: 4588 cmp r8, r1 - 1c3a: d989 bls.n 1b50 <__udivdi3+0x188> - 1c3c: 3e02 subs r6, #2 - 1c3e: 18c9 adds r1, r1, r3 - 1c40: e787 b.n 1b52 <__udivdi3+0x18a> - 1c42: 4630 mov r0, r6 - 1c44: e7da b.n 1bfc <__udivdi3+0x234> - 1c46: 4684 mov ip, r0 - 1c48: e7c4 b.n 1bd4 <__udivdi3+0x20c> - 1c4a: 3e02 subs r6, #2 - 1c4c: 1912 adds r2, r2, r4 - 1c4e: e72f b.n 1ab0 <__udivdi3+0xe8> - -00001c50 : - 1c50: 20000fe0 .word 0x20000fe0 - 1c54: 2000e555 .word 0x2000e555 - 1c58: 2000e551 .word 0x2000e551 - 1c5c: 2000ccd5 .word 0x2000ccd5 - ... - 1c7c: 2000e551 .word 0x2000e551 - ... - 1c88: 2000e551 .word 0x2000e551 - 1c8c: 2000e551 .word 0x2000e551 - 1c90: 2000e54d .word 0x2000e54d - 1c94: 2000c1d9 .word 0x2000c1d9 - 1c98: 2000e54d .word 0x2000e54d - 1c9c: 00000000 .word 0x00000000 - 1ca0: 2000e54d .word 0x2000e54d - 1ca4: 2000e54d .word 0x2000e54d - 1ca8: 2000e54d .word 0x2000e54d - 1cac: 2000e54d .word 0x2000e54d - 1cb0: 2000db25 .word 0x2000db25 - 1cb4: 2000e54d .word 0x2000e54d - 1cb8: 2000e54d .word 0x2000e54d - 1cbc: 2000e54d .word 0x2000e54d - 1cc0: 2000e54d .word 0x2000e54d - 1cc4: 2000e54d .word 0x2000e54d - 1cc8: 2000e54d .word 0x2000e54d - 1ccc: 2000e54d .word 0x2000e54d - 1cd0: 2000e54d .word 0x2000e54d - 1cd4: 2000e54d .word 0x2000e54d - 1cd8: 2000e54d .word 0x2000e54d - 1cdc: 2000e54d .word 0x2000e54d - 1ce0: 2000e54d .word 0x2000e54d - 1ce4: 2000e54d .word 0x2000e54d - 1ce8: 2000e54d .word 0x2000e54d - 1cec: 2000e54d .word 0x2000e54d - 1cf0: 2000e54d .word 0x2000e54d - 1cf4: 2000e54d .word 0x2000e54d - 1cf8: 2000e54d .word 0x2000e54d - 1cfc: 2000e54d .word 0x2000e54d - 1d00: 2000e54d .word 0x2000e54d - 1d04: 2000e54d .word 0x2000e54d - 1d08: 2000e54d .word 0x2000e54d - 1d0c: 2000e54d .word 0x2000e54d - 1d10: 6903b508 .word 0x6903b508 - 1d14: 28006858 .word 0x28006858 - 1d18: f000d001 .word 0xf000d001 - 1d1c: f000f915 .word 0xf000f915 - 1d20: bd08f8f9 .word 0xbd08f8f9 - 1d24: 22014b05 .word 0x22014b05 - 1d28: 70486819 .word 0x70486819 - 1d2c: f3bf700a .word 0xf3bf700a - 1d30: bf408f4f .word 0xbf408f4f - 1d34: 28006808 .word 0x28006808 - 1d38: 4770d1fc .word 0x4770d1fc - 1d3c: 2000ec6c .word 0x2000ec6c - 1d40: 22014b05 .word 0x22014b05 - 1d44: 70486819 .word 0x70486819 - 1d48: f3bf700a .word 0xf3bf700a - 1d4c: bf408f4f .word 0xbf408f4f - 1d50: 28006808 .word 0x28006808 - 1d54: 4770d1fc .word 0x4770d1fc - 1d58: 2000ec70 .word 0x2000ec70 - 1d5c: 4b20b538 .word 0x4b20b538 - 1d60: 68181c05 .word 0x68181c05 - 1d64: 70452201 .word 0x70452201 - 1d68: f3bf7002 .word 0xf3bf7002 - 1d6c: bf408f4f .word 0xbf408f4f - 1d70: 29006801 .word 0x29006801 - 1d74: 4c1bd1fc .word 0x4c1bd1fc - 1d78: 8b186823 .word 0x8b186823 - 1d7c: f84ef002 .word 0xf84ef002 - 1d80: 8b406820 .word 0x8b406820 - 1d84: f864f002 .word 0xf864f002 - 1d88: 2a00b26a .word 0x2a00b26a - 1d8c: 207fda12 .word 0x207fda12 - 1d90: 40056821 .word 0x40056821 - 1d94: 43552218 .word 0x43552218 - 1d98: 31041c08 .word 0x31041c08 - 1d9c: 30486fcb .word 0x30486fcb - 1da0: 69091959 .word 0x69091959 - 1da4: f820f001 .word 0xf820f001 - 1da8: 1c206824 .word 0x1c206824 - 1dac: 30483404 .word 0x30483404 - 1db0: e00d6fe3 .word 0xe00d6fe3 - 1db4: 68212318 .word 0x68212318 - 1db8: 6f8a435d .word 0x6f8a435d - 1dbc: 19511c08 .word 0x19511c08 - 1dc0: 69093048 .word 0x69093048 - 1dc4: f810f001 .word 0xf810f001 - 1dc8: 1c206824 .word 0x1c206824 - 1dcc: 30486fa3 .word 0x30486fa3 - 1dd0: 7d29195d .word 0x7d29195d - 1dd4: f828f001 .word 0xf828f001 - 1dd8: 20014a03 .word 0x20014a03 - 1ddc: bd386010 .word 0xbd386010 - 1de0: 2000ec78 .word 0x2000ec78 - 1de4: 2000ef28 .word 0x2000ef28 - 1de8: 2000f000 .word 0x2000f000 - 1dec: 1c04b510 .word 0x1c04b510 - 1df0: f840f001 .word 0xf840f001 - 1df4: 22024b0a .word 0x22024b0a - 1df8: 70446818 .word 0x70446818 - 1dfc: f3bf7002 .word 0xf3bf7002 - 1e00: bf408f4f .word 0xbf408f4f - 1e04: 29006801 .word 0x29006801 - 1e08: 4c06d1fc .word 0x4c06d1fc - 1e0c: 8b186823 .word 0x8b186823 - 1e10: f804f002 .word 0xf804f002 - 1e14: 8b806820 .word 0x8b806820 - 1e18: f81af002 .word 0xf81af002 - 1e1c: 46c0bd10 .word 0x46c0bd10 - 1e20: 2000ec78 .word 0x2000ec78 - 1e24: 2000ef28 .word 0x2000ef28 - 1e28: 22004b01 .word 0x22004b01 - 1e2c: 4770601a .word 0x4770601a - 1e30: 40043130 .word 0x40043130 - 1e34: b08cb570 .word 0xb08cb570 - 1e38: fc72f000 .word 0xfc72f000 - 1e3c: ac014b27 .word 0xac014b27 - 1e40: 30486818 .word 0x30486818 - 1e44: f84af001 .word 0xf84af001 - 1e48: f0014825 .word 0xf0014825 - 1e4c: f001feb5 .word 0xf001feb5 - 1e50: 4d24faf5 .word 0x4d24faf5 - 1e54: 1c292000 .word 0x1c292000 - 1e58: fbeef001 .word 0xfbeef001 - 1e5c: f0014822 .word 0xf0014822 - 1e60: 4822fd5f .word 0x4822fd5f - 1e64: fd5cf001 .word 0xfd5cf001 - 1e68: f0014821 .word 0xf0014821 - 1e6c: 4821fd59 .word 0x4821fd59 - 1e70: fd56f001 .word 0xfd56f001 - 1e74: f0014820 .word 0xf0014820 - 1e78: 4820fc35 .word 0x4820fc35 - 1e7c: fc32f001 .word 0xfc32f001 - 1e80: 7020203a .word 0x7020203a - 1e84: f0011c20 .word 0xf0011c20 - 1e88: 8b21fa4f .word 0x8b21fa4f - 1e8c: d1032900 .word 0xd1032900 - 1e90: 6aa16a60 .word 0x6aa16a60 - 1e94: fcc4f000 .word 0xfcc4f000 - 1e98: 21ff2008 .word 0x21ff2008 - 1e9c: fa42f002 .word 0xfa42f002 - 1ea0: 1c012001 .word 0x1c012001 - 1ea4: fa3ef002 .word 0xfa3ef002 - 1ea8: f0022001 .word 0xf0022001 - 1eac: 1c28fa2f .word 0x1c28fa2f - 1eb0: fc06f001 .word 0xfc06f001 - 1eb4: 4b134a12 .word 0x4b134a12 - 1eb8: 68164d13 .word 0x68164d13 - 1ebc: 68296818 .word 0x68296818 - 1ec0: 6834bf20 .word 0x6834bf20 - 1ec4: 680b6802 .word 0x680b6802 - 1ec8: d0f9429c .word 0xd0f9429c - 1ecc: 48104e0f .word 0x48104e0f - 1ed0: f00119a1 .word 0xf00119a1 - 1ed4: 682afdb1 .word 0x682afdb1 - 1ed8: e7eb6014 .word 0xe7eb6014 - 1edc: 2000ef28 .word 0x2000ef28 - 1ee0: 2000c0c1 .word 0x2000c0c1 - 1ee4: 2000ee1c .word 0x2000ee1c - 1ee8: 2000ee48 .word 0x2000ee48 - 1eec: 2000ee68 .word 0x2000ee68 - 1ef0: 2000ee58 .word 0x2000ee58 - 1ef4: 2000eef0 .word 0x2000eef0 - 1ef8: 2000ee78 .word 0x2000ee78 - 1efc: 2000eec8 .word 0x2000eec8 - 1f00: 2000ec74 .word 0x2000ec74 - 1f04: 2000ec7c .word 0x2000ec7c - 1f08: 2000ec80 .word 0x2000ec80 - 1f0c: 20004000 .word 0x20004000 - 1f10: 2000ef00 .word 0x2000ef00 - 1f14: 1c04b538 .word 0x1c04b538 - 1f18: fbf6f000 .word 0xfbf6f000 - 1f1c: 2c014d07 .word 0x2c014d07 - 1f20: 4807d106 .word 0x4807d106 - 1f24: fbdef001 .word 0xfbdef001 - 1f28: f7ff7828 .word 0xf7ff7828 - 1f2c: e002ff17 .word 0xe002ff17 - 1f30: f7ff7828 .word 0xf7ff7828 - 1f34: 4b03ff5b .word 0x4b03ff5b - 1f38: bd38701c .word 0xbd38701c - 1f3c: 2000f500 .word 0x2000f500 - 1f40: 2000ef00 .word 0x2000ef00 - 1f44: 2000f004 .word 0x2000f004 - 1f48: 78184b01 .word 0x78184b01 - 1f4c: 46c04770 .word 0x46c04770 - 1f50: 2000f004 .word 0x2000f004 - 1f54: 7843b508 .word 0x7843b508 - 1f58: d8062b1b .word 0xd8062b1b - 1f5c: 009b4a05 .word 0x009b4a05 - 1f60: 2b00589b .word 0x2b00589b - 1f64: 4798d004 .word 0x4798d004 - 1f68: 4248e003 .word 0x4248e003 - 1f6c: e0004148 .word 0xe0004148 - 1f70: bd082001 .word 0xbd082001 - 1f74: 2000f390 .word 0x2000f390 - 1f78: 2900b508 .word 0x2900b508 - 1f7c: f000d101 .word 0xf000d101 - 1f80: 2000fcb7 .word 0x2000fcb7 - 1f84: b570bd08 .word 0xb570bd08 - 1f88: 20001c05 .word 0x20001c05 - 1f8c: 42841e0c .word 0x42841e0c - 1f90: 886ed10d .word 0x886ed10d - 1f94: 1eb22001 .word 0x1eb22001 - 1f98: d8082a0b .word 0xd8082a0b - 1f9c: ffeaf000 .word 0xffeaf000 - 1fa0: f0010430 .word 0xf0010430 - 1fa4: 69a8f8c7 .word 0x69a8f8c7 - 1fa8: fd53f001 .word 0xfd53f001 - 1fac: bd701c20 .word 0xbd701c20 - 1fb0: 2300b538 .word 0x2300b538 - 1fb4: d1194299 .word 0xd1194299 - 1fb8: 23018881 .word 0x23018881 - 1fbc: d81529ff .word 0xd81529ff - 1fc0: 429c8844 .word 0x429c8844 - 1fc4: 4d0ad812 .word 0x4d0ad812 - 1fc8: 1952094a .word 0x1952094a - 1fcc: 4029251f .word 0x4029251f - 1fd0: 408b0092 .word 0x408b0092 - 1fd4: 2c016811 .word 0x2c016811 - 1fd8: 430bd101 .word 0x430bd101 - 1fdc: 4399e001 .word 0x4399e001 - 1fe0: 60131c0b .word 0x60131c0b - 1fe4: f0016980 .word 0xf0016980 - 1fe8: 2300fd34 .word 0x2300fd34 - 1fec: bd381c18 .word 0xbd381c18 - 1ff0: 1003d800 .word 0x1003d800 - 1ff4: 1c05b538 .word 0x1c05b538 - 1ff8: d1071e0c .word 0xd1071e0c - 1ffc: ffbaf000 .word 0xffbaf000 - 2000: f0011c20 .word 0xf0011c20 - 2004: 69a8f897 .word 0x69a8f897 - 2008: fd23f001 .word 0xfd23f001 - 200c: bd382000 .word 0xbd382000 - 2010: 1c04b5f8 .word 0x1c04b5f8 - 2014: d12a2900 .word 0xd12a2900 - 2018: 88814b16 .word 0x88814b16 - 201c: 1c026818 .word 0x1c026818 - 2020: 88153276 .word 0x88153276 - 2024: 428d1c2e .word 0x428d1c2e - 2028: 1c0ed900 .word 0x1c0ed900 - 202c: 4912b2b2 .word 0x4912b2b2 - 2030: d8022a40 .word 0xd8022a40 - 2034: d0032a00 .word 0xd0032a00 - 2038: 2240e000 .word 0x2240e000 - 203c: e0032300 .word 0xe0032300 - 2040: 69a0600d .word 0x69a0600d - 2044: e00d2204 .word 0xe00d2204 - 2048: da094293 .word 0xda094293 - 204c: 435e2618 .word 0x435e2618 - 2050: 009d6f87 .word 0x009d6f87 - 2054: 693719be .word 0x693719be - 2058: 007e3301 .word 0x007e3301 - 205c: e7f3514e .word 0xe7f3514e - 2060: 009269a0 .word 0x009269a0 - 2064: fce8f001 .word 0xfce8f001 - 2068: f00169e0 .word 0xf00169e0 - 206c: 2000fcf2 .word 0x2000fcf2 - 2070: 46c0bdf8 .word 0x46c0bdf8 - 2074: 2000ef28 .word 0x2000ef28 - 2078: 2000f400 .word 0x2000f400 - 207c: b5382200 .word 0xb5382200 - 2080: 1e0d1c04 .word 0x1e0d1c04 - 2084: d11a4295 .word 0xd11a4295 - 2088: 22018883 .word 0x22018883 - 208c: d8162bff .word 0xd8162bff - 2090: 0959480c .word 0x0959480c - 2094: 00881809 .word 0x00881809 - 2098: 201f6801 .word 0x201f6801 - 209c: 1c104003 .word 0x1c104003 - 20a0: 1c034098 .word 0x1c034098 - 20a4: 1e59400b .word 0x1e59400b - 20a8: 1c21418b .word 0x1c21418b - 20ac: 31087223 .word 0x31087223 - 20b0: f00169a0 .word 0xf00169a0 - 20b4: 69e0fcc1 .word 0x69e0fcc1 - 20b8: fccbf001 .word 0xfccbf001 - 20bc: 1c101c2a .word 0x1c101c2a - 20c0: 46c0bd38 .word 0x46c0bd38 - 20c4: 1003d800 .word 0x1003d800 - 20c8: 2500b570 .word 0x2500b570 - 20cc: 1e0e1c04 .word 0x1e0e1c04 - 20d0: d11742ae .word 0xd11742ae - 20d4: 2b048883 .word 0x2b048883 - 20d8: 88c2d108 .word 0x88c2d108 - 20dc: 6980490a .word 0x6980490a - 20e0: fcaaf001 .word 0xfcaaf001 - 20e4: f00169e0 .word 0xf00169e0 - 20e8: e00bfcb4 .word 0xe00bfcb4 - 20ec: 2b052501 .word 0x2b052501 - 20f0: 88c2d108 .word 0x88c2d108 - 20f4: 69804905 .word 0x69804905 - 20f8: fc9ef001 .word 0xfc9ef001 - 20fc: f00169e0 .word 0xf00169e0 - 2100: 1c35fca8 .word 0x1c35fca8 - 2104: bd701c28 .word 0xbd701c28 - 2108: 2000ecaf .word 0x2000ecaf - 210c: 2000ed82 .word 0x2000ed82 - 2110: 1c04b510 .word 0x1c04b510 - 2114: d1092900 .word 0xd1092900 - 2118: 1c017201 .word 0x1c017201 - 211c: 69803108 .word 0x69803108 - 2120: f0012201 .word 0xf0012201 - 2124: 69e0fc89 .word 0x69e0fc89 - 2128: fc93f001 .word 0xfc93f001 - 212c: bd102000 .word 0xbd102000 - 2130: 1c04b510 .word 0x1c04b510 - 2134: d10a2900 .word 0xd10a2900 - 2138: 2b018883 .word 0x2b018883 - 213c: f000d102 .word 0xf000d102 - 2140: e001fbdd .word 0xe001fbdd - 2144: fbe4f000 .word 0xfbe4f000 - 2148: f00169a0 .word 0xf00169a0 - 214c: 2000fc82 .word 0x2000fc82 - 2150: 0000bd10 .word 0x0000bd10 - 2154: 1c04b510 .word 0x1c04b510 - 2158: d10f2900 .word 0xd10f2900 - 215c: 79214b08 .word 0x79214b08 - 2160: 30486818 .word 0x30486818 - 2164: fde2f000 .word 0xfde2f000 - 2168: 72201c21 .word 0x72201c21 - 216c: 69a03108 .word 0x69a03108 - 2170: f0012201 .word 0xf0012201 - 2174: 69e0fc61 .word 0x69e0fc61 - 2178: fc6bf001 .word 0xfc6bf001 - 217c: bd102000 .word 0xbd102000 - 2180: 2000ef28 .word 0x2000ef28 - 2184: 1c04b510 .word 0x1c04b510 - 2188: d10f2900 .word 0xd10f2900 - 218c: 79214b08 .word 0x79214b08 - 2190: 30486818 .word 0x30486818 - 2194: fdc1f000 .word 0xfdc1f000 - 2198: 72201c21 .word 0x72201c21 - 219c: 69a03108 .word 0x69a03108 - 21a0: f0012201 .word 0xf0012201 - 21a4: 69e0fc49 .word 0x69e0fc49 - 21a8: fc53f001 .word 0xfc53f001 - 21ac: bd102000 .word 0xbd102000 - 21b0: 2000ef28 .word 0x2000ef28 - 21b4: 1c04b510 .word 0x1c04b510 - 21b8: d10f2900 .word 0xd10f2900 - 21bc: 79214b08 .word 0x79214b08 - 21c0: 30486818 .word 0x30486818 - 21c4: fda2f000 .word 0xfda2f000 - 21c8: 72201c21 .word 0x72201c21 - 21cc: 69a03108 .word 0x69a03108 - 21d0: f0012201 .word 0xf0012201 - 21d4: 69e0fc31 .word 0x69e0fc31 - 21d8: fc3bf001 .word 0xfc3bf001 - 21dc: bd102000 .word 0xbd102000 - 21e0: 2000ef28 .word 0x2000ef28 - 21e4: 1c04b510 .word 0x1c04b510 - 21e8: d10f2900 .word 0xd10f2900 - 21ec: 79214b08 .word 0x79214b08 - 21f0: 30486818 .word 0x30486818 - 21f4: fd83f000 .word 0xfd83f000 - 21f8: 72201c21 .word 0x72201c21 - 21fc: 69a03108 .word 0x69a03108 - 2200: f0012201 .word 0xf0012201 - 2204: 69e0fc19 .word 0x69e0fc19 - 2208: fc23f001 .word 0xfc23f001 - 220c: bd102000 .word 0xbd102000 - 2210: 2000ef28 .word 0x2000ef28 - 2214: 1c04b510 .word 0x1c04b510 - 2218: d10f2900 .word 0xd10f2900 - 221c: 79214b08 .word 0x79214b08 - 2220: 30486818 .word 0x30486818 - 2224: fd64f000 .word 0xfd64f000 - 2228: 72201c21 .word 0x72201c21 - 222c: 69a03108 .word 0x69a03108 - 2230: f0012201 .word 0xf0012201 - 2234: 69e0fc01 .word 0x69e0fc01 - 2238: fc0bf001 .word 0xfc0bf001 - 223c: bd102000 .word 0xbd102000 - 2240: 2000ef28 .word 0x2000ef28 - 2244: 1c04b510 .word 0x1c04b510 - 2248: d1052900 .word 0xd1052900 - 224c: 22044909 .word 0x22044909 - 2250: f00169c0 .word 0xf00169c0 - 2254: e00bfbf1 .word 0xe00bfbf1 - 2258: d1092901 .word 0xd1092901 - 225c: 49054b06 .word 0x49054b06 - 2260: 68096818 .word 0x68096818 - 2264: f0003048 .word 0xf0003048 - 2268: 69a0fcef .word 0x69a0fcef - 226c: fbf1f001 .word 0xfbf1f001 - 2270: bd102000 .word 0xbd102000 - 2274: 2000f388 .word 0x2000f388 - 2278: 2000ef28 .word 0x2000ef28 - 227c: 1c04b570 .word 0x1c04b570 - 2280: 42812000 .word 0x42812000 - 2284: 88a3d155 .word 0x88a3d155 - 2288: 2b3f4a2a .word 0x2b3f4a2a - 228c: 6810d806 .word 0x6810d806 - 2290: 88013076 .word 0x88013076 - 2294: 42992001 .word 0x42992001 - 2298: e04adc2a .word 0xe04adc2a - 229c: 681220fa .word 0x681220fa - 22a0: 43580080 .word 0x43580080 - 22a4: 33761c13 .word 0x33761c13 - 22a8: 4299881b .word 0x4299881b - 22ac: 2518da0c .word 0x2518da0c - 22b0: 6f96434d .word 0x6f96434d - 22b4: 692e1975 .word 0x692e1975 - 22b8: 428500b5 .word 0x428500b5 - 22bc: 4a1ed102 .word 0x4a1ed102 - 22c0: e01a7011 .word 0xe01a7011 - 22c4: e7f03101 .word 0xe7f03101 - 22c8: 317e1c11 .word 0x317e1c11 - 22cc: 23008809 .word 0x23008809 - 22d0: 3301e000 .word 0x3301e000 - 22d4: da0e428b .word 0xda0e428b - 22d8: 6fee1d15 .word 0x6fee1d15 - 22dc: 435d2518 .word 0x435d2518 - 22e0: 69351976 .word 0x69351976 - 22e4: 428600ae .word 0x428600ae - 22e8: 2080d1f3 .word 0x2080d1f3 - 22ec: 430b4241 .word 0x430b4241 - 22f0: 70334e11 .word 0x70334e11 - 22f4: 2001e001 .word 0x2001e001 - 22f8: f7ffe01b .word 0xf7ffe01b - 22fc: 4d0efe25 .word 0x4d0efe25 - 2300: 2e011e06 .word 0x2e011e06 - 2304: 7828d102 .word 0x7828d102 - 2308: fd70f7ff .word 0xfd70f7ff - 230c: f7ff7828 .word 0xf7ff7828 - 2310: 2e01fd09 .word 0x2e01fd09 - 2314: 7828d102 .word 0x7828d102 - 2318: fd20f7ff .word 0xfd20f7ff - 231c: 1c212201 .word 0x1c212201 - 2320: 31087222 .word 0x31087222 - 2324: f00169a0 .word 0xf00169a0 - 2328: 69e0fb87 .word 0x69e0fb87 - 232c: fb91f001 .word 0xfb91f001 - 2330: bd702000 .word 0xbd702000 - 2334: 2000ef28 .word 0x2000ef28 - 2338: 2000f500 .word 0x2000f500 - 233c: 1c04b570 .word 0x1c04b570 - 2340: 42812000 .word 0x42812000 - 2344: 88a3d121 .word 0x88a3d121 - 2348: 42832001 .word 0x42832001 - 234c: b2ded81d .word 0xb2ded81d - 2350: fdfaf7ff .word 0xfdfaf7ff - 2354: 2d011e05 .word 0x2d011e05 - 2358: 480cd103 .word 0x480cd103 - 235c: f7ff7800 .word 0xf7ff7800 - 2360: 1c30fd45 .word 0x1c30fd45 - 2364: fcecf7ff .word 0xfcecf7ff - 2368: d1032d01 .word 0xd1032d01 - 236c: 78084907 .word 0x78084907 - 2370: fcf4f7ff .word 0xfcf4f7ff - 2374: 1c212201 .word 0x1c212201 - 2378: 31087222 .word 0x31087222 - 237c: f00169a0 .word 0xf00169a0 - 2380: 69e0fb5b .word 0x69e0fb5b - 2384: fb65f001 .word 0xfb65f001 - 2388: bd702000 .word 0xbd702000 - 238c: 2000f500 .word 0x2000f500 - 2390: 2500b570 .word 0x2500b570 - 2394: 1c06b092 .word 0x1c06b092 - 2398: d12642a9 .word 0xd12642a9 - 239c: 2336ac07 .word 0x2336ac07 - 23a0: 70231c20 .word 0x70231c20 - 23a4: ffc0f000 .word 0xffc0f000 - 23a8: 42a88b20 .word 0x42a88b20 - 23ac: 2501d001 .word 0x2501d001 - 23b0: 69e1e01b .word 0x69e1e01b - 23b4: 233a6a22 .word 0x233a6a22 - 23b8: 91011c20 .word 0x91011c20 - 23bc: 70239202 .word 0x70239202 - 23c0: ffb2f000 .word 0xffb2f000 - 23c4: 28008b20 .word 0x28008b20 - 23c8: 69e1d1f1 .word 0x69e1d1f1 - 23cc: 6a636a22 .word 0x6a636a22 - 23d0: 91036aa4 .word 0x91036aa4 - 23d4: 69b09204 .word 0x69b09204 - 23d8: 2218a901 .word 0x2218a901 - 23dc: 94069305 .word 0x94069305 - 23e0: fb2af001 .word 0xfb2af001 - 23e4: f00169f0 .word 0xf00169f0 - 23e8: 1c28fb34 .word 0x1c28fb34 - 23ec: bd70b012 .word 0xbd70b012 - 23f0: 1c05b538 .word 0x1c05b538 - 23f4: d1222900 .word 0xd1222900 - 23f8: 22004c12 .word 0x22004c12 - 23fc: 2080190b .word 0x2080190b - 2400: 701a3101 .word 0x701a3101 - 2404: 42990043 .word 0x42990043 - 2408: 490fd1f6 .word 0x490fd1f6 - 240c: 68091c20 .word 0x68091c20 - 2410: f0023108 .word 0xf0023108 - 2414: 1c20f8b5 .word 0x1c20f8b5 - 2418: f8baf002 .word 0xf8baf002 - 241c: 1900490b .word 0x1900490b - 2420: f8aef002 .word 0xf8aef002 - 2424: f0021c20 .word 0xf0021c20 - 2428: 1d02f8b3 .word 0x1d02f8b3 - 242c: 43822003 .word 0x43822003 - 2430: 69a81c21 .word 0x69a81c21 - 2434: fb00f001 .word 0xfb00f001 - 2438: f00169e8 .word 0xf00169e8 - 243c: 2000fb0a .word 0x2000fb0a - 2440: 46c0bd38 .word 0x46c0bd38 - 2444: 2000f400 .word 0x2000f400 - 2448: 2000ef28 .word 0x2000ef28 - 244c: 2000e950 .word 0x2000e950 - 2450: 1c05b5f8 .word 0x1c05b5f8 - 2454: d1312900 .word 0xd1312900 - 2458: 884788c4 .word 0x884788c4 - 245c: 26808882 .word 0x26808882 - 2460: 40862001 .word 0x40862001 - 2464: d83642b4 .word 0xd83642b4 - 2468: 43100438 .word 0x43100438 - 246c: 19072380 .word 0x19072380 - 2470: 035a4e19 .word 0x035a4e19 - 2474: d9174297 .word 0xd9174297 - 2478: d90d2c03 .word 0xd90d2c03 - 247c: 1c272303 .word 0x1c272303 - 2480: d109401f .word 0xd109401f - 2484: d1084003 .word 0xd1084003 - 2488: 009a08a1 .word 0x009a08a1 - 248c: 33015817 .word 0x33015817 - 2490: 428b50b7 .word 0x428b50b7 - 2494: e00bd3f9 .word 0xe00bd3f9 - 2498: 1c39e000 .word 0x1c39e000 - 249c: d20742a1 .word 0xd20742a1 - 24a0: 54725c0a .word 0x54725c0a - 24a4: e7f93101 .word 0xe7f93101 - 24a8: 1c321c21 .word 0x1c321c21 - 24ac: fef2f000 .word 0xfef2f000 - 24b0: 1c3169a8 .word 0x1c3169a8 - 24b4: f0011c22 .word 0xf0011c22 - 24b8: e00bfabf .word 0xe00bfabf - 24bc: 29012000 .word 0x29012000 - 24c0: 88ead109 .word 0x88ead109 - 24c4: 1c082380 .word 0x1c082380 - 24c8: 428a0059 .word 0x428a0059 - 24cc: 69e8d803 .word 0x69e8d803 - 24d0: fabff001 .word 0xfabff001 - 24d4: bdf82000 .word 0xbdf82000 - 24d8: 2000f400 .word 0x2000f400 - 24dc: 1c04b570 .word 0x1c04b570 - 24e0: d1171e0d .word 0xd1171e0d - 24e4: 230188e2 .word 0x230188e2 - 24e8: 88402680 .word 0x88402680 - 24ec: 409e88a1 .word 0x409e88a1 - 24f0: d82a42b2 .word 0xd82a42b2 - 24f4: 20800405 .word 0x20800405 - 24f8: 0341430d .word 0x0341430d - 24fc: d824428d .word 0xd824428d - 2500: 428e18ae .word 0x428e18ae - 2504: 4912d821 .word 0x4912d821 - 2508: f00169e0 .word 0xf00169e0 - 250c: f000fa95 .word 0xf000fa95 - 2510: e019fd31 .word 0xe019fd31 - 2514: 29012300 .word 0x29012300 - 2518: 88e1d117 .word 0x88e1d117 - 251c: 1c2b2680 .word 0x1c2b2680 - 2520: 88a28840 .word 0x88a28840 - 2524: 42a90075 .word 0x42a90075 - 2528: 0400d80f .word 0x0400d80f - 252c: 22804310 .word 0x22804310 - 2530: 42b00356 .word 0x42b00356 - 2534: 1845d809 .word 0x1845d809 - 2538: d80642b5 .word 0xd80642b5 - 253c: f0004a04 .word 0xf0004a04 - 2540: 69a0fe69 .word 0x69a0fe69 - 2544: fa85f001 .word 0xfa85f001 - 2548: 1c182300 .word 0x1c182300 - 254c: 46c0bd70 .word 0x46c0bd70 - 2550: 2000f400 .word 0x2000f400 - 2554: 2500b570 .word 0x2500b570 - 2558: 1e0e1c04 .word 0x1e0e1c04 - 255c: d11442ae .word 0xd11442ae - 2560: 25018881 .word 0x25018881 - 2564: d81029ff .word 0xd81029ff - 2568: b2c94b09 .word 0xb2c94b09 - 256c: 30486818 .word 0x30486818 - 2570: faf4f000 .word 0xfaf4f000 - 2574: 1c2a1c21 .word 0x1c2a1c21 - 2578: 31087220 .word 0x31087220 - 257c: f00169a0 .word 0xf00169a0 - 2580: 69e0fa5b .word 0x69e0fa5b - 2584: fa65f001 .word 0xfa65f001 - 2588: 1c281c35 .word 0x1c281c35 - 258c: 46c0bd70 .word 0x46c0bd70 - 2590: 2000ef28 .word 0x2000ef28 - 2594: 1c04b538 .word 0x1c04b538 - 2598: 1e0d2000 .word 0x1e0d2000 - 259c: d1114285 .word 0xd1114285 - 25a0: 200188a1 .word 0x200188a1 - 25a4: d80d29ff .word 0xd80d29ff - 25a8: 2aff8862 .word 0x2aff8862 - 25ac: 4b06d80a .word 0x4b06d80a - 25b0: 6818b2c9 .word 0x6818b2c9 - 25b4: 3048b2d2 .word 0x3048b2d2 - 25b8: fa8ef000 .word 0xfa8ef000 - 25bc: f00169a0 .word 0xf00169a0 - 25c0: 1c28fa48 .word 0x1c28fa48 - 25c4: 46c0bd38 .word 0x46c0bd38 - 25c8: 2000ef28 .word 0x2000ef28 - 25cc: 2500b570 .word 0x2500b570 - 25d0: 1e0e1c04 .word 0x1e0e1c04 - 25d4: d11142ae .word 0xd11142ae - 25d8: 25018880 .word 0x25018880 - 25dc: d80d28ff .word 0xd80d28ff - 25e0: f000b2c0 .word 0xf000b2c0 - 25e4: 1c21f9c0 .word 0x1c21f9c0 - 25e8: 72201c2a .word 0x72201c2a - 25ec: 69a03108 .word 0x69a03108 - 25f0: fa22f001 .word 0xfa22f001 - 25f4: f00169e0 .word 0xf00169e0 - 25f8: 1c35fa2c .word 0x1c35fa2c - 25fc: bd701c28 .word 0xbd701c28 - 2600: 1c04b538 .word 0x1c04b538 - 2604: 1e0d2000 .word 0x1e0d2000 - 2608: d10e4285 .word 0xd10e4285 - 260c: 200188a3 .word 0x200188a3 - 2610: d80a2bff .word 0xd80a2bff - 2614: 29ff8861 .word 0x29ff8861 - 2618: b2d8d807 .word 0xb2d8d807 - 261c: f000b2c9 .word 0xf000b2c9 - 2620: 69a0f991 .word 0x69a0f991 - 2624: fa15f001 .word 0xfa15f001 - 2628: bd381c28 .word 0xbd381c28 - 262c: 2300b538 .word 0x2300b538 - 2630: 1e0c1c05 .word 0x1e0c1c05 - 2634: d10a429c .word 0xd10a429c - 2638: 23018840 .word 0x23018840 - 263c: d8064298 .word 0xd8064298 - 2640: f7ffb2c0 .word 0xf7ffb2c0 - 2644: 69a8fc67 .word 0x69a8fc67 - 2648: fa03f001 .word 0xfa03f001 - 264c: 1c181c23 .word 0x1c181c23 - 2650: 0000bd38 .word 0x0000bd38 - 2654: 2300b538 .word 0x2300b538 - 2658: d11b4299 .word 0xd11b4299 - 265c: 23018882 .word 0x23018882 - 2660: d8172aff .word 0xd8172aff - 2664: 429c8844 .word 0x429c8844 - 2668: 4d0bd814 .word 0x4d0bd814 - 266c: 19490951 .word 0x19490951 - 2670: 402a251f .word 0x402a251f - 2674: 40930089 .word 0x40930089 - 2678: d1032c01 .word 0xd1032c01 - 267c: 00aa2580 .word 0x00aa2580 - 2680: e0021889 .word 0xe0021889 - 2684: 009422a0 .word 0x009422a0 - 2688: 600b1909 .word 0x600b1909 - 268c: f0016980 .word 0xf0016980 - 2690: 2300f9e0 .word 0x2300f9e0 - 2694: bd381c18 .word 0xbd381c18 - 2698: 1003d800 .word 0x1003d800 - 269c: 1c04b510 .word 0x1c04b510 - 26a0: 42812000 .word 0x42812000 - 26a4: 88a2d122 .word 0x88a2d122 - 26a8: 2aff2001 .word 0x2aff2001 - 26ac: 4910d81e .word 0x4910d81e - 26b0: 185b0953 .word 0x185b0953 - 26b4: 400a211f .word 0x400a211f - 26b8: 4090009b .word 0x4090009b - 26bc: 4210681a .word 0x4210681a - 26c0: 2180d003 .word 0x2180d003 - 26c4: 189b008a .word 0x189b008a - 26c8: 3301e001 .word 0x3301e001 - 26cc: 681b33ff .word 0x681b33ff - 26d0: 40181c21 .word 0x40181c21 - 26d4: 41981e43 .word 0x41981e43 - 26d8: 31087220 .word 0x31087220 - 26dc: 69a02201 .word 0x69a02201 - 26e0: f9aaf001 .word 0xf9aaf001 - 26e4: f00169e0 .word 0xf00169e0 - 26e8: 2000f9b4 .word 0x2000f9b4 - 26ec: 46c0bd10 .word 0x46c0bd10 - 26f0: 1003d800 .word 0x1003d800 - 26f4: 009a2380 .word 0x009a2380 - 26f8: 60011880 .word 0x60011880 - 26fc: 23a04770 .word 0x23a04770 - 2700: 1880009a .word 0x1880009a - 2704: 47706001 .word 0x47706001 - 2708: 4803b508 .word 0x4803b508 - 270c: fecef000 .word 0xfecef000 - 2710: f0004802 .word 0xf0004802 - 2714: bd08fecb .word 0xbd08fecb - 2718: 2000ef00 .word 0x2000ef00 - 271c: 2000eea0 .word 0x2000eea0 - 2720: 49204b1f .word 0x49204b1f - 2724: 22004820 .word 0x22004820 - 2728: 6008701a .word 0x6008701a - 272c: 4a204b1f .word 0x4a204b1f - 2730: 49214820 .word 0x49214820 - 2734: 6058601a .word 0x6058601a - 2738: 4a206099 .word 0x4a206099 - 273c: 49214820 .word 0x49214820 - 2740: 611860da .word 0x611860da - 2744: 4a206159 .word 0x4a206159 - 2748: 49214820 .word 0x49214820 - 274c: 61d8619a .word 0x61d8619a - 2750: 4a206219 .word 0x4a206219 - 2754: 49214820 .word 0x49214820 - 2758: 6298625a .word 0x6298625a - 275c: 4a2062d9 .word 0x4a2062d9 - 2760: 49214820 .word 0x49214820 - 2764: 6358631a .word 0x6358631a - 2768: 4a206399 .word 0x4a206399 - 276c: 49214820 .word 0x49214820 - 2770: 4a2163da .word 0x4a2163da - 2774: 64596418 .word 0x64596418 - 2778: 49214820 .word 0x49214820 - 277c: 4a21649a .word 0x4a21649a - 2780: 651964d8 .word 0x651964d8 - 2784: 49214820 .word 0x49214820 - 2788: 4a21655a .word 0x4a21655a - 278c: 65d96598 .word 0x65d96598 - 2790: 4820661a .word 0x4820661a - 2794: 4a214920 .word 0x4a214920 - 2798: 66996658 .word 0x66996658 - 279c: 477066da .word 0x477066da - 27a0: 2000f500 .word 0x2000f500 - 27a4: 2000f388 .word 0x2000f388 - 27a8: 05f5e100 .word 0x05f5e100 - 27ac: 2000f390 .word 0x2000f390 - 27b0: 2000c329 .word 0x2000c329 - 27b4: 2000c9dd .word 0x2000c9dd - 27b8: 2000c9b1 .word 0x2000c9b1 - 27bc: 2000c97d .word 0x2000c97d - 27c0: 2000c945 .word 0x2000c945 - 27c4: 2000c905 .word 0x2000c905 - 27c8: 2000c3a5 .word 0x2000c3a5 - 27cc: 2000c88d .word 0x2000c88d - 27d0: 2000c801 .word 0x2000c801 - 27d4: 2000c4c1 .word 0x2000c4c1 - 27d8: 2000c7a1 .word 0x2000c7a1 - 27dc: 2000c741 .word 0x2000c741 - 27e0: 2000c62d .word 0x2000c62d - 27e4: 2000c5f5 .word 0x2000c5f5 - 27e8: 2000c5c5 .word 0x2000c5c5 - 27ec: 2000c595 .word 0x2000c595 - 27f0: 2000c565 .word 0x2000c565 - 27f4: 2000c535 .word 0x2000c535 - 27f8: 2000c505 .word 0x2000c505 - 27fc: 2000c479 .word 0x2000c479 - 2800: 2000c4e1 .word 0x2000c4e1 - 2804: 2000ca05 .word 0x2000ca05 - 2808: 2000ca4d .word 0x2000ca4d - 280c: 2000c361 .word 0x2000c361 - 2810: 2000c42d .word 0x2000c42d - 2814: 2000c3c1 .word 0x2000c3c1 - 2818: 2000c6ed .word 0x2000c6ed - 281c: 2000c337 .word 0x2000c337 - 2820: 4b2db5f0 .word 0x4b2db5f0 - 2824: 092c0e05 .word 0x092c0e05 - 2828: 240f5d1e .word 0x240f5d1e - 282c: 4a2b4025 .word 0x4a2b4025 - 2830: 25ff5d5f .word 0x25ff5d5f - 2834: 76177596 .word 0x76177596 - 2838: 1c07042e .word 0x1c07042e - 283c: 0c3d4037 .word 0x0c3d4037 - 2840: 5ddf092f .word 0x5ddf092f - 2844: 5d5d4025 .word 0x5d5d4025 - 2848: 27ff7697 .word 0x27ff7697 - 284c: 023d7715 .word 0x023d7715 - 2850: 0a2f4005 .word 0x0a2f4005 - 2854: 5d5d093d .word 0x5d5d093d - 2858: 46bc4027 .word 0x46bc4027 - 285c: 46657795 .word 0x46657795 - 2860: 1c575d5d .word 0x1c575d5d - 2864: b2c777fd .word 0xb2c777fd - 2868: 5d5d093d .word 0x5d5d093d - 286c: 5c184020 .word 0x5c184020 - 2870: 77fd1cd7 .word 0x77fd1cd7 - 2874: 77f81d57 .word 0x77f81d57 - 2878: 09050e08 .word 0x09050e08 - 287c: 1dd75d5d .word 0x1dd75d5d - 2880: 5c184020 .word 0x5c184020 - 2884: 400e77fd .word 0x400e77fd - 2888: 0c351c17 .word 0x0c351c17 - 288c: 70383728 .word 0x70383728 - 2890: 5dd8092f .word 0x5dd8092f - 2894: 362a1c16 .word 0x362a1c16 - 2898: 40257030 .word 0x40257030 - 289c: 5d5d26ff .word 0x5d5d26ff - 28a0: 02301c17 .word 0x02301c17 - 28a4: 372c4008 .word 0x372c4008 - 28a8: 0a07703d .word 0x0a07703d - 28ac: 5d98093e .word 0x5d98093e - 28b0: 40271c15 .word 0x40271c15 - 28b4: 352e5ddf .word 0x352e5ddf - 28b8: 70281c16 .word 0x70281c16 - 28bc: b2cd3630 .word 0xb2cd3630 - 28c0: 400c7037 .word 0x400c7037 - 28c4: 5d9f092e .word 0x5d9f092e - 28c8: 5d191c10 .word 0x5d191c10 - 28cc: 32343032 .word 0x32343032 - 28d0: 70117007 .word 0x70117007 - 28d4: 46c0bdf0 .word 0x46c0bdf0 - 28d8: 2000e9a0 .word 0x2000e9a0 - 28dc: 2000ecd7 .word 0x2000ecd7 - 28e0: 42832300 .word 0x42832300 - 28e4: 46c0d002 .word 0x46c0d002 - 28e8: e7fa3301 .word 0xe7fa3301 - 28ec: 00004770 .word 0x00004770 - 28f0: 22014b01 .word 0x22014b01 - 28f4: e7fe601a .word 0xe7fe601a - 28f8: 40053100 .word 0x40053100 - 28fc: 2180b508 .word 0x2180b508 - 2900: 01894802 .word 0x01894802 - 2904: fef6f7ff .word 0xfef6f7ff - 2908: 46c0bd08 .word 0x46c0bd08 - 290c: 400f6004 .word 0x400f6004 - 2910: 2180b508 .word 0x2180b508 - 2914: 01894802 .word 0x01894802 - 2918: fef1f7ff .word 0xfef1f7ff - 291c: 46c0bd08 .word 0x46c0bd08 - 2920: 400f6004 .word 0x400f6004 - 2924: 46752404 .word 0x46752404 - 2928: d002422c .word 0xd002422c - 292c: 8009f3ef .word 0x8009f3ef - 2930: f3efe002 .word 0xf3efe002 - 2934: e7ff8008 .word 0xe7ff8008 - 2938: 60184b01 .word 0x60184b01 - 293c: e7febe00 .word 0xe7febe00 - 2940: 2000f740 .word 0x2000f740 - 2944: 1c0cb538 .word 0x1c0cb538 - 2948: f0011c05 .word 0xf0011c05 - 294c: 20c0fa9d .word 0x20c0fa9d - 2950: fadaf001 .word 0xfadaf001 - 2954: f0011c28 .word 0xf0011c28 - 2958: 1c20fad7 .word 0x1c20fad7 - 295c: fad4f001 .word 0xfad4f001 - 2960: fb72f001 .word 0xfb72f001 - 2964: b510bd38 .word 0xb510bd38 - 2968: f0011c04 .word 0xf0011c04 - 296c: 20c0fa8d .word 0x20c0fa8d - 2970: facaf001 .word 0xfacaf001 - 2974: f0011c20 .word 0xf0011c20 - 2978: f001fac7 .word 0xf001fac7 - 297c: 20c1fa85 .word 0x20c1fa85 - 2980: fac2f001 .word 0xfac2f001 - 2984: fb0cf001 .word 0xfb0cf001 - 2988: f0011c04 .word 0xf0011c04 - 298c: 1c20fb5d .word 0x1c20fb5d - 2990: 0000bd10 .word 0x0000bd10 - 2994: 4b0cb538 .word 0x4b0cb538 - 2998: 68181c05 .word 0x68181c05 - 299c: 06021c0c .word 0x06021c0c - 29a0: 490ad510 .word 0x490ad510 - 29a4: 2a00780a .word 0x2a00780a - 29a8: f001d10c .word 0xf001d10c - 29ac: 2034fa8d .word 0x2034fa8d - 29b0: fad0f001 .word 0xfad0f001 - 29b4: f0011c28 .word 0xf0011c28 - 29b8: 1c20facd .word 0x1c20facd - 29bc: facaf001 .word 0xfacaf001 - 29c0: fb54f001 .word 0xfb54f001 - 29c4: 46c0bd38 .word 0x46c0bd38 - 29c8: 400f6204 .word 0x400f6204 - 29cc: 2000ef2c .word 0x2000ef2c - 29d0: 28312100 .word 0x28312100 - 29d4: 4a04d906 .word 0x4a04d906 - 29d8: 21143832 .word 0x21143832 - 29dc: d8014290 .word 0xd8014290 - 29e0: 5c194b02 .word 0x5c194b02 - 29e4: 47701c08 .word 0x47701c08 - 29e8: 00000257 .word 0x00000257 - 29ec: 2000e9c4 .word 0x2000e9c4 - 29f0: 4b0eb538 .word 0x4b0eb538 - 29f4: 68181c05 .word 0x68181c05 - 29f8: d5160602 .word 0xd5160602 - 29fc: 780c490c .word 0x780c490c - 2a00: d1122c00 .word 0xd1122c00 - 2a04: fa60f001 .word 0xfa60f001 - 2a08: f0012034 .word 0xf0012034 - 2a0c: 2005faa3 .word 0x2005faa3 - 2a10: faa0f001 .word 0xfaa0f001 - 2a14: 34015d28 .word 0x34015d28 - 2a18: fa9cf001 .word 0xfa9cf001 - 2a1c: d1f92c1b .word 0xd1f92c1b - 2a20: f0012000 .word 0xf0012000 - 2a24: f001fa97 .word 0xf001fa97 - 2a28: bd38fb21 .word 0xbd38fb21 - 2a2c: 400f6204 .word 0x400f6204 - 2a30: 2000ef2c .word 0x2000ef2c - 2a34: 4b25b5f8 .word 0x4b25b5f8 - 2a38: 681a1c16 .word 0x681a1c16 - 2a3c: 1c0d2480 .word 0x1c0d2480 - 2a40: d00c4014 .word 0xd00c4014 - 2a44: 24004922 .word 0x24004922 - 2a48: 2f00780f .word 0x2f00780f - 2a4c: e00cd107 .word 0xe00cd107 - 2a50: 2f1d1f67 .word 0x2f1d1f67 - 2a54: 1902d806 .word 0x1902d806 - 2a58: 552b79d3 .word 0x552b79d3 - 2a5c: 42b43401 .word 0x42b43401 - 2a60: e032dbf6 .word 0xe032dbf6 - 2a64: 424b2101 .word 0x424b2101 - 2a68: f001e7f7 .word 0xf001e7f7 - 2a6c: 2035fa2d .word 0x2035fa2d - 2a70: fa70f001 .word 0xfa70f001 - 2a74: 2e014c17 .word 0x2e014c17 - 2a78: 1c38d80e .word 0x1c38d80e - 2a7c: fab6f001 .word 0xfab6f001 - 2a80: 4006260f .word 0x4006260f - 2a84: 5da20907 .word 0x5da20907 - 2a88: 5c24b2f8 .word 0x5c24b2f8 - 2a8c: 43210111 .word 0x43210111 - 2a90: f0017029 .word 0xf0017029 - 2a94: e018faeb .word 0xe018faeb - 2a98: 1e731c2f .word 0x1e731c2f - 2a9c: 42981b78 .word 0x42981b78 - 2aa0: 2001da0d .word 0x2001da0d - 2aa4: faa2f001 .word 0xfaa2f001 - 2aa8: 4003230f .word 0x4003230f - 2aac: 09005ce2 .word 0x09005ce2 - 2ab0: 0111b2c3 .word 0x0111b2c3 - 2ab4: 43115ce2 .word 0x43115ce2 - 2ab8: 37017039 .word 0x37017039 - 2abc: 2000e7ed .word 0x2000e7ed - 2ac0: f00119ad .word 0xf00119ad - 2ac4: 3d01fa93 .word 0x3d01fa93 - 2ac8: bdf8e7da .word 0xbdf8e7da - 2acc: 400f6204 .word 0x400f6204 - 2ad0: 2000ef2c .word 0x2000ef2c - 2ad4: 2000ec5b .word 0x2000ec5b - 2ad8: b5704b0e .word 0xb5704b0e - 2adc: 68181c06 .word 0x68181c06 - 2ae0: 1c141c0d .word 0x1c141c0d - 2ae4: d5030602 .word 0xd5030602 - 2ae8: 780a490b .word 0x780a490b - 2aec: d0022a00 .word 0xd0022a00 - 2af0: 71f41976 .word 0x71f41976 - 2af4: f001bd70 .word 0xf001bd70 - 2af8: 2034f9e7 .word 0x2034f9e7 - 2afc: fa2af001 .word 0xfa2af001 - 2b00: f0011c28 .word 0xf0011c28 - 2b04: 1c20fa27 .word 0x1c20fa27 - 2b08: fa24f001 .word 0xfa24f001 - 2b0c: faaef001 .word 0xfaaef001 - 2b10: 46c0e7ee .word 0x46c0e7ee - 2b14: 400f6204 .word 0x400f6204 - 2b18: 2000ef2c .word 0x2000ef2c - 2b1c: 1f4bb508 .word 0x1f4bb508 - 2b20: d8022b1d .word 0xd8022b1d - 2b24: 7b1b18c3 .word 0x7b1b18c3 - 2b28: 2301e001 .word 0x2301e001 - 2b2c: 4293425b .word 0x4293425b - 2b30: f7ffd001 .word 0xf7ffd001 - 2b34: 2000ffd1 .word 0x2000ffd1 - 2b38: b510bd08 .word 0xb510bd08 - 2b3c: 2c1d1f4c .word 0x2c1d1f4c - 2b40: 1904d808 .word 0x1904d808 - 2b44: 439c7b24 .word 0x439c7b24 - 2b48: 1c224013 .word 0x1c224013 - 2b4c: f7ff431a .word 0xf7ff431a - 2b50: e001ffe5 .word 0xe001ffe5 - 2b54: 42402001 .word 0x42402001 - 2b58: 0000bd10 .word 0x0000bd10 - 2b5c: 4d04b538 .word 0x4d04b538 - 2b60: 1c0c1c4a .word 0x1c0c1c4a - 2b64: 1c29b2d2 .word 0x1c29b2d2 - 2b68: ff64f7ff .word 0xff64f7ff - 2b6c: bd385d28 .word 0xbd385d28 - 2b70: 2000f744 .word 0x2000f744 - 2b74: 6805b5f7 .word 0x6805b5f7 - 2b78: 1c0e1c04 .word 0x1c0e1c04 - 2b7c: 1c5f2300 .word 0x1c5f2300 - 2b80: 4a2f1c31 .word 0x4a2f1c31 - 2b84: 188840b9 .word 0x188840b9 - 2b88: 4288492e .word 0x4288492e - 2b8c: 1e3bd903 .word 0x1e3bd903 - 2b90: d1f42b05 .word 0xd1f42b05 - 2b94: 1c1fe000 .word 0x1c1fe000 - 2b98: b2d2017a .word 0xb2d2017a - 2b9c: 21101c20 .word 0x21101c20 - 2ba0: f7ff23e0 .word 0xf7ff23e0 - 2ba4: 2800ffca .word 0x2800ffca - 2ba8: 3701db48 .word 0x3701db48 - 2bac: 08680c69 .word 0x08680c69 - 2bb0: 900140be .word 0x900140be - 2bb4: 18709100 .word 0x18709100 - 2bb8: f0011c29 .word 0xf0011c29 - 2bbc: 1c03fbcd .word 0x1c03fbcd - 2bc0: b2da3b0d .word 0xb2da3b0d - 2bc4: 08901c07 .word 0x08901c07 - 2bc8: 1a530081 .word 0x1a530081 - 2bcc: 1880019a .word 0x1880019a - 2bd0: 2114b2c2 .word 0x2114b2c2 - 2bd4: f7ff1c20 .word 0xf7ff1c20 - 2bd8: 2800ffa1 .word 0x2800ffa1 - 2bdc: b2ffdb2e .word 0xb2ffdb2e - 2be0: 1b76437d .word 0x1b76437d - 2be4: 2208d104 .word 0x2208d104 - 2be8: 21121c20 .word 0x21121c20 - 2bec: e0231c13 .word 0xe0231c13 - 2bf0: 27009d00 .word 0x27009d00 - 2bf4: 1c3b1976 .word 0x1c3b1976 - 2bf8: 40da9a01 .word 0x40da9a01 - 2bfc: d3064296 .word 0xd3064296 - 2c00: 02082180 .word 0x02082180 - 2c04: 43074118 .word 0x43074118 - 2c08: 1ab6b2bf .word 0x1ab6b2bf - 2c0c: 3301d002 .word 0x3301d002 - 2c10: d1f12b10 .word 0xd1f12b10 - 2c14: 1c20b2fa .word 0x1c20b2fa - 2c18: f7ff2115 .word 0xf7ff2115 - 2c1c: 2800ff7f .word 0x2800ff7f - 2c20: 0a3adb0c .word 0x0a3adb0c - 2c24: 21161c20 .word 0x21161c20 - 2c28: ff78f7ff .word 0xff78f7ff - 2c2c: db052800 .word 0xdb052800 - 2c30: 21121c20 .word 0x21121c20 - 2c34: 23082200 .word 0x23082200 - 2c38: ff7ff7ff .word 0xff7ff7ff - 2c3c: 46c0bdfe .word 0x46c0bdfe - 2c40: 967ff180 .word 0x967ff180 - 2c44: 7ef53880 .word 0x7ef53880 - 2c48: 4b26b5f8 .word 0x4b26b5f8 - 2c4c: 1c044a24 .word 0x1c044a24 - 2c50: 68871c0d .word 0x68871c0d - 2c54: 21001c08 .word 0x21001c08 - 2c58: fbcef001 .word 0xfbcef001 - 2c5c: f7ff1c08 .word 0xf7ff1c08 - 2c60: 2603feb7 .word 0x2603feb7 - 2c64: 49204370 .word 0x49204370 - 2c68: 180e2308 .word 0x180e2308 - 2c6c: 1c207832 .word 0x1c207832 - 2c70: f7ff2117 .word 0xf7ff2117 - 2c74: 2800ff62 .word 0x2800ff62 - 2c78: 7872db2e .word 0x7872db2e - 2c7c: 211a1c20 .word 0x211a1c20 - 2c80: f7ff23c3 .word 0xf7ff23c3 - 2c84: 2800ff5a .word 0x2800ff5a - 2c88: 78b2db26 .word 0x78b2db26 - 2c8c: 211b1c20 .word 0x211b1c20 - 2c90: ff44f7ff .word 0xff44f7ff - 2c94: db1f2800 .word 0xdb1f2800 - 2c98: 21101c20 .word 0x21101c20 - 2c9c: 230b2208 .word 0x230b2208 - 2ca0: ff4bf7ff .word 0xff4bf7ff - 2ca4: db172800 .word 0xdb172800 - 2ca8: 21081c20 .word 0x21081c20 - 2cac: 233f2200 .word 0x233f2200 - 2cb0: ff43f7ff .word 0xff43f7ff - 2cb4: db0f2800 .word 0xdb0f2800 - 2cb8: 21091c20 .word 0x21091c20 - 2cbc: 233f2200 .word 0x233f2200 - 2cc0: ff3bf7ff .word 0xff3bf7ff - 2cc4: db072800 .word 0xdb072800 - 2cc8: 1c2019e9 .word 0x1c2019e9 - 2ccc: ff52f7ff .word 0xff52f7ff - 2cd0: db012800 .word 0xdb012800 - 2cd4: 20006065 .word 0x20006065 - 2cd8: 46c0bdf8 .word 0x46c0bdf8 - 2cdc: 46c046c0 .word 0x46c046c0 - 2ce0: 000010c7 .word 0x000010c7 - 2ce4: 00000000 .word 0x00000000 - 2ce8: 2000ec1c .word 0x2000ec1c - 2cec: 46c046c0 .word 0x46c046c0 - 2cf0: 1c0ab508 .word 0x1c0ab508 - 2cf4: 2105230f .word 0x2105230f - 2cf8: ff1ff7ff .word 0xff1ff7ff - 2cfc: b508bd08 .word 0xb508bd08 - 2d00: 230f1c0a .word 0x230f1c0a - 2d04: f7ff2107 .word 0xf7ff2107 - 2d08: bd08ff18 .word 0xbd08ff18 - 2d0c: 1c0ab508 .word 0x1c0ab508 - 2d10: 210c230f .word 0x210c230f - 2d14: ff11f7ff .word 0xff11f7ff - 2d18: b508bd08 .word 0xb508bd08 - 2d1c: 414a424a .word 0x414a424a - 2d20: 21050112 .word 0x21050112 - 2d24: f7ff2310 .word 0xf7ff2310 - 2d28: bd08ff08 .word 0xbd08ff08 - 2d2c: 1e0ab508 .word 0x1e0ab508 - 2d30: 2210d000 .word 0x2210d000 - 2d34: 23102107 .word 0x23102107 - 2d38: fefff7ff .word 0xfefff7ff - 2d3c: 0000bd08 .word 0x0000bd08 - 2d40: 1c04b537 .word 0x1c04b537 - 2d44: 1c202505 .word 0x1c202505 - 2d48: 2208210b .word 0x2208210b - 2d4c: f7ff2360 .word 0xf7ff2360 - 2d50: 2800fef4 .word 0x2800fef4 - 2d54: 2204db43 .word 0x2204db43 - 2d58: 210f1c20 .word 0x210f1c20 - 2d5c: f7ff1c13 .word 0xf7ff1c13 - 2d60: 2800feec .word 0x2800feec - 2d64: 1c20db3b .word 0x1c20db3b - 2d68: 22002110 .word 0x22002110 - 2d6c: f7ff2303 .word 0xf7ff2303 - 2d70: 2800fee4 .word 0x2800fee4 - 2d74: 1c20db33 .word 0x1c20db33 - 2d78: f7ff4919 .word 0xf7ff4919 - 2d7c: 2800fefb .word 0x2800fefb - 2d80: 2210db2d .word 0x2210db2d - 2d84: 210b1c20 .word 0x210b1c20 - 2d88: f7ff1c13 .word 0xf7ff1c13 - 2d8c: 2800fed6 .word 0x2800fed6 - 2d90: 4814db25 .word 0x4814db25 - 2d94: fda4f7ff .word 0xfda4f7ff - 2d98: 210b1c20 .word 0x210b1c20 - 2d9c: 23102200 .word 0x23102200 - 2da0: fecbf7ff .word 0xfecbf7ff - 2da4: db1a2800 .word 0xdb1a2800 - 2da8: 210f1c20 .word 0x210f1c20 - 2dac: 23042200 .word 0x23042200 - 2db0: fec3f7ff .word 0xfec3f7ff - 2db4: db122800 .word 0xdb122800 - 2db8: 22051c20 .word 0x22051c20 - 2dbc: f7ff4669 .word 0xf7ff4669 - 2dc0: 466bfe39 .word 0x466bfe39 - 2dc4: 200f791a .word 0x200f791a - 2dc8: d0014010 .word 0xd0014010 - 2dcc: d105280f .word 0xd105280f - 2dd0: 2d003d01 .word 0x2d003d01 - 2dd4: 2101d1b7 .word 0x2101d1b7 - 2dd8: e0004248 .word 0xe0004248 - 2ddc: bd3e2000 .word 0xbd3e2000 - 2de0: 053ec600 .word 0x053ec600 - 2de4: 00002710 .word 0x00002710 - 2de8: 4b0eb538 .word 0x4b0eb538 - 2dec: 22001c04 .word 0x22001c04 - 2df0: 300c6081 .word 0x300c6081 - 2df4: f7ff701a .word 0xf7ff701a - 2df8: 6861fdfb .word 0x6861fdfb - 2dfc: f7ff1c20 .word 0xf7ff1c20 - 2e00: 1c20ff23 .word 0x1c20ff23 - 2e04: f7ff6865 .word 0xf7ff6865 - 2e08: 6065ff9b .word 0x6065ff9b - 2e0c: da032800 .word 0xda032800 - 2e10: f7ff1c20 .word 0xf7ff1c20 - 2e14: 6065ff95 .word 0x6065ff95 - 2e18: 1c201c29 .word 0x1c201c29 - 2e1c: ff14f7ff .word 0xff14f7ff - 2e20: 46c0bd38 .word 0x46c0bd38 - 2e24: 2000ef2c .word 0x2000ef2c - 2e28: 4f11b5f0 .word 0x4f11b5f0 - 2e2c: ae01b087 .word 0xae01b087 - 2e30: 1c0d1c04 .word 0x1c0d1c04 - 2e34: 1c391c30 .word 0x1c391c30 - 2e38: f0012204 .word 0xf0012204 - 2e3c: 1d39faff .word 0x1d39faff - 2e40: 2210a802 .word 0x2210a802 - 2e44: fafaf001 .word 0xfafaf001 - 2e48: 092b200f .word 0x092b200f - 2e4c: 4005a902 .word 0x4005a902 - 2e50: 5d4a5cf6 .word 0x5d4a5cf6 - 2e54: 430625b0 .word 0x430625b0 - 2e58: 1c20432a .word 0x1c20432a - 2e5c: f7ff210a .word 0xf7ff210a - 2e60: 1c20fe5d .word 0x1c20fe5d - 2e64: 1c32210b .word 0x1c32210b - 2e68: fe58f7ff .word 0xfe58f7ff - 2e6c: bdf0b007 .word 0xbdf0b007 - 2e70: 2000e9b0 .word 0x2000e9b0 - 2e74: 2005b508 .word 0x2005b508 - 2e78: f7ff21a0 .word 0xf7ff21a0 - 2e7c: 2006fd8b .word 0x2006fd8b - 2e80: f7ff21d0 .word 0xf7ff21d0 - 2e84: 2007fd87 .word 0x2007fd87 - 2e88: f7ff2100 .word 0xf7ff2100 - 2e8c: 2008fd83 .word 0x2008fd83 - 2e90: f7ff2140 .word 0xf7ff2140 - 2e94: 2009fd7f .word 0x2009fd7f - 2e98: f7ff21c0 .word 0xf7ff21c0 - 2e9c: 200afd7b .word 0x200afd7b - 2ea0: f7ff2170 .word 0xf7ff2170 - 2ea4: 200cfd77 .word 0x200cfd77 - 2ea8: f7ff21a0 .word 0xf7ff21a0 - 2eac: 200ffd73 .word 0x200ffd73 - 2eb0: f7ff212a .word 0xf7ff212a - 2eb4: 2011fd6f .word 0x2011fd6f - 2eb8: f7ff2103 .word 0xf7ff2103 - 2ebc: 2017fd6b .word 0x2017fd6b - 2ec0: f7ff21f4 .word 0xf7ff21f4 - 2ec4: 2019fd67 .word 0x2019fd67 - 2ec8: f7ff210c .word 0xf7ff210c - 2ecc: 4b02fd63 .word 0x4b02fd63 - 2ed0: 20002201 .word 0x20002201 - 2ed4: bd08701a .word 0xbd08701a - 2ed8: 2000ef2c .word 0x2000ef2c - 2edc: 4b04b508 .word 0x4b04b508 - 2ee0: 300c2200 .word 0x300c2200 - 2ee4: f7ff701a .word 0xf7ff701a - 2ee8: f7fffd83 .word 0xf7fffd83 - 2eec: bd08ffc3 .word 0xbd08ffc3 - 2ef0: 2000ef2c .word 0x2000ef2c - 2ef4: 4d0bb570 .word 0x4d0bb570 - 2ef8: 01242480 .word 0x01242480 - 2efc: 1c211c28 .word 0x1c211c28 - 2f00: fbfdf7ff .word 0xfbfdf7ff - 2f04: 20002105 .word 0x20002105 - 2f08: f922f001 .word 0xf922f001 - 2f0c: 200021ff .word 0x200021ff - 2f10: f91ef001 .word 0xf91ef001 - 2f14: 1c061c21 .word 0x1c061c21 - 2f18: f7ff1c28 .word 0xf7ff1c28 - 2f1c: b2f0fbeb .word 0xb2f0fbeb - 2f20: 46c0bd70 .word 0x46c0bd70 - 2f24: 400f6014 .word 0x400f6014 - 2f28: 4d11b570 .word 0x4d11b570 - 2f2c: 01242480 .word 0x01242480 - 2f30: 1c211c28 .word 0x1c211c28 - 2f34: fbe3f7ff .word 0xfbe3f7ff - 2f38: 200021ab .word 0x200021ab - 2f3c: f908f001 .word 0xf908f001 - 2f40: 200021ff .word 0x200021ff - 2f44: f904f001 .word 0xf904f001 - 2f48: 200021ff .word 0x200021ff - 2f4c: f900f001 .word 0xf900f001 - 2f50: 200021ff .word 0x200021ff - 2f54: f8fcf001 .word 0xf8fcf001 - 2f58: 200021ff .word 0x200021ff - 2f5c: f8f8f001 .word 0xf8f8f001 - 2f60: 1c061c21 .word 0x1c061c21 - 2f64: f7ff1c28 .word 0xf7ff1c28 - 2f68: b2f0fbc5 .word 0xb2f0fbc5 - 2f6c: 46c0bd70 .word 0x46c0bd70 - 2f70: 400f6014 .word 0x400f6014 - 2f74: 2280b5f0 .word 0x2280b5f0 - 2f78: 03904b31 .word 0x03904b31 - 2f7c: 6018b087 .word 0x6018b087 - 2f80: 483021f2 .word 0x483021f2 - 2f84: ff48f000 .word 0xff48f000 - 2f88: 21f0482f .word 0x21f0482f - 2f8c: ff44f000 .word 0xff44f000 - 2f90: 21f0482e .word 0x21f0482e - 2f94: ff40f000 .word 0xff40f000 - 2f98: 21f0482d .word 0x21f0482d - 2f9c: ff3cf000 .word 0xff3cf000 - 2fa0: 21f4482c .word 0x21f4482c - 2fa4: ff38f000 .word 0xff38f000 - 2fa8: 21f4482b .word 0x21f4482b - 2fac: ff34f000 .word 0xff34f000 - 2fb0: 21f54827 .word 0x21f54827 - 2fb4: ff30f000 .word 0xff30f000 - 2fb8: 21f54826 .word 0x21f54826 - 2fbc: ff2cf000 .word 0xff2cf000 - 2fc0: 21f24820 .word 0x21f24820 - 2fc4: ff28f000 .word 0xff28f000 - 2fc8: 21f0481f .word 0x21f0481f - 2fcc: ff24f000 .word 0xff24f000 - 2fd0: 481e4d22 .word 0x481e4d22 - 2fd4: 27c021f0 .word 0x27c021f0 - 2fd8: ff1ef000 .word 0xff1ef000 - 2fdc: 481e4c20 .word 0x481e4c20 - 2fe0: 023f21f4 .word 0x023f21f4 - 2fe4: f0002680 .word 0xf0002680 - 2fe8: 0136ff17 .word 0x0136ff17 - 2fec: 1c391c28 .word 0x1c391c28 - 2ff0: fb80f7ff .word 0xfb80f7ff - 2ff4: 1c201c31 .word 0x1c201c31 - 2ff8: fb7cf7ff .word 0xfb7cf7ff - 2ffc: 20026829 .word 0x20026829 - 3000: 602f430f .word 0x602f430f - 3004: 25006822 .word 0x25006822 - 3008: 60264316 .word 0x60264316 - 300c: 90001c2b .word 0x90001c2b - 3010: 95029001 .word 0x95029001 - 3014: 95049503 .word 0x95049503 - 3018: 21071c28 .word 0x21071c28 - 301c: f0011c2a .word 0xf0011c2a - 3020: 4b10f837 .word 0x4b10f837 - 3024: 1c1f701d .word 0x1c1f701d - 3028: 2c13783c .word 0x2c13783c - 302c: 2c15d005 .word 0x2c15d005 - 3030: f7ffd003 .word 0xf7ffd003 - 3034: 7038ff79 .word 0x7038ff79 - 3038: b007e7f6 .word 0xb007e7f6 - 303c: 46c0bdf0 .word 0x46c0bdf0 - 3040: 40053104 .word 0x40053104 - 3044: 4008618c .word 0x4008618c - 3048: 40086190 .word 0x40086190 - 304c: 40086194 .word 0x40086194 - 3050: 40086198 .word 0x40086198 - 3054: 4008619c .word 0x4008619c - 3058: 400861a0 .word 0x400861a0 - 305c: 400f6004 .word 0x400f6004 - 3060: 400f6014 .word 0x400f6014 - 3064: 2000f764 .word 0x2000f764 - 3068: b5382180 .word 0xb5382180 - 306c: 1c050109 .word 0x1c050109 - 3070: f7ff4820 .word 0xf7ff4820 - 3074: 4b20fb44 .word 0x4b20fb44 - 3078: 28137818 .word 0x28137818 - 307c: 2000d119 .word 0x2000d119 - 3080: f001214b .word 0xf001214b - 3084: 2404f865 .word 0x2404f865 - 3088: 21ff2000 .word 0x21ff2000 - 308c: f0013c01 .word 0xf0013c01 - 3090: 2c00f85f .word 0x2c00f85f - 3094: 2000d1f8 .word 0x2000d1f8 - 3098: f00121ff .word 0xf00121ff - 309c: 5528f859 .word 0x5528f859 - 30a0: 2c083401 .word 0x2c083401 - 30a4: 2280d1f7 .word 0x2280d1f7 - 30a8: 01114812 .word 0x01114812 - 30ac: fb22f7ff .word 0xfb22f7ff - 30b0: 2815bd38 .word 0x2815bd38 - 30b4: 214bd1f7 .word 0x214bd1f7 - 30b8: f0012000 .word 0xf0012000 - 30bc: 2000f849 .word 0x2000f849 - 30c0: f0011c01 .word 0xf0011c01 - 30c4: 2101f845 .word 0x2101f845 - 30c8: f0012000 .word 0xf0012000 - 30cc: 2102f841 .word 0x2102f841 - 30d0: f0012000 .word 0xf0012000 - 30d4: 2000f83d .word 0x2000f83d - 30d8: f00121ff .word 0xf00121ff - 30dc: 2400f839 .word 0x2400f839 - 30e0: 21ff2000 .word 0x21ff2000 - 30e4: f834f001 .word 0xf834f001 - 30e8: 34015528 .word 0x34015528 - 30ec: d1f72c08 .word 0xd1f72c08 - 30f0: 46c0e7d9 .word 0x46c0e7d9 - 30f4: 400f6014 .word 0x400f6014 - 30f8: 2000f764 .word 0x2000f764 - 30fc: f7ffb508 .word 0xf7ffb508 - 3100: 07c3fef9 .word 0x07c3fef9 - 3104: bd08d4fb .word 0xbd08d4fb - 3108: 4d09b538 .word 0x4d09b538 - 310c: 01242480 .word 0x01242480 - 3110: fff4f7ff .word 0xfff4f7ff - 3114: 1c211c28 .word 0x1c211c28 - 3118: faf1f7ff .word 0xfaf1f7ff - 311c: 20002106 .word 0x20002106 - 3120: f816f001 .word 0xf816f001 - 3124: 1c211c28 .word 0x1c211c28 - 3128: fae4f7ff .word 0xfae4f7ff - 312c: 46c0bd38 .word 0x46c0bd38 - 3130: 400f6014 .word 0x400f6014 - 3134: 4d17b538 .word 0x4d17b538 - 3138: 1c042300 .word 0x1c042300 - 313c: 7828702b .word 0x7828702b - 3140: d0052813 .word 0xd0052813 - 3144: d0032815 .word 0xd0032815 - 3148: feeef7ff .word 0xfeeef7ff - 314c: e7f67028 .word 0xe7f67028 - 3150: ffdaf7ff .word 0xffdaf7ff - 3154: ffd2f7ff .word 0xffd2f7ff - 3158: 480f2180 .word 0x480f2180 - 315c: f7ff0109 .word 0xf7ff0109 - 3160: 21d8face .word 0x21d8face - 3164: f0002000 .word 0xf0002000 - 3168: 0222fff3 .word 0x0222fff3 - 316c: 04250e11 .word 0x04250e11 - 3170: f0002000 .word 0xf0002000 - 3174: 0e29ffed .word 0x0e29ffed - 3178: f0002000 .word 0xf0002000 - 317c: b2e1ffe9 .word 0xb2e1ffe9 - 3180: 24802000 .word 0x24802000 - 3184: ffe4f000 .word 0xffe4f000 - 3188: 01214803 .word 0x01214803 - 318c: fab2f7ff .word 0xfab2f7ff - 3190: 46c0bd38 .word 0x46c0bd38 - 3194: 2000f764 .word 0x2000f764 - 3198: 400f6014 .word 0x400f6014 - 319c: b2c7b5f8 .word 0xb2c7b5f8 - 31a0: 23801c16 .word 0x23801c16 - 31a4: 1c0419ca .word 0x1c0419ca - 31a8: 00581c0d .word 0x00581c0d - 31ac: d82e4282 .word 0xd82e4282 - 31b0: 034a2180 .word 0x034a2180 - 31b4: 429c1b53 .word 0x429c1b53 - 31b8: f7ffd829 .word 0xf7ffd829 - 31bc: f7ffffa5 .word 0xf7ffffa5 - 31c0: 2180ff9d .word 0x2180ff9d - 31c4: 01094812 .word 0x01094812 - 31c8: fa99f7ff .word 0xfa99f7ff - 31cc: 20002102 .word 0x20002102 - 31d0: ffbef000 .word 0xffbef000 - 31d4: 0e010220 .word 0x0e010220 - 31d8: 20000424 .word 0x20000424 - 31dc: ffb8f000 .word 0xffb8f000 - 31e0: 20000e21 .word 0x20000e21 - 31e4: ffb4f000 .word 0xffb4f000 - 31e8: 2000b2b9 .word 0x2000b2b9 - 31ec: ffb0f000 .word 0xffb0f000 - 31f0: 1ba71c34 .word 0x1ba71c34 - 31f4: da0542af .word 0xda0542af - 31f8: 20007821 .word 0x20007821 - 31fc: ffa8f000 .word 0xffa8f000 - 3200: e7f63401 .word 0xe7f63401 - 3204: 48022580 .word 0x48022580 - 3208: f7ff0129 .word 0xf7ff0129 - 320c: bdf8fa73 .word 0xbdf8fa73 - 3210: 400f6014 .word 0x400f6014 - 3214: 1c04b5f8 .word 0x1c04b5f8 - 3218: 1c171c0d .word 0x1c171c0d - 321c: fe84f7ff .word 0xfe84f7ff - 3220: d0012813 .word 0xd0012813 - 3224: d1f92815 .word 0xd1f92815 - 3228: 03582380 .word 0x03582380 - 322c: d82f4285 .word 0xd82f4285 - 3230: d82d4284 .word 0xd82d4284 - 3234: 4282192a .word 0x4282192a - 3238: 2680d82a .word 0x2680d82a - 323c: b2e10073 .word 0xb2e10073 - 3240: b2861a58 .word 0xb2861a58 - 3244: d20242b5 .word 0xd20242b5 - 3248: 2e00b2ae .word 0x2e00b2ae - 324c: 1c20d007 .word 0x1c20d007 - 3250: 1c311c3a .word 0x1c311c3a - 3254: ffa2f7ff .word 0xffa2f7ff - 3258: 19bf19a4 .word 0x19bf19a4 - 325c: 1c261bad .word 0x1c261bad - 3260: 19611b3a .word 0x19611b3a - 3264: 1b8b1992 .word 0x1b8b1992 - 3268: d9072bff .word 0xd9072bff - 326c: 1c302180 .word 0x1c302180 - 3270: 36010049 .word 0x36010049 - 3274: ff92f7ff .word 0xff92f7ff - 3278: e7f136ff .word 0xe7f136ff - 327c: 02060a28 .word 0x02060a28 - 3280: 1930b2ed .word 0x1930b2ed - 3284: 2d0019ba .word 0x2d0019ba - 3288: b2a9d002 .word 0xb2a9d002 - 328c: ff86f7ff .word 0xff86f7ff - 3290: 0000bdf8 .word 0x0000bdf8 - 3294: 2380b5f8 .word 0x2380b5f8 - 3298: 1c0e1c05 .word 0x1c0e1c05 - 329c: 03581c14 .word 0x03581c14 - 32a0: d8314281 .word 0xd8314281 - 32a4: d82f4285 .word 0xd82f4285 - 32a8: 4282194a .word 0x4282194a - 32ac: f7ffd82c .word 0xf7ffd82c - 32b0: 2180ff25 .word 0x2180ff25 - 32b4: 01094815 .word 0x01094815 - 32b8: fa21f7ff .word 0xfa21f7ff - 32bc: 2000210b .word 0x2000210b - 32c0: ff46f000 .word 0xff46f000 - 32c4: 20000c29 .word 0x20000c29 - 32c8: ff42f000 .word 0xff42f000 - 32cc: 0a2927ff .word 0x0a2927ff - 32d0: 20004039 .word 0x20004039 - 32d4: ff3cf000 .word 0xff3cf000 - 32d8: 40391c29 .word 0x40391c29 - 32dc: f0002000 .word 0xf0002000 - 32e0: 2000ff37 .word 0x2000ff37 - 32e4: f0001c39 .word 0xf0001c39 - 32e8: 19a5ff33 .word 0x19a5ff33 - 32ec: d00642ac .word 0xd00642ac - 32f0: 21ff2000 .word 0x21ff2000 - 32f4: ff2cf000 .word 0xff2cf000 - 32f8: 34017020 .word 0x34017020 - 32fc: 2480e7f6 .word 0x2480e7f6 - 3300: 01214802 .word 0x01214802 - 3304: f9f6f7ff .word 0xf9f6f7ff - 3308: 46c0bdf8 .word 0x46c0bdf8 - 330c: 400f6014 .word 0x400f6014 - 3310: 49044b03 .word 0x49044b03 - 3314: 18406818 .word 0x18406818 - 3318: 41981e43 .word 0x41981e43 - 331c: 46c04770 .word 0x46c04770 - 3320: 10400100 .word 0x10400100 - 3324: edcba988 .word 0xedcba988 - 3328: 1c04b538 .word 0x1c04b538 - 332c: fff0f7ff .word 0xfff0f7ff - 3330: d0061e05 .word 0xd0061e05 - 3334: 1c214d10 .word 0x1c214d10 - 3338: 682a3118 .word 0x682a3118 - 333c: 47901c20 .word 0x47901c20 - 3340: f7ffe018 .word 0xf7ffe018 - 3344: 7823fe17 .word 0x7823fe17 - 3348: d0082b36 .word 0xd0082b36 - 334c: d10e2b3a .word 0xd10e2b3a - 3350: 61e51c20 .word 0x61e51c20 - 3354: 30246225 .word 0x30246225 - 3358: fe86f7ff .word 0xfe86f7ff - 335c: 4a07e005 .word 0x4a07e005 - 3360: 68134807 .word 0x68134807 - 3364: 680161e3 .word 0x680161e3 - 3368: 83256221 .word 0x83256221 - 336c: 2080e002 .word 0x2080e002 - 3370: 83210041 .word 0x83210041 - 3374: bd388b20 .word 0xbd388b20 - 3378: 10400100 .word 0x10400100 - 337c: 40043200 .word 0x40043200 - 3380: 40045000 .word 0x40045000 - 3384: 49084b07 .word 0x49084b07 - 3388: 60184a08 .word 0x60184a08 - 338c: 60084b08 .word 0x60084b08 - 3390: 68196010 .word 0x68196010 - 3394: 60194001 .word 0x60194001 - 3398: 681a4b06 .word 0x681a4b06 - 339c: 60184010 .word 0x60184010 - 33a0: 46c04770 .word 0x46c04770 - 33a4: 40006178 .word 0x40006178 - 33a8: 4000617c .word 0x4000617c - 33ac: 40006144 .word 0x40006144 - 33b0: 400061ac .word 0x400061ac - 33b4: 400061bc .word 0x400061bc - 33b8: 68194b04 .word 0x68194b04 - 33bc: d1fb4201 .word 0xd1fb4201 - 33c0: 60184b03 .word 0x60184b03 - 33c4: 4202681a .word 0x4202681a - 33c8: 4770d1fc .word 0x4770d1fc - 33cc: 400061b0 .word 0x400061b0 - 33d0: 400061b4 .word 0x400061b4 - 33d4: 4b0d4a0c .word 0x4b0d4a0c - 33d8: 480d6811 .word 0x480d6811 - 33dc: 60114019 .word 0x60114019 - 33e0: 401a6802 .word 0x401a6802 - 33e4: 480b6002 .word 0x480b6002 - 33e8: 68014a0b .word 0x68014a0b - 33ec: 60014019 .word 0x60014019 - 33f0: 40186810 .word 0x40186810 - 33f4: 4a096010 .word 0x4a096010 - 33f8: 68114809 .word 0x68114809 - 33fc: 60114019 .word 0x60114019 - 3400: 40136802 .word 0x40136802 - 3404: 47706003 .word 0x47706003 - 3408: 400061c0 .word 0x400061c0 - 340c: ff7fff7f .word 0xff7fff7f - 3410: 400061c4 .word 0x400061c4 - 3414: 400061c8 .word 0x400061c8 - 3418: 400061cc .word 0x400061cc - 341c: 400061d0 .word 0x400061d0 - 3420: 400061d4 .word 0x400061d4 - 3424: 0603220f .word 0x0603220f - 3428: 0fd94010 .word 0x0fd94010 - 342c: 180b0040 .word 0x180b0040 - 3430: 01994a01 .word 0x01994a01 - 3434: 47701888 .word 0x47701888 - 3438: 2000f800 .word 0x2000f800 - 343c: 23804a05 .word 0x23804a05 - 3440: 21000298 .word 0x21000298 - 3444: 60116010 .word 0x60116010 - 3448: 68134a03 .word 0x68134a03 - 344c: d0fb4203 .word 0xd0fb4203 - 3450: 46c04770 .word 0x46c04770 - 3454: 40053100 .word 0x40053100 - 3458: 40053150 .word 0x40053150 - 345c: 6904b538 .word 0x6904b538 - 3460: 1c201c0d .word 0x1c201c0d - 3464: ffdef7ff .word 0xffdef7ff - 3468: 22c068c3 .word 0x22c068c3 - 346c: 60854393 .word 0x60854393 - 3470: 200f60c3 .word 0x200f60c3 - 3474: 21014020 .word 0x21014020 - 3478: 4d034081 .word 0x4d034081 - 347c: 06201c0b .word 0x06201c0b - 3480: 040bd500 .word 0x040bd500 - 3484: bd38602b .word 0xbd38602b - 3488: 400061b0 .word 0x400061b0 - 348c: b5386902 .word 0xb5386902 - 3490: 250f1c04 .word 0x250f1c04 - 3494: f0004015 .word 0xf0004015 - 3498: 6923fa6d .word 0x6923fa6d - 349c: 40a82001 .word 0x40a82001 - 34a0: d500061a .word 0xd500061a - 34a4: f7ff0400 .word 0xf7ff0400 - 34a8: bd38ff87 .word 0xbd38ff87 - 34ac: b5106903 .word 0xb5106903 - 34b0: 1c04210f .word 0x1c04210f - 34b4: 40194810 .word 0x40194810 - 34b8: 18092280 .word 0x18092280 - 34bc: d0054213 .word 0xd0054213 - 34c0: 68080089 .word 0x68080089 - 34c4: 40034b0d .word 0x40034b0d - 34c8: e003600b .word 0xe003600b - 34cc: 6818008b .word 0x6818008b - 34d0: 60184390 .word 0x60184390 - 34d4: f0001c20 .word 0xf0001c20 - 34d8: 6921fa4d .word 0x6921fa4d - 34dc: 400a220f .word 0x400a220f - 34e0: 40902001 .word 0x40902001 - 34e4: d5000609 .word 0xd5000609 - 34e8: f7ff0400 .word 0xf7ff0400 - 34ec: 1c20ff4b .word 0x1c20ff4b - 34f0: ffccf7ff .word 0xffccf7ff - 34f4: 46c0bd10 .word 0x46c0bd10 - 34f8: 10001870 .word 0x10001870 - 34fc: ff7fffff .word 0xff7fffff - 3500: 6904b510 .word 0x6904b510 - 3504: 4023230f .word 0x4023230f - 3508: 22014907 .word 0x22014907 - 350c: d5030620 .word 0xd5030620 - 3510: 6808409a .word 0x6808409a - 3514: e0020414 .word 0xe0020414 - 3518: 6808409a .word 0x6808409a - 351c: 40201c14 .word 0x40201c14 - 3520: 41981e43 .word 0x41981e43 - 3524: 46c0bd10 .word 0x46c0bd10 - 3528: 400061b8 .word 0x400061b8 - 352c: 6903b5f8 .word 0x6903b5f8 - 3530: 1c16600a .word 0x1c16600a - 3534: 1c05220f .word 0x1c05220f - 3538: 4813401a .word 0x4813401a - 353c: 061c2101 .word 0x061c2101 - 3540: 4091d503 .word 0x4091d503 - 3544: 040f6804 .word 0x040f6804 - 3548: 4091e002 .word 0x4091e002 - 354c: 1c0f6804 .word 0x1c0f6804 - 3550: 1e62403c .word 0x1e62403c - 3554: 2c004194 .word 0x2c004194 - 3558: 4c0cd115 .word 0x4c0cd115 - 355c: 68222080 .word 0x68222080 - 3560: 433a01c7 .word 0x433a01c7 - 3564: 1c286022 .word 0x1c286022 - 3568: ffcaf7ff .word 0xffcaf7ff - 356c: 42396821 .word 0x42396821 - 3570: 6822d0f3 .word 0x6822d0f3 - 3574: 40134b06 .word 0x40134b06 - 3578: 28006023 .word 0x28006023 - 357c: 1c28d103 .word 0x1c28d103 - 3580: f7ff1c31 .word 0xf7ff1c31 - 3584: bdf8ff6b .word 0xbdf8ff6b - 3588: 400061b0 .word 0x400061b0 - 358c: 40006140 .word 0x40006140 - 3590: ffffbfff .word 0xffffbfff - 3594: 1c05b538 .word 0x1c05b538 - 3598: 1c281c0c .word 0x1c281c0c - 359c: ffb0f7ff .word 0xffb0f7ff - 35a0: d1fa2800 .word 0xd1fa2800 - 35a4: 1c282301 .word 0x1c282301 - 35a8: 1c216023 .word 0x1c216023 - 35ac: ff56f7ff .word 0xff56f7ff - 35b0: 0000bd38 .word 0x0000bd38 - 35b4: 230f6902 .word 0x230f6902 - 35b8: 40134804 .word 0x40134804 - 35bc: 008b1819 .word 0x008b1819 - 35c0: 4803681a .word 0x4803681a - 35c4: 601a4302 .word 0x601a4302 - 35c8: 46c04770 .word 0x46c04770 - 35cc: 10001870 .word 0x10001870 - 35d0: 00010001 .word 0x00010001 - 35d4: 1c024b08 .word 0x1c024b08 - 35d8: 20016819 .word 0x20016819 - 35dc: d10a428a .word 0xd10a428a - 35e0: 23c04806 .word 0x23c04806 - 35e4: 05196802 .word 0x05196802 - 35e8: 401120f8 .word 0x401120f8 - 35ec: 18880602 .word 0x18880602 - 35f0: 41584243 .word 0x41584243 - 35f4: 47703001 .word 0x47703001 - 35f8: 2000f340 .word 0x2000f340 - 35fc: 40006184 .word 0x40006184 - 3600: 681a4b03 .word 0x681a4b03 - 3604: d1024290 .word 0xd1024290 - 3608: 06494802 .word 0x06494802 - 360c: 47706001 .word 0x47706001 - 3610: 2000f340 .word 0x2000f340 - 3614: 40006154 .word 0x40006154 - 3618: 681a4b05 .word 0x681a4b05 - 361c: d1054290 .word 0xd1054290 - 3620: 21800648 .word 0x21800648 - 3624: 4b03044a .word 0x4b03044a - 3628: 601a4302 .word 0x601a4302 - 362c: 46c04770 .word 0x46c04770 - 3630: 2000f340 .word 0x2000f340 - 3634: 40006154 .word 0x40006154 - 3638: 2800b508 .word 0x2800b508 - 363c: 4816d12b .word 0x4816d12b - 3640: 68024b16 .word 0x68024b16 - 3644: 21206019 .word 0x21206019 - 3648: 6002438a .word 0x6002438a - 364c: fec2f7ff .word 0xfec2f7ff - 3650: 42582301 .word 0x42582301 - 3654: fe96f7ff .word 0xfe96f7ff - 3658: 42402001 .word 0x42402001 - 365c: feacf7ff .word 0xfeacf7ff - 3660: 21014b0f .word 0x21014b0f - 3664: 2002681a .word 0x2002681a - 3668: 601a438a .word 0x601a438a - 366c: 68186018 .word 0x68186018 - 3670: 4a0b2102 .word 0x4a0b2102 - 3674: d1fa4208 .word 0xd1fa4208 - 3678: 20094b0a .word 0x20094b0a - 367c: 490a6019 .word 0x490a6019 - 3680: 60084b0a .word 0x60084b0a - 3684: 490a6810 .word 0x490a6810 - 3688: 60134003 .word 0x60134003 - 368c: 4a0a4809 .word 0x4a0a4809 - 3690: 600a4b0a .word 0x600a4b0a - 3694: bd086018 .word 0xbd086018 - 3698: 40043004 .word 0x40043004 - 369c: 2000f340 .word 0x2000f340 - 36a0: 40006140 .word 0x40006140 - 36a4: 400061a8 .word 0x400061a8 - 36a8: 400061a4 .word 0x400061a4 - 36ac: ff00ffff .word 0xff00ffff - 36b0: 40006158 .word 0x40006158 - 36b4: 00000147 .word 0x00000147 - 36b8: 2000f800 .word 0x2000f800 - 36bc: 40006148 .word 0x40006148 - 36c0: 4b06b508 .word 0x4b06b508 - 36c4: 42886819 .word 0x42886819 - 36c8: 2008d102 .word 0x2008d102 - 36cc: fe1ef000 .word 0xfe1ef000 - 36d0: 23014803 .word 0x23014803 - 36d4: 431a6802 .word 0x431a6802 - 36d8: bd086002 .word 0xbd086002 - 36dc: 2000f340 .word 0x2000f340 - 36e0: 40006140 .word 0x40006140 - 36e4: 1c04b5f8 .word 0x1c04b5f8 - 36e8: fed0f7ff .word 0xfed0f7ff - 36ec: 68186963 .word 0x68186963 - 36f0: 1c2079c7 .word 0x1c2079c7 - 36f4: fa41f000 .word 0xfa41f000 - 36f8: d0061e05 .word 0xd0061e05 - 36fc: fa52f000 .word 0xfa52f000 - 3700: 1c281c07 .word 0x1c281c07 - 3704: fa54f000 .word 0xfa54f000 - 3708: 69261c05 .word 0x69261c05 - 370c: f7ff1c30 .word 0xf7ff1c30 - 3710: 426bfe89 .word 0x426bfe89 - 3714: 2280416b .word 0x2280416b - 3718: 03df0439 .word 0x03df0439 - 371c: 43190593 .word 0x43190593 - 3720: 60014339 .word 0x60014339 - 3724: 21002701 .word 0x21002701 - 3728: 604160c1 .word 0x604160c1 - 372c: 60876101 .word 0x60876101 - 3730: 61816141 .word 0x61816141 - 3734: 620161c1 .word 0x620161c1 - 3738: 240f6244 .word 0x240f6244 - 373c: 4034480b .word 0x4034480b - 3740: 00931822 .word 0x00931822 - 3744: 4c0a6819 .word 0x4c0a6819 - 3748: 04ad00af .word 0x04ad00af - 374c: 400c433d .word 0x400c433d - 3750: 601d4325 .word 0x601d4325 - 3754: d5030632 .word 0xd5030632 - 3758: 681822c0 .word 0x681822c0 - 375c: e0010416 .word 0xe0010416 - 3760: 20c0681e .word 0x20c0681e - 3764: 601e4306 .word 0x601e4306 - 3768: 46c0bdf8 .word 0x46c0bdf8 - 376c: 10001870 .word 0x10001870 - 3770: fff3fff3 .word 0xfff3fff3 - 3774: 4b5db5f0 .word 0x4b5db5f0 - 3778: 68194a5d .word 0x68194a5d - 377c: b0856810 .word 0xb0856810 - 3780: 91004001 .word 0x91004001 - 3784: d1006019 .word 0xd1006019 - 3788: 07cbe0ad .word 0x07cbe0ad - 378c: 9800d418 .word 0x9800d418 - 3790: d4000642 .word 0xd4000642 - 3794: 4e57e0a7 .word 0x4e57e0a7 - 3798: 68372401 .word 0x68372401 - 379c: f7ff2501 .word 0xf7ff2501 - 37a0: 4260fe19 .word 0x4260fe19 - 37a4: fdeef7ff .word 0xfdeef7ff - 37a8: f7ff4268 .word 0xf7ff4268 - 37ac: 1c38fe05 .word 0x1c38fe05 - 37b0: f7ff2100 .word 0xf7ff2100 - 37b4: 1c38ff25 .word 0x1c38ff25 - 37b8: f0002100 .word 0xf0002100 - 37bc: e092fa03 .word 0xe092fa03 - 37c0: 26004f4d .word 0x26004f4d - 37c4: 9303683b .word 0x9303683b - 37c8: d15d42b3 .word 0xd15d42b3 - 37cc: 24004e4b .word 0x24004e4b - 37d0: 42a76837 .word 0x42a76837 - 37d4: e7dad170 .word 0xe7dad170 - 37d8: f7ff1c30 .word 0xf7ff1c30 - 37dc: 6a44fe23 .word 0x6a44fe23 - 37e0: d0582c00 .word 0xd0582c00 - 37e4: 28006a20 .word 0x28006a20 - 37e8: 6923d055 .word 0x6923d055 - 37ec: 93011c18 .word 0x93011c18 - 37f0: fe18f7ff .word 0xfe18f7ff - 37f4: 31281c01 .word 0x31281c01 - 37f8: 1c05780a .word 0x1c05780a - 37fc: 35297022 .word 0x35297022 - 3800: 1c01782b .word 0x1c01782b - 3804: 312a7063 .word 0x312a7063 - 3808: 1c05780a .word 0x1c05780a - 380c: 352b70a2 .word 0x352b70a2 - 3810: 1c01782b .word 0x1c01782b - 3814: 312c70e3 .word 0x312c70e3 - 3818: 1c05780a .word 0x1c05780a - 381c: 352d7122 .word 0x352d7122 - 3820: 1c01782b .word 0x1c01782b - 3824: 312e7163 .word 0x312e7163 - 3828: 302f780a .word 0x302f780a - 382c: 780071a2 .word 0x780071a2 - 3830: 71e069a5 .word 0x71e069a5 - 3834: f7ff9801 .word 0xf7ff9801 - 3838: 1c03fdf5 .word 0x1c03fdf5 - 383c: 78193328 .word 0x78193328 - 3840: 70291c02 .word 0x70291c02 - 3844: 78133229 .word 0x78133229 - 3848: 706b1c01 .word 0x706b1c01 - 384c: 780a312a .word 0x780a312a - 3850: 70aa1c03 .word 0x70aa1c03 - 3854: 7819332b .word 0x7819332b - 3858: 70e91c02 .word 0x70e91c02 - 385c: 7813322c .word 0x7813322c - 3860: 712b1c01 .word 0x712b1c01 - 3864: 780a312d .word 0x780a312d - 3868: 716a1c03 .word 0x716a1c03 - 386c: 7819332e .word 0x7819332e - 3870: 71a9302f .word 0x71a9302f - 3874: 71e87800 .word 0x71e87800 - 3878: 6a229d02 .word 0x6a229d02 - 387c: 1c20603d .word 0x1c20603d - 3880: 36014790 .word 0x36014790 - 3884: d0a12e06 .word 0xd0a12e06 - 3888: 9a032101 .word 0x9a032101 - 388c: 910240b1 .word 0x910240b1 - 3890: d0f6420a .word 0xd0f6420a - 3894: 9d02e7a0 .word 0x9d02e7a0 - 3898: e7f2603d .word 0xe7f2603d - 389c: 1c206035 .word 0x1c206035 - 38a0: fdc0f7ff .word 0xfdc0f7ff - 38a4: 28006a40 .word 0x28006a40 - 38a8: 0429d10b .word 0x0429d10b - 38ac: d10d420f .word 0xd10d420f - 38b0: 2c063401 .word 0x2c063401 - 38b4: e76ad100 .word 0xe76ad100 - 38b8: 40a52501 .word 0x40a52501 - 38bc: d0f4422f .word 0xd0f4422f - 38c0: 6a43e7ec .word 0x6a43e7ec - 38c4: d0f02b00 .word 0xd0f02b00 - 38c8: e7ee4798 .word 0xe7ee4798 - 38cc: 60311c20 .word 0x60311c20 - 38d0: f7ff3080 .word 0xf7ff3080 - 38d4: 6a40fda7 .word 0x6a40fda7 - 38d8: d0e92800 .word 0xd0e92800 - 38dc: 2a006a42 .word 0x2a006a42 - 38e0: 4790d0e6 .word 0x4790d0e6 - 38e4: b005e7e4 .word 0xb005e7e4 - 38e8: 46c0bdf0 .word 0x46c0bdf0 - 38ec: 40006144 .word 0x40006144 - 38f0: 40006148 .word 0x40006148 - 38f4: 2000f340 .word 0x2000f340 - 38f8: 400061ac .word 0x400061ac - 38fc: 400061bc .word 0x400061bc - 3900: 210f6903 .word 0x210f6903 - 3904: 400b061a .word 0x400b061a - 3908: 005b0fd0 .word 0x005b0fd0 - 390c: 4903181a .word 0x4903181a - 3910: 58400090 .word 0x58400090 - 3914: d1002800 .word 0xd1002800 - 3918: 4770e7fe .word 0x4770e7fe - 391c: 2000f344 .word 0x2000f344 - 3920: b5706803 .word 0xb5706803 - 3924: 220f691c .word 0x220f691c - 3928: 40140621 .word 0x40140621 - 392c: 00660fcd .word 0x00660fcd - 3930: 4b0e19ac .word 0x4b0e19ac - 3934: 58ca00a1 .word 0x58ca00a1 - 3938: d0002a00 .word 0xd0002a00 - 393c: 50c8e7fe .word 0x50c8e7fe - 3940: 68446881 .word 0x68446881 - 3944: 1e651c0b .word 0x1e651c0b - 3948: d20642aa .word 0xd20642aa - 394c: 1c1e3380 .word 0x1c1e3380 - 3950: 60333e80 .word 0x60333e80 - 3954: 32016670 .word 0x32016670 - 3958: 4d05e7f6 .word 0x4d05e7f6 - 395c: 19622300 .word 0x19622300 - 3960: 198c01d6 .word 0x198c01d6 - 3964: 66606023 .word 0x66606023 - 3968: 46c0bd70 .word 0x46c0bd70 - 396c: 2000f344 .word 0x2000f344 - 3970: 01ffffff .word 0x01ffffff - 3974: f7ffb508 .word 0xf7ffb508 - 3978: b672ffc3 .word 0xb672ffc3 - 397c: 2b0068c3 .word 0x2b0068c3 - 3980: 68c3d007 .word 0x68c3d007 - 3984: 6e5a6819 .word 0x6e5a6819 - 3988: 689160c1 .word 0x689160c1 - 398c: 60936019 .word 0x60936019 - 3990: b662e7f4 .word 0xb662e7f4 - 3994: 0000bd08 .word 0x0000bd08 - 3998: 1c0cb538 .word 0x1c0cb538 - 399c: f7ff1c15 .word 0xf7ff1c15 - 39a0: 6883ffaf .word 0x6883ffaf - 39a4: d0422b00 .word 0xd0422b00 - 39a8: 6883b672 .word 0x6883b672 - 39ac: 68192200 .word 0x68192200 - 39b0: 601a6081 .word 0x601a6081 - 39b4: 2101b662 .word 0x2101b662 - 39b8: 491e6419 .word 0x491e6419 - 39bc: 430a042a .word 0x430a042a - 39c0: 2280645a .word 0x2280645a - 39c4: 18620151 .word 0x18620151 - 39c8: 030a0b11 .word 0x030a0b11 - 39cc: 649c2180 .word 0x649c2180 - 39d0: 018a64da .word 0x018a64da - 39d4: 0b0a18a1 .word 0x0b0a18a1 - 39d8: 22c00311 .word 0x22c00311 - 39dc: 01916519 .word 0x01916519 - 39e0: 0b111862 .word 0x0b111862 - 39e4: 2180030a .word 0x2180030a - 39e8: 01ca655a .word 0x01ca655a - 39ec: 0b2118a4 .word 0x0b2118a4 - 39f0: 659a030a .word 0x659a030a - 39f4: b672661d .word 0xb672661d - 39f8: 68ec6e5d .word 0x68ec6e5d - 39fc: d00d2c00 .word 0xd00d2c00 - 3a00: 680a68e9 .word 0x680a68e9 - 3a04: d0012a00 .word 0xd0012a00 - 3a08: e7fa1c11 .word 0xe7fa1c11 - 3a0c: 600b1c1a .word 0x600b1c1a - 3a10: 31406800 .word 0x31406800 - 3a14: f7ff3240 .word 0xf7ff3240 - 3a18: e005fd89 .word 0xe005fd89 - 3a1c: 60eb1c19 .word 0x60eb1c19 - 3a20: 31406800 .word 0x31406800 - 3a24: fdb6f7ff .word 0xfdb6f7ff - 3a28: 2000b662 .word 0x2000b662 - 3a2c: 2001e001 .word 0x2001e001 - 3a30: bd384240 .word 0xbd384240 - 3a34: 00008080 .word 0x00008080 - 3a38: 1c06b570 .word 0x1c06b570 - 3a3c: 1c141c0d .word 0x1c141c0d - 3a40: 1c291c30 .word 0x1c291c30 - 3a44: f7ff1c22 .word 0xf7ff1c22 - 3a48: 3001ffa7 .word 0x3001ffa7 - 3a4c: 2000d0f8 .word 0x2000d0f8 - 3a50: b508bd70 .word 0xb508bd70 - 3a54: 1c0a2100 .word 0x1c0a2100 - 3a58: ffeef7ff .word 0xffeef7ff - 3a5c: b510bd08 .word 0xb510bd08 - 3a60: ff4ef7ff .word 0xff4ef7ff - 3a64: d1002800 .word 0xd1002800 - 3a68: 68c3e7fe .word 0x68c3e7fe - 3a6c: d0102b00 .word 0xd0102b00 - 3a70: 21686c5a .word 0x21686c5a - 3a74: d000420a .word 0xd000420a - 3a78: 0611e7fe .word 0x0611e7fe - 3a7c: 681ad409 .word 0x681ad409 - 3a80: 60c26e59 .word 0x60c26e59 - 3a84: 688cb672 .word 0x688cb672 - 3a88: 608b601c .word 0x608b601c - 3a8c: 1c13b662 .word 0x1c13b662 - 3a90: bd10e7ec .word 0xbd10e7ec - 3a94: 7802b510 .word 0x7802b510 - 3a98: 1c042360 .word 0x1c042360 - 3a9c: 2b404013 .word 0x2b404013 - 3aa0: d806d00f .word 0xd806d00f - 3aa4: d0092b00 .word 0xd0092b00 - 3aa8: d1122b20 .word 0xd1122b20 - 3aac: 6842480b .word 0x6842480b - 3ab0: 2b60e009 .word 0x2b60e009 - 3ab4: 4b09d10d .word 0x4b09d10d - 3ab8: e00468da .word 0xe00468da - 3abc: 68124a07 .word 0x68124a07 - 3ac0: 4806e001 .word 0x4806e001 - 3ac4: 2a006882 .word 0x2a006882 - 3ac8: 1c20d003 .word 0x1c20d003 - 3acc: 28004790 .word 0x28004790 - 3ad0: 1c20d002 .word 0x1c20d002 - 3ad4: fd6ef7ff .word 0xfd6ef7ff - 3ad8: 46c0bd10 .word 0x46c0bd10 - 3adc: 2000e97c .word 0x2000e97c - 3ae0: 2100b508 .word 0x2100b508 - 3ae4: ffd6f7ff .word 0xffd6f7ff - 3ae8: b510bd08 .word 0xb510bd08 - 3aec: 1c047803 .word 0x1c047803 - 3af0: 210209da .word 0x210209da - 3af4: d1002a00 .word 0xd1002a00 - 3af8: f7ff2101 .word 0xf7ff2101 - 3afc: 1c20ffcb .word 0x1c20ffcb - 3b00: ffadf7ff .word 0xffadf7ff - 3b04: b510bd10 .word 0xb510bd10 - 3b08: 1c047803 .word 0x1c047803 - 3b0c: 210109da .word 0x210109da - 3b10: d1002a00 .word 0xd1002a00 - 3b14: f7ff2102 .word 0xf7ff2102 - 3b18: 1c20ffbd .word 0x1c20ffbd - 3b1c: ff9ff7ff .word 0xff9ff7ff - 3b20: b510bd10 .word 0xb510bd10 - 3b24: 88c31c04 .word 0x88c31c04 - 3b28: 780a7848 .word 0x780a7848 - 3b2c: d0012802 .word 0xd0012802 - 3b30: d1032807 .word 0xd1032807 - 3b34: 788878ca .word 0x788878ca - 3b38: 43020212 .word 0x43020212 - 3b3c: 429a69a0 .word 0x429a69a0 - 3b40: 1c1ad900 .word 0x1c1ad900 - 3b44: ff78f7ff .word 0xff78f7ff - 3b48: f7ff69e0 .word 0xf7ff69e0 - 3b4c: 2000ff82 .word 0x2000ff82 - 3b50: 6943bd10 .word 0x6943bd10 - 3b54: 68ddb570 .word 0x68ddb570 - 3b58: cd082400 .word 0xcd082400 - 3b5c: d00a2b00 .word 0xd00a2b00 - 3b60: 428e7a1e .word 0x428e7a1e - 3b64: 4294d1f9 .word 0x4294d1f9 - 3b68: 6819d103 .word 0x6819d103 - 3b6c: ffd9f7ff .word 0xffd9f7ff - 3b70: 3401e002 .word 0x3401e002 - 3b74: 2001e7f1 .word 0x2001e7f1 - 3b78: 6943bd70 .word 0x6943bd70 - 3b7c: 691bb510 .word 0x691bb510 - 3b80: 2b001c02 .word 0x2b001c02 - 3b84: 6818d00c .word 0x6818d00c - 3b88: 2b007803 .word 0x2b007803 - 3b8c: 7841d008 .word 0x7841d008 - 3b90: d1032905 .word 0xd1032905 - 3b94: 69147881 .word 0x69147881 - 3b98: d00242a1 .word 0xd00242a1 - 3b9c: e7f318c0 .word 0xe7f318c0 - 3ba0: bd101c18 .word 0xbd101c18 - 3ba4: 79037942 .word 0x79037942 - 3ba8: 1c080211 .word 0x1c080211 - 3bac: 47704318 .word 0x47704318 - 3bb0: 230378c0 .word 0x230378c0 - 3bb4: 47704018 .word 0x47704018 - 3bb8: 60184b01 .word 0x60184b01 - 3bbc: 46c04770 .word 0x46c04770 - 3bc0: 2000f374 .word 0x2000f374 - 3bc4: 1c04b570 .word 0x1c04b570 - 3bc8: d00e1e0d .word 0xd00e1e0d - 3bcc: 2e0068c6 .word 0x2e0068c6 - 3bd0: f7ffd018 .word 0xf7ffd018 - 3bd4: ce08fcff .word 0xce08fcff - 3bd8: d0132b00 .word 0xd0132b00 - 3bdc: 42827a1a .word 0x42827a1a - 3be0: 6859d1f9 .word 0x6859d1f9 - 3be4: d1f642a9 .word 0xd1f642a9 - 3be8: 1c0be000 .word 0x1c0be000 - 3bec: 42836920 .word 0x42836920 - 3bf0: 6123d000 .word 0x6123d000 - 3bf4: 681d4b04 .word 0x681d4b04 - 3bf8: d0012d00 .word 0xd0012d00 - 3bfc: 47a81c20 .word 0x47a81c20 - 3c00: e0002001 .word 0xe0002001 - 3c04: bd702000 .word 0xbd702000 - 3c08: 2000f374 .word 0x2000f374 - 3c0c: 1c04b5f8 .word 0x1c04b5f8 - 3c10: 1c0e7840 .word 0x1c0e7840 - 3c14: d900280b .word 0xd900280b - 3c18: f000e0ea .word 0xf000e0ea - 3c1c: 2a06fb93 .word 0x2a06fb93 - 3c20: afe93ee9 .word 0xafe93ee9 - 3c24: bacce970 .word 0xbacce970 - 3c28: 25006353 .word 0x25006353 - 3c2c: d00042a9 .word 0xd00042a9 - 3c30: 7822e0df .word 0x7822e0df - 3c34: 400a211f .word 0x400a211f - 3c38: d0162a01 .word 0xd0162a01 - 3c3c: d01142aa .word 0xd01142aa - 3c40: d0002a02 .word 0xd0002a02 - 3c44: 88a7e0d5 .word 0x88a7e0d5 - 3c48: 230f486b .word 0x230f486b - 3c4c: 181e403b .word 0x181e403b - 3c50: 680f00b1 .word 0x680f00b1 - 3c54: 496a4b69 .word 0x496a4b69 - 3c58: 1e58403b .word 0x1e58403b - 3c5c: 800b4183 .word 0x800b4183 - 3c60: e03b69a0 .word 0xe03b69a0 - 3c64: 496769a0 .word 0x496769a0 - 3c68: 69a0e001 .word 0x69a0e001 - 3c6c: 22024966 .word 0x22024966 - 3c70: 2500e034 .word 0x2500e034 - 3c74: d00042a9 .word 0xd00042a9 - 3c78: 7822e0bb .word 0x7822e0bb - 3c7c: 4011211f .word 0x4011211f - 3c80: d0002902 .word 0xd0002902 - 3c84: 88a7e0b5 .word 0x88a7e0b5 - 3c88: 230f485b .word 0x230f485b - 3c8c: 181e403b .word 0x181e403b - 3c90: 683a00b7 .word 0x683a00b7 - 3c94: 4010485d .word 0x4010485d - 3c98: 2500e012 .word 0x2500e012 - 3c9c: d00042a9 .word 0xd00042a9 - 3ca0: 7827e0a7 .word 0x7827e0a7 - 3ca4: 4038201f .word 0x4038201f - 3ca8: d0002802 .word 0xd0002802 - 3cac: 88a6e0a1 .word 0x88a6e0a1 - 3cb0: 4951220f .word 0x4951220f - 3cb4: 18534032 .word 0x18534032 - 3cb8: 6838009f .word 0x6838009f - 3cbc: 43304e4f .word 0x43304e4f - 3cc0: e0186038 .word 0xe0186038 - 3cc4: 42a92500 .word 0x42a92500 - 3cc8: e092d000 .word 0xe092d000 - 3ccc: 201f7822 .word 0x201f7822 - 3cd0: 2a014002 .word 0x2a014002 - 3cd4: e08cd000 .word 0xe08cd000 - 3cd8: 494d69a0 .word 0x494d69a0 - 3cdc: feacf7ff .word 0xfeacf7ff - 3ce0: e00969e0 .word 0xe00969e0 - 3ce4: 42a92500 .word 0x42a92500 - 3ce8: e082d000 .word 0xe082d000 - 3cec: 231f7822 .word 0x231f7822 - 3cf0: 2b014013 .word 0x2b014013 - 3cf4: 69a0d17d .word 0x69a0d17d - 3cf8: feabf7ff .word 0xfeabf7ff - 3cfc: 2900e079 .word 0x2900e079 - 3d00: 78e0d15b .word 0x78e0d15b - 3d04: 28063801 .word 0x28063801 - 3d08: f000d872 .word 0xf000d872 - 3d0c: 0704fb1b .word 0x0704fb1b - 3d10: 10717121 .word 0x10717121 - 3d14: 69610013 .word 0x69610013 - 3d18: e0236809 .word 0xe0236809 - 3d1c: f7ff6960 .word 0xf7ff6960 - 3d20: 78a2fc59 .word 0x78a2fc59 - 3d24: 1c201c01 .word 0x1c201c01 - 3d28: d10a2902 .word 0xd10a2902 - 3d2c: 6963e00d .word 0x6963e00d - 3d30: e0176899 .word 0xe0176899 - 3d34: f7ff6960 .word 0xf7ff6960 - 3d38: 78a2fc4d .word 0x78a2fc4d - 3d3c: d1022802 .word 0xd1022802 - 3d40: 21011c20 .word 0x21011c20 - 3d44: 1c20e001 .word 0x1c20e001 - 3d48: f7ff2102 .word 0xf7ff2102 - 3d4c: e00cff02 .word 0xe00cff02 - 3d50: 28ee78a0 .word 0x28ee78a0 - 3d54: 1c20d102 .word 0x1c20d102 - 3d58: e004492e .word 0xe004492e - 3d5c: 26006967 .word 0x26006967 - 3d60: e007687d .word 0xe007687d - 3d64: f7ff1c20 .word 0xf7ff1c20 - 3d68: 1c05fedc .word 0x1c05fedc - 3d6c: 4286e041 .word 0x4286e041 - 3d70: 3601d0f8 .word 0x3601d0f8 - 3d74: 2900cd02 .word 0x2900cd02 - 3d78: e039d1f9 .word 0xe039d1f9 - 3d7c: d11c2900 .word 0xd11c2900 - 3d80: 696078a1 .word 0x696078a1 - 3d84: fc48f7ff .word 0xfc48f7ff - 3d88: f7ff69a0 .word 0xf7ff69a0 - 3d8c: 1c35fe62 .word 0x1c35fe62 - 3d90: 2900e02f .word 0x2900e02f - 3d94: 78a7d111 .word 0x78a7d111 - 3d98: 1c396960 .word 0x1c396960 - 3d9c: ff12f7ff .word 0xff12f7ff - 3da0: 28002501 .word 0x28002501 - 3da4: 2f00d025 .word 0x2f00d025 - 3da8: 6960d103 .word 0x6960d103 - 3dac: f7ff1c31 .word 0xf7ff1c31 - 3db0: 69a0fc27 .word 0x69a0fc27 - 3db4: 2900e018 .word 0x2900e018 - 3db8: 2202d004 .word 0x2202d004 - 3dbc: 419b42b2 .word 0x419b42b2 - 3dc0: e016425d .word 0xe016425d - 3dc4: 250188e1 .word 0x250188e1 - 3dc8: d11242a9 .word 0xd11242a9 - 3dcc: 72266965 .word 0x72266965 - 3dd0: 2e00692e .word 0x2e00692e - 3dd4: 6872d001 .word 0x6872d001 - 3dd8: 1c217222 .word 0x1c217222 - 3ddc: 69a03108 .word 0x69a03108 - 3de0: f7ff2201 .word 0xf7ff2201 - 3de4: 69e0fe29 .word 0x69e0fe29 - 3de8: fe33f7ff .word 0xfe33f7ff - 3dec: e0002500 .word 0xe0002500 - 3df0: 1c282501 .word 0x1c282501 - 3df4: 46c0bdf8 .word 0x46c0bdf8 - 3df8: 10001870 .word 0x10001870 - 3dfc: 00010001 .word 0x00010001 - 3e00: 2000fb00 .word 0x2000fb00 - 3e04: 2000f37a .word 0x2000f37a - 3e08: 2000f378 .word 0x2000f378 - 3e0c: fffefffe .word 0xfffefffe - 3e10: 2000f37c .word 0x2000f37c - 3e14: 2000ed41 .word 0x2000ed41 - 3e18: 47706001 .word 0x47706001 - 3e1c: 4b074a06 .word 0x4b074a06 - 3e20: 601a4907 .word 0x601a4907 - 3e24: 60084a07 .word 0x60084a07 - 3e28: 60104b07 .word 0x60104b07 - 3e2c: 206c4a07 .word 0x206c4a07 - 3e30: 60182140 .word 0x60182140 - 3e34: 47706011 .word 0x47706011 - 3e38: 00000808 .word 0x00000808 - 3e3c: 40086c84 .word 0x40086c84 - 3e40: 400a1010 .word 0x400a1010 - 3e44: 400a1014 .word 0x400a1014 - 3e48: 400a1018 .word 0x400a1018 - 3e4c: 400a1000 .word 0x400a1000 - 3e50: 49084a07 .word 0x49084a07 - 3e54: 601323c1 .word 0x601323c1 - 3e58: 4b07600b .word 0x4b07600b - 3e5c: 60184a07 .word 0x60184a07 - 3e60: 4b084907 .word 0x4b084907 - 3e64: 206c6010 .word 0x206c6010 - 3e68: 60082240 .word 0x60082240 - 3e6c: 4770601a .word 0x4770601a - 3e70: 4008610c .word 0x4008610c - 3e74: 40086110 .word 0x40086110 - 3e78: 400e0010 .word 0x400e0010 - 3e7c: 400e0014 .word 0x400e0014 - 3e80: 400e0018 .word 0x400e0018 - 3e84: 400e0000 .word 0x400e0000 - 3e88: 490d4a0c .word 0x490d4a0c - 3e8c: 20202308 .word 0x20202308 - 3e90: 60086013 .word 0x60086013 - 3e94: 4213680a .word 0x4213680a - 3e98: 4b0ad10b .word 0x4b0ad10b - 3e9c: e0052208 .word 0xe0052208 - 3ea0: 42026808 .word 0x42026808 - 3ea4: 3b02d105 .word 0x3b02d105 - 3ea8: d0022b00 .word 0xd0022b00 - 3eac: 42026808 .word 0x42026808 - 3eb0: 4b02d0f6 .word 0x4b02d0f6 - 3eb4: 60192120 .word 0x60192120 - 3eb8: 46c04770 .word 0x46c04770 - 3ebc: 400a1018 .word 0x400a1018 - 3ec0: 400a1000 .word 0x400a1000 - 3ec4: 00002710 .word 0x00002710 - 3ec8: 490d4a0c .word 0x490d4a0c - 3ecc: 20202308 .word 0x20202308 - 3ed0: 60086013 .word 0x60086013 - 3ed4: 4213680a .word 0x4213680a - 3ed8: 4b0ad10b .word 0x4b0ad10b - 3edc: e0052208 .word 0xe0052208 - 3ee0: 42026808 .word 0x42026808 - 3ee4: 3b02d105 .word 0x3b02d105 - 3ee8: d0022b00 .word 0xd0022b00 - 3eec: 42026808 .word 0x42026808 - 3ef0: 4b02d0f6 .word 0x4b02d0f6 - 3ef4: 60192120 .word 0x60192120 - 3ef8: 46c04770 .word 0x46c04770 - 3efc: 400e0018 .word 0x400e0018 - 3f00: 400e0000 .word 0x400e0000 - 3f04: 00002710 .word 0x00002710 - 3f08: 21204b0e .word 0x21204b0e - 3f0c: 4211681a .word 0x4211681a - 3f10: 4b0dd001 .word 0x4b0dd001 - 3f14: 4a0d6019 .word 0x4a0d6019 - 3f18: 6010490b .word 0x6010490b - 3f1c: 60082008 .word 0x60082008 - 3f20: 680b4908 .word 0x680b4908 - 3f24: d10b4218 .word 0xd10b4218 - 3f28: 22084b09 .word 0x22084b09 - 3f2c: 6808e005 .word 0x6808e005 - 3f30: d1054202 .word 0xd1054202 - 3f34: 2b003b02 .word 0x2b003b02 - 3f38: 6808d002 .word 0x6808d002 - 3f3c: d0f64202 .word 0xd0f64202 - 3f40: 46c04770 .word 0x46c04770 - 3f44: 400a1000 .word 0x400a1000 - 3f48: 400a1018 .word 0x400a1018 - 3f4c: 400a1008 .word 0x400a1008 - 3f50: 00002710 .word 0x00002710 - 3f54: 21204b0e .word 0x21204b0e - 3f58: 4211681a .word 0x4211681a - 3f5c: 4b0dd001 .word 0x4b0dd001 - 3f60: 4a0d6019 .word 0x4a0d6019 - 3f64: 6010490b .word 0x6010490b - 3f68: 60082008 .word 0x60082008 - 3f6c: 680b4908 .word 0x680b4908 - 3f70: d10b4218 .word 0xd10b4218 - 3f74: 22084b09 .word 0x22084b09 - 3f78: 6808e005 .word 0x6808e005 - 3f7c: d1054202 .word 0xd1054202 - 3f80: 2b003b02 .word 0x2b003b02 - 3f84: 6808d002 .word 0x6808d002 - 3f88: d0f64202 .word 0xd0f64202 - 3f8c: 46c04770 .word 0x46c04770 - 3f90: 400e0000 .word 0x400e0000 - 3f94: 400e0018 .word 0x400e0018 - 3f98: 400e0008 .word 0x400e0008 - 3f9c: 00002710 .word 0x00002710 - 3fa0: 20204b0e .word 0x20204b0e - 3fa4: 4210681a .word 0x4210681a - 3fa8: 490dd001 .word 0x490dd001 - 3fac: 4a0c6008 .word 0x4a0c6008 - 3fb0: 490a2308 .word 0x490a2308 - 3fb4: 68086013 .word 0x68086013 - 3fb8: d10b4203 .word 0xd10b4203 - 3fbc: 22084b09 .word 0x22084b09 - 3fc0: 6808e005 .word 0x6808e005 - 3fc4: d1054202 .word 0xd1054202 - 3fc8: 2b003b02 .word 0x2b003b02 - 3fcc: 6808d002 .word 0x6808d002 - 3fd0: d0f64202 .word 0xd0f64202 - 3fd4: 680b4904 .word 0x680b4904 - 3fd8: 4770b2d8 .word 0x4770b2d8 - 3fdc: 400a1000 .word 0x400a1000 - 3fe0: 400a1018 .word 0x400a1018 - 3fe4: 00002710 .word 0x00002710 - 3fe8: 400a1008 .word 0x400a1008 - 3fec: 21204b12 .word 0x21204b12 - 3ff0: 4211681a .word 0x4211681a - 3ff4: 4b11d001 .word 0x4b11d001 - 3ff8: 22046019 .word 0x22046019 - 3ffc: d0182800 .word 0xd0182800 - 4000: 600a490d .word 0x600a490d - 4004: 23084a0d .word 0x23084a0d - 4008: 6013490b .word 0x6013490b - 400c: 42036808 .word 0x42036808 - 4010: 4b0bd10b .word 0x4b0bd10b - 4014: e0052208 .word 0xe0052208 - 4018: 42026808 .word 0x42026808 - 401c: 3b02d105 .word 0x3b02d105 - 4020: d0022b00 .word 0xd0022b00 - 4024: 42026808 .word 0x42026808 - 4028: 4906d0f6 .word 0x4906d0f6 - 402c: b2d8680b .word 0xb2d8680b - 4030: 48024770 .word 0x48024770 - 4034: e7e56002 .word 0xe7e56002 - 4038: 400e0000 .word 0x400e0000 - 403c: 400e0018 .word 0x400e0018 - 4040: 00002710 .word 0x00002710 - 4044: 400e0008 .word 0x400e0008 - 4048: 20204b06 .word 0x20204b06 - 404c: 4210681a .word 0x4210681a - 4050: 4905d001 .word 0x4905d001 - 4054: 4b036008 .word 0x4b036008 - 4058: 22104903 .word 0x22104903 - 405c: 601a2008 .word 0x601a2008 - 4060: 47706008 .word 0x47706008 - 4064: 400a1000 .word 0x400a1000 - 4068: 400a1018 .word 0x400a1018 - 406c: 20204b06 .word 0x20204b06 - 4070: 4210681a .word 0x4210681a - 4074: 4905d001 .word 0x4905d001 - 4078: 4b036008 .word 0x4b036008 - 407c: 22104903 .word 0x22104903 - 4080: 601a2008 .word 0x601a2008 - 4084: 47706008 .word 0x47706008 - 4088: 400e0000 .word 0x400e0000 - 408c: 400e0018 .word 0x400e0018 - 4090: 465fb5f0 .word 0x465fb5f0 - 4094: 4656464d .word 0x4656464d - 4098: b4f04644 .word 0xb4f04644 - 409c: 469cb083 .word 0x469cb083 - 40a0: 781cab0c .word 0x781cab0c - 40a4: 782ead0d .word 0x782ead0d - 40a8: 46a3af0e .word 0x46a3af0e - 40ac: 46b1ac10 .word 0x46b1ac10 - 40b0: 7827783e .word 0x7827783e - 40b4: 781dab0f .word 0x781dab0f - 40b8: 4b1a9701 .word 0x4b1a9701 - 40bc: d0242800 .word 0xd0242800 - 40c0: 4f1a4819 .word 0x4f1a4819 - 40c4: 683c6003 .word 0x683c6003 - 40c8: 43232301 .word 0x43232301 - 40cc: 603b4c18 .word 0x603b4c18 - 40d0: 4f194818 .word 0x4f194818 - 40d4: 230046a0 .word 0x230046a0 - 40d8: 46446003 .word 0x46446003 - 40dc: 6023464b .word 0x6023464b - 40e0: 465b4311 .word 0x465b4311 - 40e4: 021c4662 .word 0x021c4662 - 40e8: 43214311 .word 0x43214311 - 40ec: 21026039 .word 0x21026039 - 40f0: 9e014331 .word 0x9e014331 - 40f4: 43314329 .word 0x43314329 - 40f8: 6005b2cd .word 0x6005b2cd - 40fc: bc3cb003 .word 0xbc3cb003 - 4100: 46994690 .word 0x46994690 - 4104: 46ab46a2 .word 0x46ab46a2 - 4108: 4f0cbdf0 .word 0x4f0cbdf0 - 410c: 603b480c .word 0x603b480c - 4110: 27016803 .word 0x27016803 - 4114: 6007431f .word 0x6007431f - 4118: 4f0b480a .word 0x4f0b480a - 411c: 480b4680 .word 0x480b4680 - 4120: 46c0e7d9 .word 0x46c0e7d9 - 4124: 09000800 .word 0x09000800 - 4128: 40050098 .word 0x40050098 - 412c: 40051628 .word 0x40051628 - 4130: 400c5010 .word 0x400c5010 - 4134: 400c5004 .word 0x400c5004 - 4138: 400c5000 .word 0x400c5000 - 413c: 40050094 .word 0x40050094 - 4140: 40051518 .word 0x40051518 - 4144: 40083010 .word 0x40083010 - 4148: 40083000 .word 0x40083000 - 414c: 40083004 .word 0x40083004 - 4150: 2800b530 .word 0x2800b530 - 4154: 4d0dd116 .word 0x4d0dd116 - 4158: 24024b0d .word 0x24024b0d - 415c: 4214681a .word 0x4214681a - 4160: 6029d0fc .word 0x6029d0fc - 4164: d10b2800 .word 0xd10b2800 - 4168: 21104809 .word 0x21104809 - 416c: 42216804 .word 0x42216804 - 4170: 2004d1fc .word 0x2004d1fc - 4174: 4210681a .word 0x4210681a - 4178: 682dd0fc .word 0x682dd0fc - 417c: bd30b2a8 .word 0xbd30b2a8 - 4180: e7f24804 .word 0xe7f24804 - 4184: 4b034d04 .word 0x4b034d04 - 4188: 46c0e7e7 .word 0x46c0e7e7 - 418c: 40083008 .word 0x40083008 - 4190: 4008300c .word 0x4008300c - 4194: 400c500c .word 0x400c500c - 4198: 400c5008 .word 0x400c5008 - 419c: 46c0e7fe .word 0x46c0e7fe - 41a0: 46c04770 .word 0x46c04770 - 41a4: 4b504a4f .word 0x4b504a4f - 41a8: d21f429a .word 0xd21f429a - 41ac: 1d141cdf .word 0x1d141cdf - 41b0: 08811b38 .word 0x08811b38 - 41b4: 008f3101 .word 0x008f3101 - 41b8: 1f384b4c .word 0x1f384b4c - 41bc: 18fe0741 .word 0x18fe0741 - 41c0: cb020fc8 .word 0xcb020fc8 - 41c4: 42b36011 .word 0x42b36011 - 41c8: 2800d00f .word 0x2800d00f - 41cc: cb01d003 .word 0xcb01d003 - 41d0: 42b3c401 .word 0x42b3c401 - 41d4: 1c18d009 .word 0x1c18d009 - 41d8: 1c21c820 .word 0x1c21c820 - 41dc: 685bc120 .word 0x685bc120 - 41e0: 1d036063 .word 0x1d036063 - 41e4: 42b31d0c .word 0x42b31d0c - 41e8: 19d2d1f5 .word 0x19d2d1f5 - 41ec: 42824840 .word 0x42824840 - 41f0: 1cc4d216 .word 0x1cc4d216 - 41f4: 1ae51d13 .word 0x1ae51d13 - 41f8: 310108a9 .word 0x310108a9 - 41fc: 18100088 .word 0x18100088 - 4200: 21001ac4 .word 0x21001ac4 - 4204: d5080765 .word 0xd5080765 - 4208: 1c1a6011 .word 0x1c1a6011 - 420c: 60113304 .word 0x60113304 - 4210: d0054283 .word 0xd0054283 - 4214: 60191d1a .word 0x60191d1a - 4218: 60111d13 .word 0x60111d13 - 421c: d1f94283 .word 0xd1f94283 - 4220: 49354834 .word 0x49354834 - 4224: d21b4288 .word 0xd21b4288 - 4228: 1d063103 .word 0x1d063103 - 422c: 08bd1b8f .word 0x08bd1b8f - 4230: 1c6f2401 .word 0x1c6f2401 - 4234: 6802402c .word 0x6802402c - 4238: 47902501 .word 0x47902501 - 423c: d00f42bd .word 0xd00f42bd - 4240: d0042c00 .word 0xd0042c00 - 4244: 2502ce08 .word 0x2502ce08 - 4248: 42bd4798 .word 0x42bd4798 - 424c: 1c34d008 .word 0x1c34d008 - 4250: 4780cc01 .word 0x4780cc01 - 4254: 68763502 .word 0x68763502 - 4258: 1d2647b0 .word 0x1d2647b0 - 425c: d1f642bd .word 0xd1f642bd - 4260: 49274b26 .word 0x49274b26 - 4264: d21b428b .word 0xd21b428b - 4268: 1d1e3103 .word 0x1d1e3103 - 426c: 08bd1b8f .word 0x08bd1b8f - 4270: 1c6f2401 .word 0x1c6f2401 - 4274: 681a402c .word 0x681a402c - 4278: 47902501 .word 0x47902501 - 427c: d00f42bd .word 0xd00f42bd - 4280: d0042c00 .word 0xd0042c00 - 4284: 2502ce01 .word 0x2502ce01 - 4288: 42bd4780 .word 0x42bd4780 - 428c: 1c34d008 .word 0x1c34d008 - 4290: 4798cc08 .word 0x4798cc08 - 4294: 68763502 .word 0x68763502 - 4298: 1d2647b0 .word 0x1d2647b0 - 429c: d1f642bd .word 0xd1f642bd - 42a0: fdc8f7fd .word 0xfdc8f7fd - 42a4: 49184817 .word 0x49184817 - 42a8: d21b4288 .word 0xd21b4288 - 42ac: 1d063103 .word 0x1d063103 - 42b0: 08bd1b8f .word 0x08bd1b8f - 42b4: 1c6f2401 .word 0x1c6f2401 - 42b8: 6802402c .word 0x6802402c - 42bc: 47902501 .word 0x47902501 - 42c0: d00f42bd .word 0xd00f42bd - 42c4: d0042c00 .word 0xd0042c00 - 42c8: 2502ce08 .word 0x2502ce08 - 42cc: 42bd4798 .word 0x42bd4798 - 42d0: 1c34d008 .word 0x1c34d008 - 42d4: 4780cc01 .word 0x4780cc01 - 42d8: 68763502 .word 0x68763502 - 42dc: 1d2647b0 .word 0x1d2647b0 - 42e0: d1f642bd .word 0xd1f642bd - 42e4: 2000ef30 .word 0x2000ef30 - 42e8: 2000ef30 .word 0x2000ef30 - 42ec: 2000ec6c .word 0x2000ec6c - 42f0: 2000fb04 .word 0x2000fb04 - 42f4: 2000ec6c .word 0x2000ec6c - 42f8: 2000ec6c .word 0x2000ec6c - 42fc: 2000ec6c .word 0x2000ec6c - 4300: 2000ec6c .word 0x2000ec6c - 4304: 2000ec6c .word 0x2000ec6c - 4308: 2000ec6c .word 0x2000ec6c - 430c: 4a040943 .word 0x4a040943 - 4310: 188b0099 .word 0x188b0099 - 4314: 4008211f .word 0x4008211f - 4318: 40822201 .word 0x40822201 - 431c: 4770601a .word 0x4770601a - 4320: e000e100 .word 0xe000e100 - 4324: d803281f .word 0xd803281f - 4328: 18c04b04 .word 0x18c04b04 - 432c: 47707001 .word 0x47707001 - 4330: 4b03220f .word 0x4b03220f - 4334: 18c04010 .word 0x18c04010 - 4338: e7f87001 .word 0xe7f87001 - 433c: e000e400 .word 0xe000e400 - 4340: e000ed14 .word 0xe000ed14 - 4344: 4671b402 .word 0x4671b402 - 4348: 00490849 .word 0x00490849 - 434c: 00495c09 .word 0x00495c09 - 4350: bc02448e .word 0xbc02448e - 4354: 46c04770 .word 0x46c04770 - 4358: d0342900 .word 0xd0342900 - 435c: 22002301 .word 0x22002301 - 4360: 4288b410 .word 0x4288b410 - 4364: 2401d32c .word 0x2401d32c - 4368: 42a10724 .word 0x42a10724 - 436c: 4281d204 .word 0x4281d204 - 4370: 0109d202 .word 0x0109d202 - 4374: e7f8011b .word 0xe7f8011b - 4378: 42a100e4 .word 0x42a100e4 - 437c: 4281d204 .word 0x4281d204 - 4380: 0049d202 .word 0x0049d202 - 4384: e7f8005b .word 0xe7f8005b - 4388: d3014288 .word 0xd3014288 - 438c: 431a1a40 .word 0x431a1a40 - 4390: 42a0084c .word 0x42a0084c - 4394: 1b00d302 .word 0x1b00d302 - 4398: 4322085c .word 0x4322085c - 439c: 42a0088c .word 0x42a0088c - 43a0: 1b00d302 .word 0x1b00d302 - 43a4: 4322089c .word 0x4322089c - 43a8: 42a008cc .word 0x42a008cc - 43ac: 1b00d302 .word 0x1b00d302 - 43b0: 432208dc .word 0x432208dc - 43b4: d0032800 .word 0xd0032800 - 43b8: d001091b .word 0xd001091b - 43bc: e7e30909 .word 0xe7e30909 - 43c0: bc101c10 .word 0xbc101c10 - 43c4: 28004770 .word 0x28004770 - 43c8: 2000d001 .word 0x2000d001 - 43cc: b40743c0 .word 0xb40743c0 - 43d0: a1024802 .word 0xa1024802 - 43d4: 90021840 .word 0x90021840 - 43d8: 46c0bd03 .word 0x46c0bd03 - 43dc: 00000019 .word 0x00000019 - 43e0: d0f02900 .word 0xd0f02900 - 43e4: f7ffb503 .word 0xf7ffb503 - 43e8: bc0effb9 .word 0xbc0effb9 - 43ec: 1a894342 .word 0x1a894342 - 43f0: 46c04718 .word 0x46c04718 - 43f4: 46c04770 .word 0x46c04770 - 43f8: 0403469c .word 0x0403469c - 43fc: 0c1bb5f0 .word 0x0c1bb5f0 - 4400: 0c3f0417 .word 0x0c3f0417 - 4404: 1c1e0c15 .word 0x1c1e0c15 - 4408: 0c001c04 .word 0x0c001c04 - 440c: 436b437e .word 0x436b437e - 4410: 43454347 .word 0x43454347 - 4414: 0c3018fb .word 0x0c3018fb - 4418: 42871818 .word 0x42871818 - 441c: 2780d902 .word 0x2780d902 - 4420: 18ed027b .word 0x18ed027b - 4424: 19ed0c07 .word 0x19ed0c07 - 4428: 437c4667 .word 0x437c4667 - 442c: 0436434a .word 0x0436434a - 4430: 18a10c33 .word 0x18a10c33 - 4434: 19490400 .word 0x19490400 - 4438: bdf018c0 .word 0xbdf018c0 - 443c: 464fb5f0 .word 0x464fb5f0 - 4440: b4c04646 .word 0xb4c04646 - 4444: d9722a0f .word 0xd9722a0f - 4448: 43031c0b .word 0x43031c0b - 444c: d000079c .word 0xd000079c - 4450: 1c17e090 .word 0x1c17e090 - 4454: 093c3f10 .word 0x093c3f10 - 4458: 01273401 .word 0x01273401 - 445c: 1c3b680c .word 0x1c3b680c - 4460: 3b106004 .word 0x3b106004 - 4464: 684b06de .word 0x684b06de - 4468: 604319cd .word 0x604319cd - 446c: 0ff6688c .word 0x0ff6688c - 4470: 68cb6084 .word 0x68cb6084 - 4474: 60c31c04 .word 0x60c31c04 - 4478: 33101c0b .word 0x33101c0b - 447c: 429d3410 .word 0x429d3410 - 4480: 2e00d027 .word 0x2e00d027 - 4484: 6819d00b .word 0x6819d00b - 4488: 685e6021 .word 0x685e6021 - 448c: 68996066 .word 0x68996066 - 4490: 68de60a1 .word 0x68de60a1 - 4494: 60e63310 .word 0x60e63310 - 4498: 429d3410 .word 0x429d3410 - 449c: 6819d019 .word 0x6819d019 - 44a0: 685e6021 .word 0x685e6021 - 44a4: 68996066 .word 0x68996066 - 44a8: 68de60a1 .word 0x68de60a1 - 44ac: 60e61c19 .word 0x60e61c19 - 44b0: 1c26691b .word 0x1c26691b - 44b4: 694c6123 .word 0x694c6123 - 44b8: 698b6174 .word 0x698b6174 - 44bc: 69cc61b3 .word 0x69cc61b3 - 44c0: 61f43110 .word 0x61f43110 - 44c4: 36101c0b .word 0x36101c0b - 44c8: 33101c34 .word 0x33101c34 - 44cc: 429d3410 .word 0x429d3410 - 44d0: 183fd1e5 .word 0x183fd1e5 - 44d4: 46b8210f .word 0x46b8210f - 44d8: 29034011 .word 0x29034011 - 44dc: 3904d94d .word 0x3904d94d - 44e0: 00b3088e .word 0x00b3088e - 44e4: 18ec3304 .word 0x18ec3304 - 44e8: 3b0446a4 .word 0x3b0446a4 - 44ec: 075f1c2c .word 0x075f1c2c - 44f0: 4641cc08 .word 0x4641cc08 - 44f4: c10846b1 .word 0xc10846b1 - 44f8: 45640ffe .word 0x45640ffe - 44fc: 2e00d00f .word 0x2e00d00f - 4500: cc80d003 .word 0xcc80d003 - 4504: 4564c180 .word 0x4564c180 - 4508: 1c27d009 .word 0x1c27d009 - 450c: 1c0ecf08 .word 0x1c0ecf08 - 4510: 6864c608 .word 0x6864c608 - 4514: 1d3c604c .word 0x1d3c604c - 4518: 45641d31 .word 0x45641d31 - 451c: 4649d1f5 .word 0x4649d1f5 - 4520: 008e3101 .word 0x008e3101 - 4524: 19ad2703 .word 0x19ad2703 - 4528: 4446403a .word 0x4446403a - 452c: 1c0de001 .word 0x1c0de001 - 4530: 2a001c06 .word 0x2a001c06 - 4534: 782fd01a .word 0x782fd01a - 4538: 43f318b2 .word 0x43f318b2 - 453c: 240118d1 .word 0x240118d1 - 4540: 36017037 .word 0x36017037 - 4544: 3501400c .word 0x3501400c - 4548: d00f4296 .word 0xd00f4296 - 454c: d0052c00 .word 0xd0052c00 - 4550: 3501782b .word 0x3501782b - 4554: 36017033 .word 0x36017033 - 4558: d0074296 .word 0xd0074296 - 455c: 70317829 .word 0x70317829 - 4560: 3502786c .word 0x3502786c - 4564: 36027074 .word 0x36027074 - 4568: d1f74296 .word 0xd1f74296 - 456c: 4690bc0c .word 0x4690bc0c - 4570: bdf04699 .word 0xbdf04699 - 4574: 1c0d1c06 .word 0x1c0d1c06 - 4578: 1c3ee7dd .word 0x1c3ee7dd - 457c: e7d81c0a .word 0xe7d81c0a - 4580: 780a1c03 .word 0x780a1c03 - 4584: 701a3101 .word 0x701a3101 - 4588: 2a003301 .word 0x2a003301 - 458c: 4770d1f9 .word 0x4770d1f9 - 4590: 5cc22300 .word 0x5cc22300 - 4594: 2a003301 .word 0x2a003301 - 4598: 1e58d1fb .word 0x1e58d1fb - 459c: 46c04770 .word 0x46c04770 - 45a0: 2e317620 .word 0x2e317620 - 45a4: 2d302e30 .word 0x2d302e30 - 45a8: 30316372 .word 0x30316372 - 45ac: 672d342d .word 0x672d342d - 45b0: 37356138 .word 0x37356138 - 45b4: 2d366435 .word 0x2d366435 - 45b8: 74726964 .word 0x74726964 - 45bc: 30322079 .word 0x30322079 - 45c0: 302d3032 .word 0x302d3032 - 45c4: 37302d35 .word 0x37302d35 - 45c8: 00000000 .word 0x00000000 - 45cc: 2000dfbd .word 0x2000dfbd - 45d0: 00000000 .word 0x00000000 - 45d4: 2000c305 .word 0x2000c305 - 45d8: 00000000 .word 0x00000000 - 45dc: 2000ed1f .word 0x2000ed1f - 45e0: 2000ed23 .word 0x2000ed23 - 45e4: 2000ed74 .word 0x2000ed74 - 45e8: 2000ecd7 .word 0x2000ecd7 - 45ec: 00000000 .word 0x00000000 - 45f0: 33323130 .word 0x33323130 - 45f4: 37363534 .word 0x37363534 - 45f8: 42413938 .word 0x42413938 - 45fc: 46454443 .word 0x46454443 - 4600: 006080e0 .word 0x006080e0 - 4604: 0c0d0e0f .word 0x0c0d0e0f - 4608: 08090a0b .word 0x08090a0b - 460c: 04050607 .word 0x04050607 - 4610: 00010203 .word 0x00010203 - 4614: 01010101 .word 0x01010101 - 4618: 02020201 .word 0x02020201 - 461c: 03030202 .word 0x03030202 - 4620: 04030303 .word 0x04030303 - 4624: 04040404 .word 0x04040404 - 4628: 05050505 .word 0x05050505 - 462c: 06060605 .word 0x06060605 - 4630: 07070606 .word 0x07070606 - 4634: 07070707 .word 0x07070707 - 4638: 07070707 .word 0x07070707 - 463c: 08080808 .word 0x08080808 - 4640: 08080808 .word 0x08080808 - 4644: 09090808 .word 0x09090808 - 4648: 09090909 .word 0x09090909 - 464c: 09090909 .word 0x09090909 - 4650: 0a0a0a0a .word 0x0a0a0a0a - 4654: 0a0a0a0a .word 0x0a0a0a0a - 4658: 0b0b0a0a .word 0x0b0b0a0a - 465c: 0b0b0b0b .word 0x0b0b0b0b - 4660: 0b0b0b0b .word 0x0b0b0b0b - 4664: 0b0b0b0b .word 0x0b0b0b0b - 4668: 0b0b0b0b .word 0x0b0b0b0b - 466c: 0c0c0b0b .word 0x0c0c0b0b - 4670: 0c0c0c0c .word 0x0c0c0c0c - 4674: 0c0c0c0c .word 0x0c0c0c0c - 4678: 0c0c0c0c .word 0x0c0c0c0c - 467c: 0c0c0c0c .word 0x0c0c0c0c - 4680: 0c0c0c0c .word 0x0c0c0c0c - 4684: 0c0c0c0c .word 0x0c0c0c0c - 4688: 0c0c0c0c .word 0x0c0c0c0c - 468c: 0c0c0c0c .word 0x0c0c0c0c - 4690: 0c0c0c0c .word 0x0c0c0c0c - 4694: 0d0d0c0c .word 0x0d0d0c0c - 4698: 0d0d0d0d .word 0x0d0d0d0d - 469c: 0d0d0d0d .word 0x0d0d0d0d - 46a0: 0d0d0d0d .word 0x0d0d0d0d - 46a4: 0d0d0d0d .word 0x0d0d0d0d - 46a8: 0d0d0d0d .word 0x0d0d0d0d - 46ac: 0d0d0d0d .word 0x0d0d0d0d - 46b0: 0d0d0d0d .word 0x0d0d0d0d - 46b4: 0d0d0d0d .word 0x0d0d0d0d - 46b8: 0d0d0d0d .word 0x0d0d0d0d - 46bc: 0e0e0d0d .word 0x0e0e0d0d - 46c0: 0e0e0e0e .word 0x0e0e0e0e - 46c4: 0e0e0e0e .word 0x0e0e0e0e - 46c8: 0e0e0e0e .word 0x0e0e0e0e - 46cc: 0e0e0e0e .word 0x0e0e0e0e - 46d0: 0e0e0e0e .word 0x0e0e0e0e - 46d4: 0e0e0e0e .word 0x0e0e0e0e - 46d8: 0e0e0e0e .word 0x0e0e0e0e - 46dc: 0f0f0f0f .word 0x0f0f0f0f - 46e0: 0f0f0f0f .word 0x0f0f0f0f - 46e4: 0f0f0f0f .word 0x0f0f0f0f - 46e8: 0f0f0f0f .word 0x0f0f0f0f - 46ec: 0f0f0f0f .word 0x0f0f0f0f - 46f0: 0f0f0f0f .word 0x0f0f0f0f - 46f4: 0f0f0f0f .word 0x0f0f0f0f - 46f8: 10100f0f .word 0x10100f0f - 46fc: 10101010 .word 0x10101010 - 4700: 10101010 .word 0x10101010 - 4704: 10101010 .word 0x10101010 - 4708: 10101010 .word 0x10101010 - 470c: 10101010 .word 0x10101010 - 4710: 10101010 .word 0x10101010 - 4714: 10101010 .word 0x10101010 - 4718: 11111111 .word 0x11111111 - 471c: 11111111 .word 0x11111111 - 4720: 11111111 .word 0x11111111 - 4724: 11111111 .word 0x11111111 - 4728: 11111111 .word 0x11111111 - 472c: 11111111 .word 0x11111111 - 4730: 11111111 .word 0x11111111 - 4734: 11111111 .word 0x11111111 - 4738: 11111111 .word 0x11111111 - 473c: 11111111 .word 0x11111111 - 4740: 11111111 .word 0x11111111 - 4744: 11111111 .word 0x11111111 - 4748: 11111111 .word 0x11111111 - 474c: 11111111 .word 0x11111111 - 4750: 11111111 .word 0x11111111 - 4754: 11111111 .word 0x11111111 - 4758: 11111111 .word 0x11111111 - 475c: 11111111 .word 0x11111111 - 4760: 11111111 .word 0x11111111 - 4764: 11111111 .word 0x11111111 - 4768: 11111111 .word 0x11111111 - 476c: 11111111 .word 0x11111111 - 4770: 11111111 .word 0x11111111 - 4774: 11111111 .word 0x11111111 - 4778: 11111111 .word 0x11111111 - 477c: 11111111 .word 0x11111111 - 4780: 11111111 .word 0x11111111 - 4784: 11111111 .word 0x11111111 - 4788: 11111111 .word 0x11111111 - 478c: 11111111 .word 0x11111111 - 4790: 11111111 .word 0x11111111 - 4794: 11111111 .word 0x11111111 - 4798: 11111111 .word 0x11111111 - 479c: 11111111 .word 0x11111111 - 47a0: 11111111 .word 0x11111111 - 47a4: 12121212 .word 0x12121212 - 47a8: 12121212 .word 0x12121212 - 47ac: 12121212 .word 0x12121212 - 47b0: 12121212 .word 0x12121212 - 47b4: 12121212 .word 0x12121212 - 47b8: 12121212 .word 0x12121212 - 47bc: 12121212 .word 0x12121212 - 47c0: 12121212 .word 0x12121212 - 47c4: 12121212 .word 0x12121212 - 47c8: 12121212 .word 0x12121212 - 47cc: 12121212 .word 0x12121212 - 47d0: 12121212 .word 0x12121212 - 47d4: 12121212 .word 0x12121212 - 47d8: 12121212 .word 0x12121212 - 47dc: 12121212 .word 0x12121212 - 47e0: 12121212 .word 0x12121212 - 47e4: 12121212 .word 0x12121212 - 47e8: 12121212 .word 0x12121212 - 47ec: 12121212 .word 0x12121212 - 47f0: 12121212 .word 0x12121212 - 47f4: 12121212 .word 0x12121212 - 47f8: 12121212 .word 0x12121212 - 47fc: 12121212 .word 0x12121212 - 4800: 12121212 .word 0x12121212 - 4804: 12121212 .word 0x12121212 - 4808: 12121212 .word 0x12121212 - 480c: 12121212 .word 0x12121212 - 4810: 12121212 .word 0x12121212 - 4814: 12121212 .word 0x12121212 - 4818: 12121212 .word 0x12121212 - 481c: 12121212 .word 0x12121212 - 4820: 12121212 .word 0x12121212 - 4824: 12121212 .word 0x12121212 - 4828: 12121212 .word 0x12121212 - 482c: 13131212 .word 0x13131212 - 4830: 13131313 .word 0x13131313 - 4834: 13131313 .word 0x13131313 - 4838: 13131313 .word 0x13131313 - 483c: 13131313 .word 0x13131313 - 4840: 13131313 .word 0x13131313 - 4844: 13131313 .word 0x13131313 - 4848: 13131313 .word 0x13131313 - 484c: 13131313 .word 0x13131313 - 4850: 13131313 .word 0x13131313 - 4854: 13131313 .word 0x13131313 - 4858: 13131313 .word 0x13131313 - 485c: 13131313 .word 0x13131313 - 4860: 13131313 .word 0x13131313 - 4864: 13131313 .word 0x13131313 - 4868: 13131313 .word 0x13131313 - 486c: 08df0208 .word 0x08df0208 - 4870: 0208be02 .word 0x0208be02 - 4874: 7b02088b .word 0x7b02088b - 4878: 08690208 .word 0x08690208 - 487c: 02005802 .word 0x02005802 - 4880: 44020044 .word 0x44020044 - 4884: 00340200 .word 0x00340200 - 4888: 02003402 .word 0x02003402 - 488c: 24020024 .word 0x24020024 - 4890: 00140200 .word 0x00140200 - 4894: 02001302 .word 0x02001302 - 4898: 11020013 .word 0x11020013 - 489c: 00000200 .word 0x00000200 - 48a0: 41000041 .word 0x41000041 - 48a4: 00400000 .word 0x00400000 - 48a8: 00004000 .word 0x00004000 - 48ac: 020c0408 .word 0x020c0408 - 48b0: 010e060a .word 0x010e060a - 48b4: 030d0509 .word 0x030d0509 - 48b8: 000f070b .word 0x000f070b - 48bc: 20003004 .word 0x20003004 - 48c0: 20003008 .word 0x20003008 - 48c4: 20001c00 .word 0x20001c00 - 48c8: 20003000 .word 0x20003000 - 48cc: 20001c04 .word 0x20001c04 - 48d0: 20001c08 .word 0x20001c08 - 48d4: 0200060a .word 0x0200060a - 48d8: 40000000 .word 0x40000000 - 48dc: 02090001 .word 0x02090001 - 48e0: 01010020 .word 0x01010020 - 48e4: 09fa8000 .word 0x09fa8000 - 48e8: 02000004 .word 0x02000004 - 48ec: 00ffffff .word 0x00ffffff - 48f0: 02810507 .word 0x02810507 - 48f4: 07000040 .word 0x07000040 - 48f8: 40020205 .word 0x40020205 - 48fc: 28000000 .word 0x28000000 - 4900: 00000000 .word 0x00000000 - 4904: 01000401 .word 0x01000401 - 4908: 00000000 .word 0x00000000 - 490c: 01000000 .word 0x01000000 - 4910: 4e495701 .word 0x4e495701 - 4914: 00425355 .word 0x00425355 - 4918: 4e495700 .word 0x4e495700 - 491c: 00425355 .word 0x00425355 - 4920: 00000000 .word 0x00000000 - 4924: 36000000 .word 0x36000000 - 4928: 49004103 .word 0x49004103 - 492c: 53005200 .word 0x53005200 - 4930: 59005000 .word 0x59005000 - 4934: 53002000 .word 0x53002000 - 4938: 3a004e00 .word 0x3a004e00 - 493c: 20002000 .word 0x20002000 - 4940: 20002000 .word 0x20002000 - 4944: 20002000 .word 0x20002000 - 4948: 20002000 .word 0x20002000 - 494c: 20002000 .word 0x20002000 - 4950: 20002000 .word 0x20002000 - 4954: 20002000 .word 0x20002000 - 4958: 20002000 .word 0x20002000 - 495c: 00011200 .word 0x00011200 - 4960: 00000002 .word 0x00000002 - 4964: a11d5040 .word 0xa11d5040 - 4968: 01010060 .word 0x01010060 - 496c: 04010302 .word 0x04010302 - 4970: 1e040903 .word 0x1e040903 - 4974: 77007703 .word 0x77007703 - 4978: 2e007700 .word 0x2e007700 - 497c: 69006100 .word 0x69006100 - 4980: 73007200 .word 0x73007200 - 4984: 79007000 .word 0x79007000 - 4988: 63002e00 .word 0x63002e00 - 498c: 6d006f00 .word 0x6d006f00 - 4990: 4d031200 .word 0x4d031200 - 4994: 46005300 .word 0x46005300 - 4998: 31005400 .word 0x31005400 - 499c: 30003000 .word 0x30003000 - 49a0: 09001300 .word 0x09001300 - 49a4: 01002002 .word 0x01002002 - 49a8: fa800001 .word 0xfa800001 - 49ac: 00000409 .word 0x00000409 - 49b0: ffffff02 .word 0xffffff02 - 49b4: 81050700 .word 0x81050700 - 49b8: 00020002 .word 0x00020002 - 49bc: 02020507 .word 0x02020507 - 49c0: 00000200 .word 0x00000200 - 49c4: 0041030e .word 0x0041030e - 49c8: 00520049 .word 0x00520049 - 49cc: 00500053 .word 0x00500053 - 49d0: 008e0059 .word 0x008e0059 - 49d4: 01000000 .word 0x01000000 - 49d8: 00010005 .word 0x00010005 - 49dc: 00000084 .word 0x00000084 - 49e0: 00000001 .word 0x00000001 - 49e4: 00440028 .word 0x00440028 - 49e8: 00760065 .word 0x00760065 - 49ec: 00630069 .word 0x00630069 - 49f0: 00490065 .word 0x00490065 - 49f4: 0074006e .word 0x0074006e - 49f8: 00720065 .word 0x00720065 - 49fc: 00610066 .word 0x00610066 - 4a00: 00650063 .word 0x00650063 - 4a04: 00550047 .word 0x00550047 - 4a08: 00440049 .word 0x00440049 - 4a0c: 004e0000 .word 0x004e0000 - 4a10: 007b0000 .word 0x007b0000 - 4a14: 00410034 .word 0x00410034 - 4a18: 00340046 .word 0x00340046 - 4a1c: 00380031 .word 0x00380031 - 4a20: 00350036 .word 0x00350036 - 4a24: 0042002d .word 0x0042002d - 4a28: 00310043 .word 0x00310043 - 4a2c: 002d0045 .word 0x002d0045 - 4a30: 00340037 .word 0x00340037 - 4a34: 00410035 .word 0x00410035 - 4a38: 0039002d .word 0x0039002d - 4a3c: 00320038 .word 0x00320038 - 4a40: 002d0036 .word 0x002d0036 - 4a44: 00370039 .word 0x00370039 - 4a48: 00410043 .word 0x00410043 - 4a4c: 00380041 .word 0x00380041 - 4a50: 00450045 .word 0x00450045 - 4a54: 00340030 .word 0x00340030 - 4a58: 00460037 .word 0x00460037 - 4a5c: 0000007d .word 0x0000007d - 4a60: 2000ed53 .word 0x2000ed53 - 4a64: 00000001 .word 0x00000001 - 4a68: 00000002 .word 0x00000002 - 4a6c: 2000ed0d .word 0x2000ed0d - 4a70: 2000e98c .word 0x2000e98c - 4a74: 2000ec84 .word 0x2000ec84 - 4a78: 2000ee3c .word 0x2000ee3c - 4a7c: 00000000 .word 0x00000000 - 4a80: 2000ec8e .word 0x2000ec8e - 4a84: 00000001 .word 0x00000001 - 4a88: 00000001 .word 0x00000001 - 4a8c: 2000ee10 .word 0x2000ee10 - 4a90: 2000ee30 .word 0x2000ee30 - 4a94: 00000000 .word 0x00000000 - 4a98: 2000ee78 .word 0x2000ee78 - 4a9c: 00000004 .word 0x00000004 - 4aa0: 2000f540 .word 0x2000f540 - 4aa4: 00000000 .word 0x00000000 - 4aa8: 2000eea0 .word 0x2000eea0 - 4aac: 00000001 .word 0x00000001 - 4ab0: 2000f2c0 .word 0x2000f2c0 - 4ab4: 00000000 .word 0x00000000 - 4ab8: 2000eec8 .word 0x2000eec8 - 4abc: 00000004 .word 0x00000004 - 4ac0: 2000f0c0 .word 0x2000f0c0 - ... - 4adc: 2000ee1c .word 0x2000ee1c - 4ae0: 2000eec8 .word 0x2000eec8 - 4ae4: 2000ee78 .word 0x2000ee78 - 4ae8: 2000de91 .word 0x2000de91 - 4aec: 2000de9b .word 0x2000de9b - ... - 4b00: 00000002 .word 0x00000002 - 4b04: 2000ee1c .word 0x2000ee1c - 4b08: 00000000 .word 0x00000000 - 4b0c: 2000eea0 .word 0x2000eea0 - 4b10: 00000000 .word 0x00000000 - 4b14: 2000de0f .word 0x2000de0f - ... - 4b28: 00000080 .word 0x00000080 - 4b2c: 2000ee1c .word 0x2000ee1c - 4b30: 2000eec8 .word 0x2000eec8 - 4b34: 2000ee78 .word 0x2000ee78 - 4b38: 00000000 .word 0x00000000 - 4b3c: 2000deb7 .word 0x2000deb7 - 4b40: 2000ef00 .word 0x2000ef00 - 4b44: 00000001 .word 0x00000001 - 4b48: 2000f040 .word 0x2000f040 - ... - 4b60: 00000081 .word 0x00000081 - 4b64: 2000ee1c .word 0x2000ee1c - 4b68: 2000ef00 .word 0x2000ef00 - ... - 4b74: 2000de0f .word 0x2000de0f - 4b78: 20001000 .word 0x20001000 - 4b7c: 00000001 .word 0x00000001 - -00004b80 : - 4b80: 00002f30 .word 0x00002f30 - ... - -00004b90 : - 4b90: 40086000 00000010 40086004 00000010 .`.@.....`.@.... - 4ba0: 40086080 00000010 40086084 00000010 .`.@.....`.@.... - 4bb0: 40086088 00000010 4008608c 00000010 .`.@.....`.@.... - 4bc0: 40086090 00000010 40086094 00000010 .`.@.....`.@.... - 4bd0: 40086098 00000010 4008609c 00000010 .`.@.....`.@.... - 4be0: 400860a0 00000010 400860a4 00000010 .`.@.....`.@.... - 4bf0: 400860a8 00000010 400860ac 00000010 .`.@.....`.@.... - 4c00: 400860b0 00000010 400860b4 00000010 .`.@.....`.@.... - 4c10: 400860b8 00000000 400860bc 00000010 .`.@.....`.@.... - 4c20: 400860c0 00000010 400860c4 00000000 .`.@.....`.@.... - 4c30: 400860c8 00000010 400860cc 00000012 .`.@.....`.@.... - 4c40: 400860d0 00000010 40086100 00000014 .`.@.....a.@.... - 4c50: 40086104 00000014 40086108 00000014 .a.@.....a.@.... - 4c60: 4008610c 00000014 40086110 00000014 .a.@.....a.@.... - 4c70: 40086114 00000014 40086118 00000014 .a.@.....a.@.... - 4c80: 4008611c 00000010 40086120 00000014 .a.@.... a.@.... - 4c90: 40086124 00000010 40086128 00000010 $a.@....(a.@.... - 4ca0: 4008612c 00000010 40086130 00000010 ,a.@....0a.@.... - 4cb0: 40086134 00000000 40086180 00000010 4a.@.....a.@.... - 4cc0: 40086184 00000014 40086188 00000014 .a.@.....a.@.... - 4cd0: 40086200 00000010 40086204 00000010 .b.@.....b.@.... - 4ce0: 40086208 00000010 4008620c 00000010 .b.@.....b.@.... - 4cf0: 40086210 00000010 40086214 00000010 .b.@.....b.@.... - 4d00: 40086218 00000010 4008621c 00000012 .b.@.....b.@.... - 4d10: 40086220 00000014 40086224 00000014 b.@....$b.@.... - 4d20: 40086228 00000014 40086280 00000010 (b.@.....b.@.... - 4d30: 40086284 00000010 40086288 00000010 .b.@.....b.@.... - 4d40: 4008628c 00000010 40086290 00000010 .b.@.....b.@.... - 4d50: 40086294 00000010 40086298 00000010 .b.@.....b.@.... - 4d60: 4008629c 00000010 40086300 00000010 .b.@.....c.@.... - 4d70: 40086304 00000010 40086308 00000010 .c.@.....c.@.... - 4d80: 4008630c 00000010 40086310 00000010 .c.@.....c.@.... - 4d90: 40086314 00000010 40086318 00000010 .c.@.....c.@.... - 4da0: 4008631c 00000010 40086320 00000010 .c.@.... c.@.... - 4db0: 40086324 00000010 40086328 00000010 $c.@....(c.@.... - 4dc0: 4008632c 00000010 40086330 00000010 ,c.@....0c.@.... - 4dd0: 40086380 00000010 40086384 00000010 .c.@.....c.@.... - 4de0: 40086388 00000010 4008638c 00000010 .c.@.....c.@.... - 4df0: 40086390 00000010 40086394 00000010 .c.@.....c.@.... - 4e00: 40086398 00000010 4008639c 00000010 .c.@.....c.@.... - 4e10: 40086400 00000010 40086404 00000010 .d.@.....d.@.... - 4e20: 40086408 00000010 4008640c 00000010 .d.@.....d.@.... - 4e30: 40086410 00000010 40086414 00000010 .d.@.....d.@.... - 4e40: 40086418 00000010 4008641c 00000010 .d.@.....d.@.... - 4e50: 40086420 00000010 40086500 00000010 d.@.....e.@.... - 4e60: 40086504 00000010 40086508 00000010 .e.@.....e.@.... - 4e70: 4008650c 00000010 40086510 00000010 .e.@.....e.@.... - 4e80: 40086580 00000010 40086584 00000010 .e.@.....e.@.... - 4e90: 40086588 00000010 4008658c 00000010 .e.@.....e.@.... - 4ea0: 40086590 00000010 40086594 00000010 .e.@.....e.@.... - 4eb0: 40086598 00000010 40086600 00000010 .e.@.....f.@.... - 4ec0: 40086604 00000014 40086608 00000014 .f.@.....f.@.... - 4ed0: 4008660c 00000014 40086610 00000010 .f.@.....f.@.... - 4ee0: 40086614 00000010 40086618 00000010 .f.@.....f.@.... - 4ef0: 4008661c 00000010 40086620 00000010 .f.@.... f.@.... - 4f00: 40086624 00000010 40086628 00000010 $f.@....(f.@.... - 4f10: 4008662c 00000010 40086630 00000010 ,f.@....0f.@.... - 4f20: 40086634 00000010 40086638 00000010 4f.@....8f.@.... - 4f30: 40086680 00000010 40086684 00000010 .f.@.....f.@.... - 4f40: 40086688 00000010 4008668c 00000010 .f.@.....f.@.... - 4f50: 40086690 00000010 40086694 00000010 .f.@.....f.@.... - 4f60: 40086698 00000010 4008669c 00000010 .f.@.....f.@.... - 4f70: 400866a0 00000010 400866a4 00000010 .f.@.....f.@.... - 4f80: 400866a8 00000010 400866ac 00000010 .f.@.....f.@.... - 4f90: 400866b0 00000010 400866b4 00000010 .f.@.....f.@.... - 4fa0: 400866b8 00000010 400866bc 00000010 .f.@.....f.@.... - 4fb0: 400866c0 00000010 40086700 00000010 .f.@.....g.@.... - 4fc0: 40086704 00000010 40086708 00000014 .g.@.....g.@.... - 4fd0: 4008670c 00000010 40086710 00000010 .g.@.....g.@.... - 4fe0: 40086714 00000010 40086718 00000010 .g.@.....g.@.... - 4ff0: 4008671c 00000010 40086720 00000010 .g.@.... g.@.... - 5000: 40086724 00000010 40086728 00000010 $g.@....(g.@.... - 5010: 4008672c 00000010 40086730 00000010 ,g.@....0g.@.... - 5020: 40086734 00000010 40086738 00000010 4g.@....8g.@.... - 5030: 4008673c 00000010 40086780 00000011 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 z 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 mfO)79GtqX^xHviAs=bT~irSI>1f6xDUe&6SN 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℘aw9TDPZyB_g4R+x>JbE1B$iRVpz7$HjRzwi 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 diff --git a/airspy_rom_to_ram/dfu-util.exe b/airspy_rom_to_ram/dfu-util.exe deleted file mode 100644 index a48d6690aee6352667998c5efc36148aa434e5f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 223243 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

3rjjvp^9a$|cdL61GGl(D%0f5m*pnv84SfeY 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 BtONi6 diff --git a/airspy_rom_to_ram/libusb-1.0.dll b/airspy_rom_to_ram/libusb-1.0.dll deleted file mode 100644 index 4bda76f4e8b5ce998daa9b956ae1f2c527987a63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95744 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 ST-g)4W-_|++R%4<(SHJ=*Ggdk diff --git a/airspy_rom_to_ram/m0s_bin.o b/airspy_rom_to_ram/m0s_bin.o deleted file mode 100644 index fa823f5ed0206bac8189899de658de0323263a59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1325 zcmcgr&ubG=5T3W29~-H(p+z^zu1z3KbBMuW3Oy#PCaGyq#Dma7H?e_4s0qnd)Qj=Q zq2QrC7XJfpg`A@mA{1I=6A+K~Qi2ERp{RH;ao#4+Y=Y=P@WJGpZ|0l%UP9iZD@$=g z2(UvS2m=Nn@kYlQF(3#IuraBDhY1ir1Bjn6-eL?jM+nuh63uBGnS%Dr{D0)$*FV}8 z|9U*6aQg9yqsko~p9s}%o1{b)UUk|xIS@PT-FPXn8^3n-dg_HT-TEj^$qSyx0-4){ zrPRW7%-#|A#<_i`T2sb#2=Y4FCykoo&_&6+=aal|mh-n&ULKQc%9m!#6-_=-&a@iR zqcLTtFfm$M7+ovK^1Ty&~W6|3%+UFxJv^Y6__a(;0`@wE6ko4o0%3&dZP zLQyVHX0{S_>Kd}>!aHte8=0U-ByvzqaP#-_JBff?SH3m_soBNn#{47GrB|8xiXTe7%i%2|ye`;SmmIWq%@1(0WQnQQ@wgsJsXv8?6ppHD}? zcG{kHaHnh@;wKQUJXq5*SwyYe!#vASu0eP;qh%nRtyCafF7`<5Mmn6)v~nT4uH`Dj zzJFpKY|=NwUPkY&3?|rD@bz`QCj~I7WAAPjbppoUbfNw}wm*uz#0cgS81zsd+*L9N ze(a!zda%QMomgO=wD$pZmzfBW=_s0P;F$$r3v2Ywb_}G3w*%3u>sg}V$_DustR_z6Qz B)dK(k diff --git a/airspy_rom_to_ram/pthreadVCE2.dll b/airspy_rom_to_ram/pthreadVCE2.dll deleted file mode 100644 index 9d148cc0dae8c9d0f4b4bf73d815d33bd544b2e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61952 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 diff --git a/airspy_rom_to_ram/rom_iap.d b/airspy_rom_to_ram/rom_iap.d deleted file mode 100644 index 783b969..0000000 --- a/airspy_rom_to_ram/rom_iap.d +++ /dev/null @@ -1,13 +0,0 @@ -rom_iap.o: ../common/rom_iap.c ../common/airspy_core.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/include/stdint.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/stdint.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/_ansi.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/newlib.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/sys/config.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/machine/ieeefp.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/sys/features.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/include/stdbool.h \ - ../libopencm3/include/libopencm3/lpc43xx/cgu.h \ - ../libopencm3/include/libopencm3/cm3/common.h \ - ../libopencm3/include/libopencm3/lpc43xx/memorymap.h ../common/rom_iap.h \ - ../common/w25q80bv.h diff --git a/airspy_rom_to_ram/rom_iap.o b/airspy_rom_to_ram/rom_iap.o deleted file mode 100644 index 5ee6ec08f7737cddf0da3e297af4982c42fe6554..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11308 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 diff --git a/airspy_rom_to_ram/si5351c.d b/airspy_rom_to_ram/si5351c.d deleted file mode 100644 index 13c621a..0000000 --- a/airspy_rom_to_ram/si5351c.d +++ /dev/null @@ -1,15 +0,0 @@ -si5351c.o: ../common/si5351c.c ../common/si5351c.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/include/stdint.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/stdint.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/_ansi.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/newlib.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/sys/config.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/machine/ieeefp.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/include/sys/features.h \ - ../common/airspy_core.h \ - c:\program\ files\ (x86)\gnu\ tools\ arm\ embedded\4.7\ 2013q3\bin\../lib/gcc/arm-none-eabi/4.7.4/include/stdbool.h \ - ../libopencm3/include/libopencm3/lpc43xx/cgu.h \ - ../libopencm3/include/libopencm3/cm3/common.h \ - ../libopencm3/include/libopencm3/lpc43xx/memorymap.h \ - ../common/airspy_conf.h ../common/airspy_commands.h ../common/r820t.h \ - ../libopencm3/include/libopencm3/lpc43xx/i2c.h diff --git a/airspy_rom_to_ram/si5351c.o b/airspy_rom_to_ram/si5351c.o deleted file mode 100644 index 95f600561170699e6498d0b6ffde3054da7204f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21732 zcmc(G30zIx_xCyXHqVokQnx`W%`-}Ki6n`qh{oGM!_|zWC}T+IF_d{8LnKp!lzGgM zQ07oV@gVfBb?&)!yH7vA|NHs;-_N@_=eyTlYp=cbK6|gd&$_4i?%p0GNfNw768c0h zMG$$m6i3*K0)4`ja3a!+!oxx$LZT{VtW>qEY<;EWEW9jsGTe7-uNQTakPFIG68DG{ z@la+>VrZ+5$=|i!>5lJjXE`-jVM|NqerqEsZ>bOyo%||^zn{A)@Al1?u6ic4NW4Hw z)I!uuz}l3GrLk|vbjriyoku#arSvq-WgGIN>%Mn9t;B;UNXj*&9byG z^Z6LgFeI)l@G7y(^b(0r+DhbKJn5tnFUJfr_Lg*8klilDw7GXlFKkA5Wb?=?V)eDw zal_P>d3adm8hNWToKlP=Uus=hKietQqQoNR9hu91dQm4wHMGDj@uA)Knyg4MtNQIK z*H=FAkZG+hdYD^YB56qwBNR0%(~E{wT_y>Zn9xySe|rf|OT`3DJ(G!}PybkXg|mH7 zv9m>BtcLtAaz=Vl@!Fd+6`hspnl@>6?T~1z3NDY?Opf60dt~t z^u?wh8`mXT6E>qWLVsCjvwNxM@_KEpue!HgbEoG>3{MXbc3zT@8d;V+bw!G+Mf>%P zrcLcPqHLw|N6kI*zOzjtYu2FK!VzDjvl{GOw=oYdoIKquv)#eT&ZMhzuE+L6!i6$Z zW^W4I(m1C1Y_l#$?w)R%pjbh@mkK6&?7U5LR!)4dv`gh=_R zvuWKgN4?VZZM*ugdO}E~Qb6qxb*9(%@GHia?du;~51*#+`T|EN<->-#<=Z_*R4KH% z=(H2vw^R&YD6TE#49r~QlcnI`Hcf7;@GbJ__a`@,B@`|Tba;6CVaz>_r#Yc5PV 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 IM+AHS4`TnQZvX%Q diff --git a/airspy_rom_to_ram/signal_mcu.d b/airspy_rom_to_ram/signal_mcu.d deleted file mode 100644 index 606ccb5..0000000 --- a/airspy_rom_to_ram/signal_mcu.d +++ /dev/null @@ -1 +0,0 @@ -signal_mcu.o: ../common/signal_mcu.c diff --git a/airspy_rom_to_ram/signal_mcu.o b/airspy_rom_to_ram/signal_mcu.o deleted file mode 100644 index c9fcbe5b561d43b4330ee15a8c1990f786e2bc4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1875 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 diff --git a/libopencm3/include/libopencm3/lpc43xx/m0/nvic.h b/libopencm3/include/libopencm3/lpc43xx/m0/nvic.h deleted file mode 100644 index a47210c..0000000 --- a/libopencm3/include/libopencm3/lpc43xx/m0/nvic.h +++ /dev/null @@ -1,95 +0,0 @@ -/* This file is part of the libopencm3 project. - * - * It was generated by the irq2nvic_h script. - */ - -#ifndef LIBOPENCM3_LPC43xx_M0_NVIC_H -#define LIBOPENCM3_LPC43xx_M0_NVIC_H - -#include - -/** @defgroup CM3_nvic_defines_LPC43xx (M0) User interrupts for LPC 43xx series M0APP core (rev_1_7_UM10503) - @ingroup CM3_nvic_defines - - @{*/ - -#define NVIC_RTC_IRQ 0 -#define NVIC_M4CORE_IRQ 1 -#define NVIC_DMA_IRQ 2 -#define NVIC_FLASHEEPROMAT_IRQ 4 -#define NVIC_ETHERNET_IRQ 5 -#define NVIC_SDIO_IRQ 6 -#define NVIC_LCD_IRQ 7 -#define NVIC_USB0_IRQ 8 -#define NVIC_USB1_IRQ 9 -#define NVIC_SCT_IRQ 10 -#define NVIC_RITIMER_OR_WWDT_IRQ 11 -#define NVIC_TIMER0_IRQ 12 -#define NVIC_GINT1_IRQ 13 -#define NVIC_PIN_INT4_IRQ 14 -#define NVIC_TIMER3_IRQ 15 -#define NVIC_MCPWM_IRQ 16 -#define NVIC_ADC0_IRQ 17 -#define NVIC_I2C0_OR_IRC1_IRQ 18 -#define NVIC_SGPIO_IRQ 19 -#define NVIC_SPI_OR_DAC_IRQ 20 -#define NVIC_ADC1_IRQ 21 -#define NVIC_SSP0_OR_SSP1_IRQ 22 -#define NVIC_EVENTROUTER_IRQ 23 -#define NVIC_USART0_IRQ 24 -#define NVIC_UART1_IRQ 25 -#define NVIC_USART2_OR_C_CAN1_IRQ 26 -#define NVIC_USART3_IRQ 27 -#define NVIC_I2S0_OR_I2S1_IRQ 28 -#define NVIC_C_CAN0_IRQ 29 -#define NVIC_SPIFI_OR_ADCHS_IRQ 30 -#define NVIC_M0SUB_IRQ 31 - -#define NVIC_IRQ_COUNT 32 - -/**@}*/ - -/** @defgroup CM3_nvic_isrprototypes_LPC43xx (M0) User interrupt service routines (ISR) prototypes for LPC 43xx series M0APP core (rev_1_7_UM10503) - @ingroup CM3_nvic_isrprototypes - - @{*/ - -BEGIN_DECLS - -void WEAK rtc_isr(void); -void WEAK m4core_isr(void); -void WEAK dma_isr(void); -void WEAK flasheepromat_isr(void); -void WEAK ethernet_isr(void); -void WEAK sdio_isr(void); -void WEAK lcd_isr(void); -void WEAK usb0_isr(void); -void WEAK usb1_isr(void); -void WEAK sct_isr(void); -void WEAK ritimer_or_wwdt_isr(void); -void WEAK timer0_isr(void); -void WEAK gint1_isr(void); -void WEAK pin_int4_isr(void); -void WEAK timer3_isr(void); -void WEAK mcpwm_isr(void); -void WEAK adc0_isr(void); -void WEAK i2c0_or_irc1_isr(void); -void WEAK sgpio_isr(void); -void WEAK spi_or_dac_isr(void); -void WEAK adc1_isr(void); -void WEAK ssp0_or_ssp1_isr(void); -void WEAK eventrouter_isr(void); -void WEAK usart0_isr(void); -void WEAK uart1_isr(void); -void WEAK usart2_or_c_can1_isr(void); -void WEAK usart3_isr(void); -void WEAK i2s0_or_i2s1_isr(void); -void WEAK c_can0_isr(void); -void WEAK spifi_or_adchs_isr(void); -void WEAK m0sub_isr(void); - -END_DECLS - -/**@}*/ - -#endif /* LIBOPENCM3_LPC43xx_M0_NVIC_H */ diff --git a/libopencm3/include/libopencm3/lpc43xx/m0s/nvic.h b/libopencm3/include/libopencm3/lpc43xx/m0s/nvic.h deleted file mode 100644 index ea6b219..0000000 --- a/libopencm3/include/libopencm3/lpc43xx/m0s/nvic.h +++ /dev/null @@ -1,95 +0,0 @@ -/* This file is part of the libopencm3 project. - * - * It was generated by the irq2nvic_h script. - */ - -#ifndef LIBOPENCM3_LPC43xx_M0S_NVIC_H -#define LIBOPENCM3_LPC43xx_M0S_NVIC_H - -#include - -/** @defgroup CM3_nvic_defines_LPC43xx (M0SUB) User interrupts for LPC 43xx series M0SUB core (rev_1_7_UM10503) - @ingroup CM3_nvic_defines - - @{*/ - -#define NVIC_DAC_IRQ 0 -#define NVIC_M4CORE_IRQ 1 -#define NVIC_DMA_IRQ 2 -#define NVIC_SGPIO_INPUT_IRQ 4 -#define NVIC_SGPIO_MATCH_IRQ 5 -#define NVIC_SGPIO_SHIFT_IRQ 6 -#define NVIC_SGPIO_POS_IRQ 7 -#define NVIC_USB0_IRQ 8 -#define NVIC_USB1_IRQ 9 -#define NVIC_SCT_IRQ 10 -#define NVIC_RITIMER_IRQ 11 -#define NVIC_GINT1_IRQ 12 -#define NVIC_TIMER1_IRQ 13 -#define NVIC_TIMER2_IRQ 14 -#define NVIC_PIN_INT5_IRQ 15 -#define NVIC_MCPWM_IRQ 16 -#define NVIC_ADC0_IRQ 17 -#define NVIC_I2C0_IRQ 18 -#define NVIC_I2C1_IRQ 19 -#define NVIC_SPI_IRQ 20 -#define NVIC_ADC1_IRQ 21 -#define NVIC_SSP0_OR_SSP1_IRQ 22 -#define NVIC_EVENTROUTER_IRQ 23 -#define NVIC_USART0_IRQ 24 -#define NVIC_UART1_IRQ 25 -#define NVIC_USART2_OR_C_CAN1_IRQ 26 -#define NVIC_USART3_IRQ 27 -#define NVIC_I2S0_OR_I2S1_OR_QEI_IRQ 28 -#define NVIC_C_CAN0_IRQ 29 -#define NVIC_SPIFI_OR_ADCHS_IRQ 30 -#define NVIC_M0APP_IRQ 31 - -#define NVIC_IRQ_COUNT 32 - -/**@}*/ - -/** @defgroup CM3_nvic_isrprototypes_LPC43xx (M0SUB) User interrupt service routines (ISR) prototypes for LPC 43xx series M0SUB core (rev_1_7_UM10503) - @ingroup CM3_nvic_isrprototypes - - @{*/ - -BEGIN_DECLS - -void WEAK dac_isr(void); -void WEAK m4core_isr(void); -void WEAK dma_isr(void); -void WEAK sgpio_input_isr(void); -void WEAK sgpio_match_isr(void); -void WEAK sgpio_shift_isr(void); -void WEAK sgpio_pos_isr(void); -void WEAK usb0_isr(void); -void WEAK usb1_isr(void); -void WEAK sct_isr(void); -void WEAK ritimer_isr(void); -void WEAK gint1_isr(void); -void WEAK timer1_isr(void); -void WEAK timer2_isr(void); -void WEAK pin_int5_isr(void); -void WEAK mcpwm_isr(void); -void WEAK adc0_isr(void); -void WEAK i2c0_isr(void); -void WEAK i2c1_isr(void); -void WEAK spi_isr(void); -void WEAK adc1_isr(void); -void WEAK ssp0_or_ssp1_isr(void); -void WEAK eventrouter_isr(void); -void WEAK usart0_isr(void); -void WEAK uart1_isr(void); -void WEAK usart2_or_c_can1_isr(void); -void WEAK usart3_isr(void); -void WEAK i2s0_or_i2s1_or_qei_isr(void); -void WEAK c_can0_isr(void); -void WEAK spifi_or_adchs_isr(void); -void WEAK m0app_isr(void); - -END_DECLS - -/**@}*/ - -#endif /* LIBOPENCM3_LPC43xx_M0S_NVIC_H */ diff --git a/libopencm3/include/libopencm3/lpc43xx/m4/nvic.h b/libopencm3/include/libopencm3/lpc43xx/m4/nvic.h deleted file mode 100644 index 7b5b3b7..0000000 --- a/libopencm3/include/libopencm3/lpc43xx/m4/nvic.h +++ /dev/null @@ -1,133 +0,0 @@ -/* This file is part of the libopencm3 project. - * - * It was generated by the irq2nvic_h script. - */ - -#ifndef LIBOPENCM3_LPC43xx_M4_NVIC_H -#define LIBOPENCM3_LPC43xx_M4_NVIC_H - -#include - -/** @defgroup CM3_nvic_defines_LPC43xx (M4) User interrupts for LPC 43xx series M4 core (rev_1_7_UM10503) - @ingroup CM3_nvic_defines - - @{*/ - -#define NVIC_DAC_IRQ 0 -#define NVIC_M0CORE_IRQ 1 -#define NVIC_DMA_IRQ 2 -#define NVIC_FLASHEEPROM_IRQ 4 -#define NVIC_ETHERNET_IRQ 5 -#define NVIC_SDIO_IRQ 6 -#define NVIC_LCD_IRQ 7 -#define NVIC_USB0_IRQ 8 -#define NVIC_USB1_IRQ 9 -#define NVIC_SCT_IRQ 10 -#define NVIC_RITIMER_IRQ 11 -#define NVIC_TIMER0_IRQ 12 -#define NVIC_TIMER1_IRQ 13 -#define NVIC_TIMER2_IRQ 14 -#define NVIC_TIMER3_IRQ 15 -#define NVIC_MCPWM_IRQ 16 -#define NVIC_ADC0_IRQ 17 -#define NVIC_I2C0_IRQ 18 -#define NVIC_I2C1_IRQ 19 -#define NVIC_SPI_IRQ 20 -#define NVIC_ADC1_IRQ 21 -#define NVIC_SSP0_IRQ 22 -#define NVIC_SSP1_IRQ 23 -#define NVIC_USART0_IRQ 24 -#define NVIC_UART1_IRQ 25 -#define NVIC_USART2_IRQ 26 -#define NVIC_USART3_IRQ 27 -#define NVIC_I2S0_IRQ 28 -#define NVIC_I2S1_IRQ 29 -#define NVIC_SPIFI_IRQ 30 -#define NVIC_SGPIO_IRQ 31 -#define NVIC_PIN_INT0_IRQ 32 -#define NVIC_PIN_INT1_IRQ 33 -#define NVIC_PIN_INT2_IRQ 34 -#define NVIC_PIN_INT3_IRQ 35 -#define NVIC_PIN_INT4_IRQ 36 -#define NVIC_PIN_INT5_IRQ 37 -#define NVIC_PIN_INT6_IRQ 38 -#define NVIC_PIN_INT7_IRQ 39 -#define NVIC_GINT0_IRQ 40 -#define NVIC_GINT1_IRQ 41 -#define NVIC_EVENTROUTER_IRQ 42 -#define NVIC_C_CAN1_IRQ 43 -#define NVIC_ADCHS_IRQ 45 -#define NVIC_ATIMER_IRQ 46 -#define NVIC_RTC_IRQ 47 -#define NVIC_WWDT_IRQ 49 -#define NVIC_M0SUB_IRQ 50 -#define NVIC_C_CAN0_IRQ 51 -#define NVIC_QEI_IRQ 52 - -#define NVIC_IRQ_COUNT 53 - -/**@}*/ - -/** @defgroup CM3_nvic_isrprototypes_LPC43xx (M4) User interrupt service routines (ISR) prototypes for LPC 43xx series M4 core (rev_1_7_UM10503) - @ingroup CM3_nvic_isrprototypes - - @{*/ - -BEGIN_DECLS - -void WEAK dac_isr(void); -void WEAK m0core_isr(void); -void WEAK dma_isr(void); -void WEAK flasheeprom_isr(void); -void WEAK ethernet_isr(void); -void WEAK sdio_isr(void); -void WEAK lcd_isr(void); -void WEAK usb0_isr(void); -void WEAK usb1_isr(void); -void WEAK sct_isr(void); -void WEAK ritimer_isr(void); -void WEAK timer0_isr(void); -void WEAK timer1_isr(void); -void WEAK timer2_isr(void); -void WEAK timer3_isr(void); -void WEAK mcpwm_isr(void); -void WEAK adc0_isr(void); -void WEAK i2c0_isr(void); -void WEAK i2c1_isr(void); -void WEAK spi_isr(void); -void WEAK adc1_isr(void); -void WEAK ssp0_isr(void); -void WEAK ssp1_isr(void); -void WEAK usart0_isr(void); -void WEAK uart1_isr(void); -void WEAK usart2_isr(void); -void WEAK usart3_isr(void); -void WEAK i2s0_isr(void); -void WEAK i2s1_isr(void); -void WEAK spifi_isr(void); -void WEAK sgpio_isr(void); -void WEAK pin_int0_isr(void); -void WEAK pin_int1_isr(void); -void WEAK pin_int2_isr(void); -void WEAK pin_int3_isr(void); -void WEAK pin_int4_isr(void); -void WEAK pin_int5_isr(void); -void WEAK pin_int6_isr(void); -void WEAK pin_int7_isr(void); -void WEAK gint0_isr(void); -void WEAK gint1_isr(void); -void WEAK eventrouter_isr(void); -void WEAK c_can1_isr(void); -void WEAK adchs_isr(void); -void WEAK atimer_isr(void); -void WEAK rtc_isr(void); -void WEAK wwdt_isr(void); -void WEAK m0sub_isr(void); -void WEAK c_can0_isr(void); -void WEAK qei_isr(void); - -END_DECLS - -/**@}*/ - -#endif /* LIBOPENCM3_LPC43xx_M4_NVIC_H */ diff --git a/libopencm3/lib/lpc43xx/m0/vector_nvic.c b/libopencm3/lib/lpc43xx/m0/vector_nvic.c deleted file mode 100644 index 56aed39..0000000 --- a/libopencm3/lib/lpc43xx/m0/vector_nvic.c +++ /dev/null @@ -1,85 +0,0 @@ -/* This file is part of the libopencm3 project. - * - * It was generated by the irq2nvic_h script. - * - * This part needs to get included in the compilation unit where - * blocking_handler gets defined due to the way #pragma works. - */ - - -/** @defgroup CM3_nvic_isrpragmas_LPC43xx (M0) User interrupt service routines (ISR) defaults for LPC 43xx series M0APP core (rev_1_7_UM10503) - @ingroup CM3_nvic_isrpragmas - - @{*/ - -#pragma weak rtc_isr = blocking_handler -#pragma weak m4core_isr = blocking_handler -#pragma weak dma_isr = blocking_handler -#pragma weak flasheepromat_isr = blocking_handler -#pragma weak ethernet_isr = blocking_handler -#pragma weak sdio_isr = blocking_handler -#pragma weak lcd_isr = blocking_handler -#pragma weak usb0_isr = blocking_handler -#pragma weak usb1_isr = blocking_handler -#pragma weak sct_isr = blocking_handler -#pragma weak ritimer_or_wwdt_isr = blocking_handler -#pragma weak timer0_isr = blocking_handler -#pragma weak gint1_isr = blocking_handler -#pragma weak pin_int4_isr = blocking_handler -#pragma weak timer3_isr = blocking_handler -#pragma weak mcpwm_isr = blocking_handler -#pragma weak adc0_isr = blocking_handler -#pragma weak i2c0_or_irc1_isr = blocking_handler -#pragma weak sgpio_isr = blocking_handler -#pragma weak spi_or_dac_isr = blocking_handler -#pragma weak adc1_isr = blocking_handler -#pragma weak ssp0_or_ssp1_isr = blocking_handler -#pragma weak eventrouter_isr = blocking_handler -#pragma weak usart0_isr = blocking_handler -#pragma weak uart1_isr = blocking_handler -#pragma weak usart2_or_c_can1_isr = blocking_handler -#pragma weak usart3_isr = blocking_handler -#pragma weak i2s0_or_i2s1_isr = blocking_handler -#pragma weak c_can0_isr = blocking_handler -#pragma weak spifi_or_adchs_isr = blocking_handler -#pragma weak m0sub_isr = blocking_handler - -/**@}*/ - -/* Initialization template for the interrupt vector table. This definition is - * used by the startup code generator (vector.c) to set the initial values for - * the interrupt handling routines to the chip family specific _isr weak - * symbols. */ - -#define IRQ_HANDLERS \ - [NVIC_RTC_IRQ] = rtc_isr, \ - [NVIC_M4CORE_IRQ] = m4core_isr, \ - [NVIC_DMA_IRQ] = dma_isr, \ - [NVIC_FLASHEEPROMAT_IRQ] = flasheepromat_isr, \ - [NVIC_ETHERNET_IRQ] = ethernet_isr, \ - [NVIC_SDIO_IRQ] = sdio_isr, \ - [NVIC_LCD_IRQ] = lcd_isr, \ - [NVIC_USB0_IRQ] = usb0_isr, \ - [NVIC_USB1_IRQ] = usb1_isr, \ - [NVIC_SCT_IRQ] = sct_isr, \ - [NVIC_RITIMER_OR_WWDT_IRQ] = ritimer_or_wwdt_isr, \ - [NVIC_TIMER0_IRQ] = timer0_isr, \ - [NVIC_GINT1_IRQ] = gint1_isr, \ - [NVIC_PIN_INT4_IRQ] = pin_int4_isr, \ - [NVIC_TIMER3_IRQ] = timer3_isr, \ - [NVIC_MCPWM_IRQ] = mcpwm_isr, \ - [NVIC_ADC0_IRQ] = adc0_isr, \ - [NVIC_I2C0_OR_IRC1_IRQ] = i2c0_or_irc1_isr, \ - [NVIC_SGPIO_IRQ] = sgpio_isr, \ - [NVIC_SPI_OR_DAC_IRQ] = spi_or_dac_isr, \ - [NVIC_ADC1_IRQ] = adc1_isr, \ - [NVIC_SSP0_OR_SSP1_IRQ] = ssp0_or_ssp1_isr, \ - [NVIC_EVENTROUTER_IRQ] = eventrouter_isr, \ - [NVIC_USART0_IRQ] = usart0_isr, \ - [NVIC_UART1_IRQ] = uart1_isr, \ - [NVIC_USART2_OR_C_CAN1_IRQ] = usart2_or_c_can1_isr, \ - [NVIC_USART3_IRQ] = usart3_isr, \ - [NVIC_I2S0_OR_I2S1_IRQ] = i2s0_or_i2s1_isr, \ - [NVIC_C_CAN0_IRQ] = c_can0_isr, \ - [NVIC_SPIFI_OR_ADCHS_IRQ] = spifi_or_adchs_isr, \ - [NVIC_M0SUB_IRQ] = m0sub_isr diff --git a/libopencm3/lib/lpc43xx/m0s/vector_nvic.c b/libopencm3/lib/lpc43xx/m0s/vector_nvic.c deleted file mode 100644 index 8168240..0000000 --- a/libopencm3/lib/lpc43xx/m0s/vector_nvic.c +++ /dev/null @@ -1,85 +0,0 @@ -/* This file is part of the libopencm3 project. - * - * It was generated by the irq2nvic_h script. - * - * This part needs to get included in the compilation unit where - * blocking_handler gets defined due to the way #pragma works. - */ - - -/** @defgroup CM3_nvic_isrpragmas_LPC43xx (M0SUB) User interrupt service routines (ISR) defaults for LPC 43xx series M0SUB core (rev_1_7_UM10503) - @ingroup CM3_nvic_isrpragmas - - @{*/ - -#pragma weak dac_isr = blocking_handler -#pragma weak m4core_isr = blocking_handler -#pragma weak dma_isr = blocking_handler -#pragma weak sgpio_input_isr = blocking_handler -#pragma weak sgpio_match_isr = blocking_handler -#pragma weak sgpio_shift_isr = blocking_handler -#pragma weak sgpio_pos_isr = blocking_handler -#pragma weak usb0_isr = blocking_handler -#pragma weak usb1_isr = blocking_handler -#pragma weak sct_isr = blocking_handler -#pragma weak ritimer_isr = blocking_handler -#pragma weak gint1_isr = blocking_handler -#pragma weak timer1_isr = blocking_handler -#pragma weak timer2_isr = blocking_handler -#pragma weak pin_int5_isr = blocking_handler -#pragma weak mcpwm_isr = blocking_handler -#pragma weak adc0_isr = blocking_handler -#pragma weak i2c0_isr = blocking_handler -#pragma weak i2c1_isr = blocking_handler -#pragma weak spi_isr = blocking_handler -#pragma weak adc1_isr = blocking_handler -#pragma weak ssp0_or_ssp1_isr = blocking_handler -#pragma weak eventrouter_isr = blocking_handler -#pragma weak usart0_isr = blocking_handler -#pragma weak uart1_isr = blocking_handler -#pragma weak usart2_or_c_can1_isr = blocking_handler -#pragma weak usart3_isr = blocking_handler -#pragma weak i2s0_or_i2s1_or_qei_isr = blocking_handler -#pragma weak c_can0_isr = blocking_handler -#pragma weak spifi_or_adchs_isr = blocking_handler -#pragma weak m0app_isr = blocking_handler - -/**@}*/ - -/* Initialization template for the interrupt vector table. This definition is - * used by the startup code generator (vector.c) to set the initial values for - * the interrupt handling routines to the chip family specific _isr weak - * symbols. */ - -#define IRQ_HANDLERS \ - [NVIC_DAC_IRQ] = dac_isr, \ - [NVIC_M4CORE_IRQ] = m4core_isr, \ - [NVIC_DMA_IRQ] = dma_isr, \ - [NVIC_SGPIO_INPUT_IRQ] = sgpio_input_isr, \ - [NVIC_SGPIO_MATCH_IRQ] = sgpio_match_isr, \ - [NVIC_SGPIO_SHIFT_IRQ] = sgpio_shift_isr, \ - [NVIC_SGPIO_POS_IRQ] = sgpio_pos_isr, \ - [NVIC_USB0_IRQ] = usb0_isr, \ - [NVIC_USB1_IRQ] = usb1_isr, \ - [NVIC_SCT_IRQ] = sct_isr, \ - [NVIC_RITIMER_IRQ] = ritimer_isr, \ - [NVIC_GINT1_IRQ] = gint1_isr, \ - [NVIC_TIMER1_IRQ] = timer1_isr, \ - [NVIC_TIMER2_IRQ] = timer2_isr, \ - [NVIC_PIN_INT5_IRQ] = pin_int5_isr, \ - [NVIC_MCPWM_IRQ] = mcpwm_isr, \ - [NVIC_ADC0_IRQ] = adc0_isr, \ - [NVIC_I2C0_IRQ] = i2c0_isr, \ - [NVIC_I2C1_IRQ] = i2c1_isr, \ - [NVIC_SPI_IRQ] = spi_isr, \ - [NVIC_ADC1_IRQ] = adc1_isr, \ - [NVIC_SSP0_OR_SSP1_IRQ] = ssp0_or_ssp1_isr, \ - [NVIC_EVENTROUTER_IRQ] = eventrouter_isr, \ - [NVIC_USART0_IRQ] = usart0_isr, \ - [NVIC_UART1_IRQ] = uart1_isr, \ - [NVIC_USART2_OR_C_CAN1_IRQ] = usart2_or_c_can1_isr, \ - [NVIC_USART3_IRQ] = usart3_isr, \ - [NVIC_I2S0_OR_I2S1_OR_QEI_IRQ] = i2s0_or_i2s1_or_qei_isr, \ - [NVIC_C_CAN0_IRQ] = c_can0_isr, \ - [NVIC_SPIFI_OR_ADCHS_IRQ] = spifi_or_adchs_isr, \ - [NVIC_M0APP_IRQ] = m0app_isr diff --git a/libopencm3/lib/lpc43xx/m4/vector_nvic.c b/libopencm3/lib/lpc43xx/m4/vector_nvic.c deleted file mode 100644 index fb0de13..0000000 --- a/libopencm3/lib/lpc43xx/m4/vector_nvic.c +++ /dev/null @@ -1,123 +0,0 @@ -/* This file is part of the libopencm3 project. - * - * It was generated by the irq2nvic_h script. - * - * This part needs to get included in the compilation unit where - * blocking_handler gets defined due to the way #pragma works. - */ - - -/** @defgroup CM3_nvic_isrpragmas_LPC43xx (M4) User interrupt service routines (ISR) defaults for LPC 43xx series M4 core (rev_1_7_UM10503) - @ingroup CM3_nvic_isrpragmas - - @{*/ - -#pragma weak dac_isr = blocking_handler -#pragma weak m0core_isr = blocking_handler -#pragma weak dma_isr = blocking_handler -#pragma weak flasheeprom_isr = blocking_handler -#pragma weak ethernet_isr = blocking_handler -#pragma weak sdio_isr = blocking_handler -#pragma weak lcd_isr = blocking_handler -#pragma weak usb0_isr = blocking_handler -#pragma weak usb1_isr = blocking_handler -#pragma weak sct_isr = blocking_handler -#pragma weak ritimer_isr = blocking_handler -#pragma weak timer0_isr = blocking_handler -#pragma weak timer1_isr = blocking_handler -#pragma weak timer2_isr = blocking_handler -#pragma weak timer3_isr = blocking_handler -#pragma weak mcpwm_isr = blocking_handler -#pragma weak adc0_isr = blocking_handler -#pragma weak i2c0_isr = blocking_handler -#pragma weak i2c1_isr = blocking_handler -#pragma weak spi_isr = blocking_handler -#pragma weak adc1_isr = blocking_handler -#pragma weak ssp0_isr = blocking_handler -#pragma weak ssp1_isr = blocking_handler -#pragma weak usart0_isr = blocking_handler -#pragma weak uart1_isr = blocking_handler -#pragma weak usart2_isr = blocking_handler -#pragma weak usart3_isr = blocking_handler -#pragma weak i2s0_isr = blocking_handler -#pragma weak i2s1_isr = blocking_handler -#pragma weak spifi_isr = blocking_handler -#pragma weak sgpio_isr = blocking_handler -#pragma weak pin_int0_isr = blocking_handler -#pragma weak pin_int1_isr = blocking_handler -#pragma weak pin_int2_isr = blocking_handler -#pragma weak pin_int3_isr = blocking_handler -#pragma weak pin_int4_isr = blocking_handler -#pragma weak pin_int5_isr = blocking_handler -#pragma weak pin_int6_isr = blocking_handler -#pragma weak pin_int7_isr = blocking_handler -#pragma weak gint0_isr = blocking_handler -#pragma weak gint1_isr = blocking_handler -#pragma weak eventrouter_isr = blocking_handler -#pragma weak c_can1_isr = blocking_handler -#pragma weak adchs_isr = blocking_handler -#pragma weak atimer_isr = blocking_handler -#pragma weak rtc_isr = blocking_handler -#pragma weak wwdt_isr = blocking_handler -#pragma weak m0sub_isr = blocking_handler -#pragma weak c_can0_isr = blocking_handler -#pragma weak qei_isr = blocking_handler - -/**@}*/ - -/* Initialization template for the interrupt vector table. This definition is - * used by the startup code generator (vector.c) to set the initial values for - * the interrupt handling routines to the chip family specific _isr weak - * symbols. */ - -#define IRQ_HANDLERS \ - [NVIC_DAC_IRQ] = dac_isr, \ - [NVIC_M0CORE_IRQ] = m0core_isr, \ - [NVIC_DMA_IRQ] = dma_isr, \ - [NVIC_FLASHEEPROM_IRQ] = flasheeprom_isr, \ - [NVIC_ETHERNET_IRQ] = ethernet_isr, \ - [NVIC_SDIO_IRQ] = sdio_isr, \ - [NVIC_LCD_IRQ] = lcd_isr, \ - [NVIC_USB0_IRQ] = usb0_isr, \ - [NVIC_USB1_IRQ] = usb1_isr, \ - [NVIC_SCT_IRQ] = sct_isr, \ - [NVIC_RITIMER_IRQ] = ritimer_isr, \ - [NVIC_TIMER0_IRQ] = timer0_isr, \ - [NVIC_TIMER1_IRQ] = timer1_isr, \ - [NVIC_TIMER2_IRQ] = timer2_isr, \ - [NVIC_TIMER3_IRQ] = timer3_isr, \ - [NVIC_MCPWM_IRQ] = mcpwm_isr, \ - [NVIC_ADC0_IRQ] = adc0_isr, \ - [NVIC_I2C0_IRQ] = i2c0_isr, \ - [NVIC_I2C1_IRQ] = i2c1_isr, \ - [NVIC_SPI_IRQ] = spi_isr, \ - [NVIC_ADC1_IRQ] = adc1_isr, \ - [NVIC_SSP0_IRQ] = ssp0_isr, \ - [NVIC_SSP1_IRQ] = ssp1_isr, \ - [NVIC_USART0_IRQ] = usart0_isr, \ - [NVIC_UART1_IRQ] = uart1_isr, \ - [NVIC_USART2_IRQ] = usart2_isr, \ - [NVIC_USART3_IRQ] = usart3_isr, \ - [NVIC_I2S0_IRQ] = i2s0_isr, \ - [NVIC_I2S1_IRQ] = i2s1_isr, \ - [NVIC_SPIFI_IRQ] = spifi_isr, \ - [NVIC_SGPIO_IRQ] = sgpio_isr, \ - [NVIC_PIN_INT0_IRQ] = pin_int0_isr, \ - [NVIC_PIN_INT1_IRQ] = pin_int1_isr, \ - [NVIC_PIN_INT2_IRQ] = pin_int2_isr, \ - [NVIC_PIN_INT3_IRQ] = pin_int3_isr, \ - [NVIC_PIN_INT4_IRQ] = pin_int4_isr, \ - [NVIC_PIN_INT5_IRQ] = pin_int5_isr, \ - [NVIC_PIN_INT6_IRQ] = pin_int6_isr, \ - [NVIC_PIN_INT7_IRQ] = pin_int7_isr, \ - [NVIC_GINT0_IRQ] = gint0_isr, \ - [NVIC_GINT1_IRQ] = gint1_isr, \ - [NVIC_EVENTROUTER_IRQ] = eventrouter_isr, \ - [NVIC_C_CAN1_IRQ] = c_can1_isr, \ - [NVIC_ADCHS_IRQ] = adchs_isr, \ - [NVIC_ATIMER_IRQ] = atimer_isr, \ - [NVIC_RTC_IRQ] = rtc_isr, \ - [NVIC_WWDT_IRQ] = wwdt_isr, \ - [NVIC_M0SUB_IRQ] = m0sub_isr, \ - [NVIC_C_CAN0_IRQ] = c_can0_isr, \ - [NVIC_QEI_IRQ] = qei_isr