serial basically working
This commit is contained in:
parent
966f104597
commit
f4a6ea896f
10 changed files with 3970 additions and 3306 deletions
|
|
@ -22,16 +22,22 @@
|
|||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
|
||||
volatile uint16_t adc_buf[100]; /* 100ms worth of data */
|
||||
uint32_t usart_overruns = 0;
|
||||
static struct __attribute__((__packed__)) hl_adc_pkt {
|
||||
struct ll_pkt ll;
|
||||
uint16_t seq;
|
||||
volatile uint16_t data[32];
|
||||
} adc_pkt[2];
|
||||
static uint16_t current_seq = 0;
|
||||
static int current_buf = 0;
|
||||
|
||||
static void adc_dma_init(int burstlen);
|
||||
static void adc_dma_init(void);
|
||||
static void adc_timer_init(int psc, int ivl);
|
||||
static void adc_dma_launch(void);
|
||||
|
||||
|
||||
/* Mode that can be used for debugging */
|
||||
void adc_configure_scope_mode(int sampling_interval_ns) {
|
||||
adc_dma_init(sizeof(adc_buf)/sizeof(adc_buf[0]));
|
||||
adc_dma_init();
|
||||
|
||||
/* Clock from PCLK/4 instead of the internal exclusive high-speed RC oscillator. */
|
||||
ADC1->CFGR2 = (2<<ADC_CFGR2_CKMODE_Pos); /* Use PCLK/4=12MHz */
|
||||
|
|
@ -59,24 +65,28 @@ void adc_configure_scope_mode(int sampling_interval_ns) {
|
|||
adc_timer_init(12/*250ns/tick*/, cycles);
|
||||
}
|
||||
|
||||
static void adc_dma_init(int burstlen) {
|
||||
static void adc_dma_init() {
|
||||
/* Configure DMA 1 Channel 1 to get rid of all the data */
|
||||
DMA1_Channel1->CPAR = (unsigned int)&ADC1->DR;
|
||||
DMA1_Channel1->CMAR = (unsigned int)&adc_buf;
|
||||
DMA1_Channel1->CNDTR = burstlen;
|
||||
DMA1_Channel1->CCR = (0<<DMA_CCR_PL_Pos);
|
||||
DMA1_Channel1->CCR |=
|
||||
DMA_CCR_CIRC /* circular mode so we can leave it running indefinitely */
|
||||
| (1<<DMA_CCR_MSIZE_Pos) /* 16 bit */
|
||||
(1<<DMA_CCR_MSIZE_Pos) /* 16 bit */
|
||||
| (1<<DMA_CCR_PSIZE_Pos) /* 16 bit */
|
||||
| DMA_CCR_MINC
|
||||
| DMA_CCR_HTIE /* Enable half-transfer interrupt. */
|
||||
| DMA_CCR_TCIE; /* Enable transfer complete interrupt. */
|
||||
|
||||
/* triggered on half-transfer and on transfer completion. We use this to send out the ADC data and to trap into GDB. */
|
||||
NVIC_EnableIRQ(DMA1_Channel1_IRQn);
|
||||
NVIC_SetPriority(DMA1_Channel1_IRQn, 3<<5);
|
||||
NVIC_SetPriority(DMA1_Channel1_IRQn, 2<<5);
|
||||
|
||||
adc_dma_launch();
|
||||
}
|
||||
|
||||
void adc_dma_launch() {
|
||||
DMA1_Channel1->CCR &= ~DMA_CCR_EN; /* Disable channel */
|
||||
current_buf = !current_buf;
|
||||
DMA1_Channel1->CMAR = (unsigned int)&(adc_pkt[current_buf].data);
|
||||
DMA1_Channel1->CNDTR = ARRAY_LEN(adc_pkt[current_buf].data);
|
||||
DMA1_Channel1->CCR |= DMA_CCR_EN; /* Enable channel */
|
||||
}
|
||||
|
||||
|
|
@ -103,18 +113,13 @@ void DMA1_Channel1_IRQHandler(void) {
|
|||
uint32_t isr = DMA1->ISR;
|
||||
/* Clear the interrupt flag */
|
||||
DMA1->IFCR |= DMA_IFCR_CGIF1;
|
||||
adc_dma_launch();
|
||||
|
||||
gdb_dump();
|
||||
static_assert(ARRAY_LEN(adc_buf) % 2 == 0, "ADC_BUFSIZE must be even for half-transfer uart tx logic to work");
|
||||
|
||||
int rc;
|
||||
if (isr & DMA_ISR_HTIF2) /* half-transfer */
|
||||
rc = usart_send_packet_nonblocking((uint8_t *)adc_buf, sizeof(adc_buf)/2);
|
||||
else /* end of transfer */
|
||||
rc = usart_send_packet_nonblocking((uint8_t *)adc_buf + ARRAY_LEN(adc_buf)/2, sizeof(adc_buf)/2);
|
||||
|
||||
if (rc)
|
||||
usart_overruns++;
|
||||
adc_pkt[!current_buf].seq = current_seq++;
|
||||
/* Ignore return value since we can't do anything here. Overruns are logged in serial.c. */
|
||||
usart_send_packet_nonblocking(&adc_pkt[!current_buf].ll, sizeof(adc_pkt[!current_buf]));
|
||||
|
||||
/*
|
||||
static int debug_buf_pos = 0;
|
||||
|
|
|
|||
79
gm_platform/fw/crctest.py
Normal file
79
gm_platform/fw/crctest.py
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
custom_crc_table = {}
|
||||
|
||||
def generate_crc32_table(_poly):
|
||||
|
||||
global custom_crc_table
|
||||
|
||||
for i in range(256):
|
||||
c = i << 24
|
||||
|
||||
for j in range(8):
|
||||
c = (c << 1) ^ _poly if (c & 0x80000000) else c << 1
|
||||
|
||||
custom_crc_table[i] = c & 0xffffffff
|
||||
|
||||
|
||||
def crc32_stm(bytes_arr):
|
||||
|
||||
length = len(bytes_arr)
|
||||
crc = 0xffffffff
|
||||
|
||||
k = 0
|
||||
while length >= 4:
|
||||
|
||||
v = ((bytes_arr[k] << 24) & 0xFF000000) | ((bytes_arr[k+1] << 16) & 0xFF0000) | \
|
||||
((bytes_arr[k+2] << 8) & 0xFF00) | (bytes_arr[k+3] & 0xFF)
|
||||
|
||||
crc = ((crc << 8) & 0xffffffff) ^ custom_crc_table[0xFF & ((crc >> 24) ^ v)]
|
||||
crc = ((crc << 8) & 0xffffffff) ^ custom_crc_table[0xFF & ((crc >> 24) ^ (v >> 8))]
|
||||
crc = ((crc << 8) & 0xffffffff) ^ custom_crc_table[0xFF & ((crc >> 24) ^ (v >> 16))]
|
||||
crc = ((crc << 8) & 0xffffffff) ^ custom_crc_table[0xFF & ((crc >> 24) ^ (v >> 24))]
|
||||
|
||||
k += 4
|
||||
length -= 4
|
||||
|
||||
if length > 0:
|
||||
v = 0
|
||||
|
||||
for i in range(length):
|
||||
v |= (bytes_arr[k+i] << 24-i*8)
|
||||
|
||||
if length == 1:
|
||||
v &= 0xFF000000
|
||||
|
||||
elif length == 2:
|
||||
v &= 0xFFFF0000
|
||||
|
||||
elif length == 3:
|
||||
v &= 0xFFFFFF00
|
||||
|
||||
crc = (( crc << 8 ) & 0xffffffff) ^ custom_crc_table[0xFF & ( (crc >> 24) ^ (v ) )];
|
||||
crc = (( crc << 8 ) & 0xffffffff) ^ custom_crc_table[0xFF & ( (crc >> 24) ^ (v >> 8) )];
|
||||
crc = (( crc << 8 ) & 0xffffffff) ^ custom_crc_table[0xFF & ( (crc >> 24) ^ (v >> 16) )];
|
||||
crc = (( crc << 8 ) & 0xffffffff) ^ custom_crc_table[0xFF & ( (crc >> 24) ^ (v >> 24) )];
|
||||
|
||||
return crc
|
||||
|
||||
poly = 0x04C11DB7
|
||||
buf = bytes(reversed([1, 2, 3, 4]))
|
||||
|
||||
generate_crc32_table(poly)
|
||||
print(hex(crc32_stm(bytearray(buf))))
|
||||
|
||||
from crccheck import crc
|
||||
import struct
|
||||
|
||||
def rev_bits_in_word(w):
|
||||
return sum( ((w>>i)&1) << (31-i) for i in range(32) )
|
||||
|
||||
import zlib
|
||||
def crc32stm(inbytes):
|
||||
crc32 = crc.Crc32.calc(inbytes)^0xffffffff
|
||||
#crc32 = zlib.crc32(inbytes)^0xffffffff
|
||||
crc32 = rev_bits_in_word(crc32)
|
||||
return crc32
|
||||
|
||||
#data = [0x80,0x40,0xc0,0x20]
|
||||
data = [0x00, 0, 0, 0x80, 0, 0, 0, 0x80]
|
||||
print(hex(crc32stm(bytes(data))))
|
||||
print(hex(zlib.crc32(bytes([0, 0, 0, 1]))^0xffffffff))
|
||||
Binary file not shown.
|
|
@ -30,7 +30,7 @@ volatile union {
|
|||
struct {
|
||||
unsigned int usb, ocxo, error, _nc1, _nc2, _nc3, pps, sd_card;
|
||||
};
|
||||
unsigned int arr[0];
|
||||
unsigned int arr[8];
|
||||
} leds;
|
||||
|
||||
int main(void) {
|
||||
|
|
@ -47,7 +47,7 @@ int main(void) {
|
|||
NVIC_SetPriority(SysTick_IRQn, 3<<5);
|
||||
|
||||
/* Turn on lots of neat things */
|
||||
RCC->AHBENR |= RCC_AHBENR_DMAEN | RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN | RCC_AHBENR_FLITFEN;
|
||||
RCC->AHBENR |= RCC_AHBENR_DMAEN | RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN | RCC_AHBENR_FLITFEN | RCC_AHBENR_CRCEN;
|
||||
RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN | RCC_APB2ENR_ADCEN | RCC_APB2ENR_SPI1EN | RCC_APB2ENR_DBGMCUEN |\
|
||||
RCC_APB2ENR_TIM1EN | RCC_APB2ENR_TIM16EN | RCC_APB2ENR_USART1EN;
|
||||
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,15 +1,15 @@
|
|||
:020000040800F2
|
||||
:10000000001000205519000885040008910400081C
|
||||
:1000000000100020FD1B0008850400089104000872
|
||||
:1000100000000000000000000000000000000000E0
|
||||
:10002000000000000000000000000000950400082F
|
||||
:100030000000000000000000A1040008AD0400085A
|
||||
:10004000A119000800000000A1190008A11900086A
|
||||
:10005000A1190008A1190008A1190008A119000898
|
||||
:100060000000000063070008A90A0008A1190008A1
|
||||
:10007000A1190008A1190008A1190008000000003A
|
||||
:10008000A11900080000000000000000A1190008EC
|
||||
:1000900000000000C9030008A1190008A119000808
|
||||
:1000A000000000009D03000800000000A1190008E6
|
||||
:10004000491C000800000000491C0008491C000869
|
||||
:10005000491C0008491C0008491C0008491C0008EC
|
||||
:10006000000000009B070008D10C0008491C000894
|
||||
:10007000491C0008491C0008491C00080000000039
|
||||
:10008000491C00080000000000000000491C000896
|
||||
:1000900000000000C9030008491C0008491C0008B2
|
||||
:1000A000000000009D03000800000000290A00086D
|
||||
:1000B0000000000000000000000000000000000040
|
||||
:1000C00080B582B000AF0200FB1D1A70FB1D1B78CB
|
||||
:1000D0001A001F231A40044B012191400A001A60A4
|
||||
|
|
@ -38,8 +38,8 @@
|
|||
:100240004B490A405A60494B5A68484B8821490338
|
||||
:100250000A435A60454B1A68444B802149040A43BB
|
||||
:100260001A60C046414B1A6880239B041340F9D0A2
|
||||
:100270003E4B5A683D4B02210A435A6000F072FE21
|
||||
:100280003C4B1B680A21180001F0EEF9030018002E
|
||||
:100270003E4B5A683D4B02210A435A6000F0C6FFCC
|
||||
:100280003C4B1B680A21180001F042FB03001800D8
|
||||
:10029000FFF79AFF01235B421800FFF711FF0123CC
|
||||
:1002A0005B4260211800FFF721FF304B5A692F4B4A
|
||||
:1002B00031490A435A612D4B9A692C4B2F490A4305
|
||||
|
|
@ -53,8 +53,8 @@
|
|||
:10033000DDFE174B00225A60154B0122DA60144B88
|
||||
:100340002F229A62124B134ADA62114B01221A6071
|
||||
:100350001520FFF7B5FE40211520FFF7C7FE0E4B15
|
||||
:10036000180000F045F900F0CDFAFEE70010024059
|
||||
:100370000CF8C3FF0000002011000600015A4200E3
|
||||
:10036000180000F045F900F0F5FAFEE70010024031
|
||||
:100370000CF8C3FF0000002051000600015A4200A3
|
||||
:1003800070A92800808A080000040048003001405D
|
||||
:1003900000440140E703000040420F0080B500AF79
|
||||
:1003A000084B9B680222134009D09023DB050822EA
|
||||
|
|
@ -70,14 +70,14 @@
|
|||
:1004400011600A2B10D10C4B00221A600B4AFB1DC5
|
||||
:100450001B7813700A4B5A68094B80210A435A6073
|
||||
:100460009023DB0508229A62C046BD4602B080BDDB
|
||||
:1004700000440140B0000020980000200C300140F2
|
||||
:100470000044014078010020980000200C30014029
|
||||
:100480000030014080B500AF00BEC046BD4680BD13
|
||||
:1004900000BEC04680B500AF00BEC046BD4680BDB0
|
||||
:1004A00080B500AF00BEC046BD4680BD80B500AF80
|
||||
:1004B0000A4B1B68591C094A11600A2B0AD1074BC9
|
||||
:1004C00000221A60064B1B685A1C054B1A60054B2C
|
||||
:1004D00064229A61C046BD4680BDC0469C00002093
|
||||
:1004E00094000020B000002080B582B000AF020070
|
||||
:1004E000940000207801002080B582B000AF0200A7
|
||||
:1004F000FB1D1A70FB1D1B781A001F231A40044BAA
|
||||
:10050000012191400A001A60C046BD4602B080BD7C
|
||||
:1005100000E100E090B583B000AF02003960FB1D40
|
||||
|
|
@ -94,332 +94,375 @@
|
|||
:1005C000FB1D1B78180003230340DB009A400748FB
|
||||
:1005D000FB1D1B785BB29B080A43C0339B001A507B
|
||||
:1005E000C046BD4603B090BD00ED00E000E100E074
|
||||
:1005F00080B584B000AF7860202000F04BF8214B2C
|
||||
:10060000802212061A611F4B07225A611D4B1E4A97
|
||||
:10061000DA601C4B04229A621A4B9A68194B8021AB
|
||||
:1006200009060A439A60C046164B9B68002BFBDB09
|
||||
:10063000144B9A68134B01210A439A60114B9A6834
|
||||
:10064000104B04210A439A607B68104A934206DDEE
|
||||
:100650007B68FA21180001F091F8030000E00623FE
|
||||
:10066000FB60FA6880235B029A4201DB084BFB6067
|
||||
:10067000FB6819000C2000F03DF8C046BD4604B0F0
|
||||
:1006800080BDC0460024014043080000DC05000096
|
||||
:10069000FFFF000080B582B000AF7860114B124AB6
|
||||
:1006A0009A60104B114ADA600E4B7A685A600D4B13
|
||||
:1006B00000221A600B4B1A680A4B0D490A431A6054
|
||||
:1006C0000920FFF711FF60210920FFF723FF054BE9
|
||||
:1006D0001A68044B01210A431A60C046BD4602B0A5
|
||||
:1006E00080BDC0460800024040240140D0000020E8
|
||||
:1006F000A605000080B582B000AF78603960154B68
|
||||
:10070000802212025A64134BC022D201DA61114BCB
|
||||
:10071000802252011A620F4B01221A647B685A1E12
|
||||
:100720000C4B9A623B685A1E0A4BDA62094B5A69B3
|
||||
:10073000084B01210A435A61064B80221A60054B7F
|
||||
:100740001A68044B01210A431A60C046BD4602B034
|
||||
:1007500080BDC046002C014080B500AFC046BD46FC
|
||||
:1007600080BD80B582B000AF144B1B683B60134B5B
|
||||
:100770005A68124B01210A435A60FFF7EDFF3B68AC
|
||||
:100780004022134007D00E4B2021180000F0C6F97C
|
||||
:1007900003007B6006E00B4B2021180000F0BEF93F
|
||||
:1007A00003007B607B68002B04D0074B1B685A1C3E
|
||||
:1007B000054B1A60C046BD4602B080BD0000024035
|
||||
:1007C000D0000020E0000020A000002080B582B012
|
||||
:1007D00000AF0200FB1D1A70FB1D1B781A001F23BF
|
||||
:1007E0001A40044B012191400A001A60C046BD46E0
|
||||
:1007F00002B080BD00E100E080B582B000AF020031
|
||||
:10080000FB1D1A70FB1D1B781A001F23134005499E
|
||||
:1008100001229A40130080228B50C046BD4602B090
|
||||
:1008200080BDC04600E100E090B583B000AF02009B
|
||||
:100830003960FB1D1A70FB1D1B787F2B32D92F4AA4
|
||||
:10084000FB1D1B7819000F230B40083B9B08063348
|
||||
:100850009B00D31804331B68FA1D12781100032281
|
||||
:100860000A40D200FF2191400A00D2431A401100F1
|
||||
:100870003B689B01FF221A40FB1D1B7818000323D5
|
||||
:100880000340DB009A401D48FB1D1B781C000F2312
|
||||
:100890002340083B9B080A4306339B00C3180433DC
|
||||
:1008A0001A6027E0164AFB1D1B785BB29B08C03319
|
||||
:1008B0009B009B58FA1D1278110003220A40D200B7
|
||||
:1008C000FF2191400A00D2431A4011003B689B016E
|
||||
:1008D000FF221A40FB1D1B78180003230340DB0096
|
||||
:1008E0009A400748FB1D1B785BB29B080A43C03344
|
||||
:1008F0009B001A50C046BD4603B090BD00ED00E01D
|
||||
:1009000000E100E080B500AF194B012252421A60AD
|
||||
:10091000174B00225A60164B00229A60154B164A5C
|
||||
:100920009A60144B92221A600A20FFF74FFF202191
|
||||
:100930000A20FFF779FF114B114A1A600F4B602212
|
||||
:10094000DA600E4BC022DA600C4BC02292025A6071
|
||||
:100950000A4B9A68094B80210A439A60074B1A6830
|
||||
:10096000064B01210A431A60C046BD4680BDC04601
|
||||
:10097000100100201C0002402838014000380140CE
|
||||
:100980002C20000080B584B000AF194BBB60BB6861
|
||||
:100990005B687B60BB689B687A689A4205D2BB68DB
|
||||
:1009A0009A687B68D31AFB6004E07B688022D200DF
|
||||
:1009B000D31AFB60BB687A681A607A68FB68D31840
|
||||
:1009C0009B059A0DBB685A60BB680C331A007B68A4
|
||||
:1009D000D218084BDA60074BFA685A60054B1A6860
|
||||
:1009E000044B01210A431A60C046BD4604B080BDD5
|
||||
:1009F000100100201C00024080B582B000AF78607A
|
||||
:100A00000A00FB1C1A700A20FFF7F6FE7B689A6842
|
||||
:100A10007B681B689A4205D10A20FFF7D7FE102396
|
||||
:100A20005B4211E07B689B687A68D318FA1C1278E5
|
||||
:100A30001A737B689B6801339B059A0D7B689A60EB
|
||||
:100A40000A20FFF7C3FE00231800BD4602B080BD98
|
||||
:100A500080B582B000AF0200FB1D1A70C046FB1DBE
|
||||
:100A60001A78064B11001800FFF7C6FF0300103379
|
||||
:100A7000F5D000231800BD4602B080BD1001002053
|
||||
:100A800080B582B000AF0200FB1D1A70FB1D1A7802
|
||||
:100A9000044B11001800FFF7AFFF03001800BD461C
|
||||
:100AA00002B080BD1001002080B500AF0B4B5A682A
|
||||
:100AB0000A4B20210A435A60094B1A68084B01214E
|
||||
:100AC0008A431A60074B9A68064B5B689A4201D0CA
|
||||
:100AD000FFF758FFC046BD4680BDC046000002403B
|
||||
:100AE0001C0002401001002080B582B000AF786089
|
||||
:100AF00039603A687968074B180000F09CF8064B9B
|
||||
:100B00001B680122134001D1FFF73CFFC046BD46E0
|
||||
:100B100002B080BD510A00081C00024080B584B0BC
|
||||
:100B200000AF786039600023FB600BE00E4B1B7850
|
||||
:100B30005A1CD1B20C4A11701800FFF7A1FFFB68D4
|
||||
:100B40000133FB60FA68AF235B009A42EED9074B92
|
||||
:100B50001B680122134001D1FFF714FF0023180086
|
||||
:100B6000BD4604B080BDC046A40000201C00024069
|
||||
:100B700080B588B000AFF860B9607A603B60BA6851
|
||||
:100B800080235B029A4202D23B68FE2B02D90123EA
|
||||
:100B90005B424CE03B680233BA689A4202D20123BE
|
||||
:100BA0005B4244E00023FB6136E0FB69002B0FD081
|
||||
:100BB000FB69013B7A68D3181B78002B08D0FB69CE
|
||||
:100BC000013B7A68D2181B23FB1812781A7019E0BF
|
||||
:100BD000FB697B6102E07B6901337B617A693B6879
|
||||
:100BE0009A4205D27A687B69D3181B78002BF2D120
|
||||
:100BF0007B69DAB2FB69DBB2D31ADAB21B23FB18CA
|
||||
:100C000001321A70FA68FB69D3181B22BA181278DD
|
||||
:100C10001A70FB690133FB61FA693B689A42C4D9D7
|
||||
:100C2000FA68FB69D31800221A703B680233180077
|
||||
:100C3000BD4608B080BD80B58AB000AFF860B9602D
|
||||
:100C40007A607B68FE2B02D901235B424EE00023D1
|
||||
:100C50007B623CE07B6A002B0FD07B6A013BBA6869
|
||||
:100C6000D3181B78002B08D07B6A013BBA68D218D6
|
||||
:100C70002323FB1812781A7019E07B6AFB6102E0EB
|
||||
:100C8000FB690133FB61FA697B689A4205D2BA6855
|
||||
:100C9000FB69D3181B78002BF2D1FB69DAB27B6AAF
|
||||
:100CA000DBB2D31ADAB22323FB1801321A702323E2
|
||||
:100CB000FB181A78FB681000984703007B617B697A
|
||||
:100CC000002B01D07B6911E07B6A01337B627A6A79
|
||||
:100CD0007B689A42BED9FB68002098470300BB613D
|
||||
:100CE000BB69002B01D0BB6900E000231800BD46A2
|
||||
:100CF0000AB080BD80B588B000AFF860B9607A6096
|
||||
:100D00003B60BA6880235B029A4204D23A6880232F
|
||||
:100D10005B029A4202D301235B4252E03B68002B04
|
||||
:100D200002D101235B424CE0BA683B689A4202D28E
|
||||
:100D300001235B4245E00123FB617B681B78BB61BB
|
||||
:100D4000BB69002B24D102235B423AE0BB69013B23
|
||||
:100D5000BB61BB69002B09D17A68FB69D3181B788A
|
||||
:100D6000BB611723FB1800221A7006E07A68FB6942
|
||||
:100D7000D2181723FB1812781A70FB69013BFA6826
|
||||
:100D8000D3181722BA1812781A70FB690133FB6165
|
||||
:100D9000FA693B689A4205D27A68FB69D3181B78D6
|
||||
:100DA000002BD3D1FA693B689A4202D102235B42FD
|
||||
:100DB00007E0BB69012B02D003235B4201E0FB6922
|
||||
:100DC000013B1800BD4608B080BD80B582B000AFC1
|
||||
:100DD00078607B6800221A607B6800225A60C046F7
|
||||
:100DE000BD4602B080BD80B588B000AFF860B96084
|
||||
:100DF0007A601A00FB1C1A70FB681B68002B0ED16E
|
||||
:100E0000FB1C1B78002B54D0FB1C1A78FB685A6023
|
||||
:100E1000FB681B685A1CFB681A60002350E0FB1C2F
|
||||
:100E20001B78002B0DD1FB685B68012B39D1FB6867
|
||||
:100E30001B68013B7B61FB681800FFF7C6FF7B69FD
|
||||
:100E40003EE0FB685B685A1EFB685A60FB685B68A3
|
||||
:100E5000002B08D1FB1C1A78FB685A601F23FB1873
|
||||
:100E600000221A7004E01F23FB18FA1C12781A7073
|
||||
:100E7000FB681B68013BBB61BA697B689A4202D37D
|
||||
:100E800002235B421CE0BA68BB69D3181F22BA1860
|
||||
:100E900012781A70FB681B685A1CFB681A600023E2
|
||||
:100EA0000EE0C046FB681800FFF78FFF01235B428E
|
||||
:100EB00006E0C046FB681800FFF787FF03235B428C
|
||||
:100EC0001800BD4608B080BDBC1900080000002015
|
||||
:100ED00094000020940000201C05002080B500AF85
|
||||
:100EE0001A4B1A68194B01210A431A60174B5A68AA
|
||||
:100EF000164B17490A405A60144B1A68134B154990
|
||||
:100F00000A401A60114B1A68104B13490A401A60C4
|
||||
:100F10000E4B5A680D4B11490A405A600B4BDA6A66
|
||||
:100F20000A4B0F218A43DA62084B1A6B074B0C49B4
|
||||
:100F30000A401A63054B5A6B044B01218A435A63DA
|
||||
:100F4000024B00229A60C046BD4680BD00100240A0
|
||||
:100F50000CB8FF08FFFFF6FEFFFFFBFFFFFFC0FF1F
|
||||
:100F6000ECFEFFFF80B584B000AF0023FB600023E0
|
||||
:100F7000BB6000237B6000233B60314B5B680C222D
|
||||
:100F80001340FB60FB68082B11D0FB68082B41D88D
|
||||
:100F9000FB68002B03D0FB68042B04D03AE0294BFC
|
||||
:100FA000294A1A603AE0274B274A1A6036E0244B58
|
||||
:100FB0005A68F0239B031340BB60214B5A6880237F
|
||||
:100FC0005B0213407B60BB689B0C0233BB601C4B15
|
||||
:100FD000DB6A0F22134001333B607A6880235B0297
|
||||
:100FE0009A420AD13968184800F03EFB03001A0003
|
||||
:100FF000BB685A43134B1A6010E0B9680A005201EB
|
||||
:10100000521A93019B1ADB005B181B021A000D4B4E
|
||||
:101010001A6003E00B4B0C4A1A60C046084B5B6831
|
||||
:101020001B090F221340094AD35CFB60054B1A6869
|
||||
:10103000FB68DA40034B1A60C046BD4604B080BD71
|
||||
:10104000001002400000002000127A00A4190008DD
|
||||
:1010500080B500AF044B1A68034B8021C9020A43D4
|
||||
:101060001A60C046BD4680BD0010024080B500AF8A
|
||||
:10107000044B1A68034B04490A401A60C046BD4637
|
||||
:1010800080BDC04600100240FFFFFBFF80B500AFEF
|
||||
:10109000044B1A68034B802149020A431A60C04678
|
||||
:1010A000BD4680BD0010024080B500AF064B1A68F7
|
||||
:1010B00080239B021340054A944663445A4253419D
|
||||
:1010C000DBB21800BD4680BD001002400000FEFFEC
|
||||
:1010D00080B500AF044B1A68034B01210A431A6024
|
||||
:1010E000C046BD4680BDC0460010024080B500AF7E
|
||||
:1010F000054B1B6802221340023B5A425341DBB2AC
|
||||
:101100001800BD4680BDC0460010024080B582B0C8
|
||||
:1011100000AF7860064B5B68032293431900044BD1
|
||||
:101120007A680A435A60C046BD4602B080BDC046D8
|
||||
:101130000010024080B500AF034B5B680C221340E7
|
||||
:101140001800BD4680BDC0460010024080B582B088
|
||||
:1011500000AF7860064B5B68F02293431900044BA4
|
||||
:101160007A680A435A60C046BD4602B080BDC04698
|
||||
:101170000010024080B582B000AF7860064B5B681B
|
||||
:10118000064A13401900044B7A680A435A60C04665
|
||||
:10119000BD4602B080BDC04600100240FFF8FFFF10
|
||||
:1011A00080B500AF044B1A68034B802149040A4301
|
||||
:1011B0001A60C046BD4680BD0010024080B500AF39
|
||||
:1011C000074B1A6880239B041340FE2212069446A4
|
||||
:1011D00063445A425341DBB21800BD4680BDC0464D
|
||||
:1011E0000010024080B582B000AF786039600E4BCD
|
||||
:1011F0005B680E4A134019007A6880235B021A402C
|
||||
:101200003B681A43084B0A435A60074BDB6A0F22BC
|
||||
:10121000934319007B680F221A40034B0A43DA629A
|
||||
:10122000C046BD4602B080BD00100240FFFFC2FFB5
|
||||
:1012300080B582B000AF786039603968786800F0B6
|
||||
:1012400013FA03001A00064B013A5A60044B0022BD
|
||||
:101250009A60034B05221A60C046BD4602B080BDAD
|
||||
:1012600010E000E080B582B000AF7860064B1B68EC
|
||||
:10127000012293431900044B7A680A431A60C0465E
|
||||
:10128000BD4602B080BDC0460020024080B500AF20
|
||||
:10129000034B1B68012213401800BD4680BDC046A9
|
||||
:1012A0000020024080B582B000AF7860FA239A0037
|
||||
:1012B0007B6811001800FFF7BBFFC046BD4602B0B7
|
||||
:1012C00080BD80B584B000AF78600E4B1B68FB60BA
|
||||
:1012D000FB687B6801330CD07B6801337B6008E0DE
|
||||
:1012E000084B1A6880235B02134002D07B68013BE5
|
||||
:1012F0007B607B68002BF3D1C046C046BD4604B07E
|
||||
:1013000080BDC04610E000E080B582B000AF7860DC
|
||||
:10131000034B7A681A60C046BD4602B080BDC04625
|
||||
:101320000000002090B585B000AF786039600F23D1
|
||||
:10133000FB1801221A700023BB6000F0D4F80300F0
|
||||
:10134000012B28D17B6801225A607B68174A19005B
|
||||
:10135000100000F0ABF80300BB60FFF7C7FE03000E
|
||||
:10136000012B07D0FFF7B4FEC046FFF7BFFE030016
|
||||
:10137000012BFAD17B681B6819000020FFF732FFB0
|
||||
:101380000F23FC183A68BB681100180000F0BEF883
|
||||
:101390000300237003E00F23FB1800221A700F23B1
|
||||
:1013A000FB181B781800BD4605B090BD00127A00EE
|
||||
:1013B00090B587B000AFF860B9607A603B601723E2
|
||||
:1013C000FB1801221A7000233B6100F08CF8030027
|
||||
:1013D000012B32D17A68FB681100180000F066F822
|
||||
:1013E00003003B61FFF760FE0300012B0FD0BB68D9
|
||||
:1013F000012B02D1FFF72CFE01E0FFF737FEFFF7CC
|
||||
:1014000045FEC046FFF750FE0300012BFAD17B6872
|
||||
:101410005B68802252021A437B681B681900100027
|
||||
:10142000FFF7E0FE1723FC183A683B69110018002B
|
||||
:1014300000F06CF80300237003E01723FB18002270
|
||||
:101440001A701723FB181B781800BD4607B090BD13
|
||||
:1014500080B584B000AF78600F217B1801221A702C
|
||||
:101460000023BB607B68002B03D17B1800221A701D
|
||||
:1014700013E07B680C4A934201D90123BB60BB682F
|
||||
:101480001800FFF7EFFEFFF701FF0200BB68934271
|
||||
:1014900003D00F23FB1800221A700F23FB181B78B0
|
||||
:1014A0001800BD4604B080BD00366E0180B584B022
|
||||
:1014B00000AF786039600023FB603B685B680133F4
|
||||
:1014C0001900786800F0D0F8030019003B681B6829
|
||||
:1014D0009B0C0F22134002334B43FB60FB68180048
|
||||
:1014E000BD4604B080BD80B582B000AFFB1D0122B7
|
||||
:1014F0001A70FFF763FE031E02D0FB1D00221A7054
|
||||
:10150000FB1D1B781800BD4602B080BD90B585B0AC
|
||||
:1015100000AF786039600F203B1801221A70002359
|
||||
:10152000BB602E4B1A683B681B681B090F210B40E0
|
||||
:101530002B49CB5C9A401300BB60BA687B689A4227
|
||||
:1015400006D23C187B681800FFF782FF0300237067
|
||||
:101550000F23FB181B78012B1AD1FFF721FEC04681
|
||||
:10156000FFF72CFE0300012BFAD13B681B68180023
|
||||
:10157000FFF7ECFD0220FFF7C9FDC046FFF7DAFDDB
|
||||
:101580000300082BFAD13B685B681800FFF7F2FDF7
|
||||
:10159000BA687B689A4207D90F23FC187B68180049
|
||||
:1015A000FFF756FF030023700F23FB181B78012B56
|
||||
:1015B0000CD13B681B681B090F221340084AD35CFF
|
||||
:1015C0001A007B68D3401800FFF79EFE0F23FB181C
|
||||
:1015D0001B781800BD4605B090BDC0460000002035
|
||||
:1015E000A419000880B500AFC046BD4680BD80B5D7
|
||||
:1015F00086B000AFF860B9607A60FA687B68D3188B
|
||||
:101600003B61FB687B6106E0BB68DAB27B691A70FC
|
||||
:101610007B6901337B617A693B699A42F4D3FB6849
|
||||
:101620001800BD4606B080BD80B584B000AF7860BC
|
||||
:101630007B68FB60C0467B685A1C7A601B78002B75
|
||||
:10164000F9D17A68FB68D31A013B1800BD4604B093
|
||||
:1016500080BD80B582B000AF0200FB1D1A70C0468D
|
||||
:10166000BD4602B080BD0000002243088B4274D307
|
||||
:1016700003098B425FD3030A8B4244D3030B8B4293
|
||||
:1016800028D3030C8B420DD3FF22090212BA030C9C
|
||||
:101690008B4202D31212090265D0030B8B4219D37D
|
||||
:1016A00000E0090AC30B8B4201D3CB03C01A52419D
|
||||
:1016B000830B8B4201D38B03C01A5241430B8B42E5
|
||||
:1016C00001D34B03C01A5241030B8B4201D30B03CE
|
||||
:1016D000C01A5241C30A8B4201D3CB02C01A5241F5
|
||||
:1016E000830A8B4201D38B02C01A5241430A8B42B8
|
||||
:1016F00001D34B02C01A5241030A8B4201D30B02A1
|
||||
:10170000C01A5241CDD2C3098B4201D3CB01C01ABA
|
||||
:10171000524183098B4201D38B01C01A52414309C4
|
||||
:101720008B4201D34B01C01A524103098B4201D3B2
|
||||
:101730000B01C01A5241C3088B4201D3CB00C01A1F
|
||||
:10174000524183088B4201D38B00C01A5241430897
|
||||
:101750008B4201D34B00C01A5241411A00D20146BC
|
||||
:10176000524110467047FFE701B5002000F0F0F845
|
||||
:1017700002BDC0460029F7D076E7704703460B4309
|
||||
:101780007FD4002243088B4274D303098B425FD37A
|
||||
:10179000030A8B4244D3030B8B4228D3030C8B42A6
|
||||
:1017A0000DD3FF22090212BA030C8B4202D312128C
|
||||
:1017B000090265D0030B8B4219D300E0090AC30B61
|
||||
:1017C0008B4201D3CB03C01A5241830B8B4201D30E
|
||||
:1017D0008B03C01A5241430B8B4201D34B03C01AF7
|
||||
:1017E0005241030B8B4201D30B03C01A5241C30A6F
|
||||
:1017F0008B4201D3CB02C01A5241830A8B4201D3E0
|
||||
:101800008B02C01A5241430A8B4201D34B02C01AC9
|
||||
:101810005241030A8B4201D30B02C01A5241CDD26E
|
||||
:10182000C3098B4201D3CB01C01A524183098B42B9
|
||||
:1018300001D38B01C01A524143098B4201D34B01A2
|
||||
:10184000C01A524103098B4201D30B01C01A524105
|
||||
:10185000C3088B4201D3CB00C01A524183088B428C
|
||||
:1018600001D38B00C01A524143088B4201D34B0075
|
||||
:10187000C01A5241411A00D20146524110467047E7
|
||||
:101880005DE0CA0F00D04942031000D340425340EC
|
||||
:1018900000229C4603098B422DD3030A8B4212D3AC
|
||||
:1018A000FC22890112BA030A8B420CD389019211DE
|
||||
:1018B0008B4208D3890192118B4204D389013AD01B
|
||||
:1018C000921100E08909C3098B4201D3CB01C01AF0
|
||||
:1018D000524183098B4201D38B01C01A5241430903
|
||||
:1018E0008B4201D34B01C01A524103098B4201D3F1
|
||||
:1018F0000B01C01A5241C3088B4201D3CB00C01A5E
|
||||
:10190000524183088B4201D38B00C01A5241D9D275
|
||||
:1019100043088B4201D34B00C01A5241411A00D2F6
|
||||
:101920000146634652415B10104601D34042002BF2
|
||||
:1019300000D54942704763465B1000D3404201B571
|
||||
:10194000002000F005F802BD0029F8D016E7704726
|
||||
:101950007047C0460C488546002103E00B4B5B589E
|
||||
:10196000435004310A480B4B42189A42F6D30A4AB4
|
||||
:1019700002E0002313600432084B9A42F9D3FFF7C8
|
||||
:10198000ADFAFEF74AFCFEE700100020BC19000883
|
||||
:101990000000002094000020940000201C0500207E
|
||||
:1019A000FEE7000000000000000000000102030448
|
||||
:0C19B00006070809000000000102030403
|
||||
:1019BC0000127A0000040040002000400028004083
|
||||
:1019CC00002C0040003000400054004000700040EB
|
||||
:1019DC0000000140000401400024014008270140A0
|
||||
:1019EC0008270140002C0140003001400038014024
|
||||
:1019FC0000440140004801400058014000000240F2
|
||||
:101A0C00080002401C00024030000240440002402A
|
||||
:101A1C00580002400020024000F8FF1F0010024056
|
||||
:101A2C000030024000000048000400480008004854
|
||||
:101A3C00000C00480014004800ED00E010E000E04D
|
||||
:041A4C0000E100E0D5
|
||||
:040000050800195581
|
||||
:1005F00080B584B000AF786000F04AF8204B8022CC
|
||||
:1006000012061A611E4B07225A611D4B1D4ADA6001
|
||||
:100610001B4B04229A621A4B9A68194B80210906D7
|
||||
:100620000A439A60C046164B9B68002BFBDB144BB9
|
||||
:100630009A68134B01210A439A60114B9A68104B38
|
||||
:1006400004210A439A607B680F4A934206DD7B6867
|
||||
:10065000FA21180001F0E6F9030000E00623FB6030
|
||||
:10066000FA6880235B029A4201DB084BFB60FB685F
|
||||
:1006700019000C2000F05AF8C046BD4604B080BDF9
|
||||
:100680000024014043080000DC050000FFFF0000DB
|
||||
:1006900080B500AF0B4B0C4A9A600A4B00221A60DF
|
||||
:1006A000084B1A68074B09490A431A600920FFF7EB
|
||||
:1006B0001BFF40210920FFF72DFF00F009F8C0467D
|
||||
:1006C000BD4680BD08000240402401408205000074
|
||||
:1006D00080B500AF124B1A68114B01218A431A6092
|
||||
:1006E000104B1B685A425341DBB21A000D4B1A6083
|
||||
:1006F0000C4B1A681300DB009B18DB0008331A0050
|
||||
:10070000094BD218064BDA60054B20225A60044B85
|
||||
:100710001A68034B01210A431A60C046BD4680BDDA
|
||||
:100720000800024034010020A000002080B582B003
|
||||
:1007300000AF78603960154B802212025A64134B67
|
||||
:10074000C022D201DA61114B802252011A620F4B92
|
||||
:1007500001221A647B685A1E0C4B9A623B685A1E2F
|
||||
:100760000A4BDA62094B5A69084B01210A435A6164
|
||||
:10077000064B80221A60054B1A68044B01210A437C
|
||||
:100780001A60C046BD4602B080BDC046002C014084
|
||||
:1007900080B500AFC046BD4680BD80B582B000AF19
|
||||
:1007A0001A4B1B687B60194B5A68184B01210A438E
|
||||
:1007B0005A60FFF78DFFFFF7EBFF154B1A88531CAC
|
||||
:1007C00099B2134B1980134B1B6859424B41DBB252
|
||||
:1007D000180011490300DB001B18DB00CB1806339F
|
||||
:1007E0001A800C4B1B685A425341DBB21A001300AB
|
||||
:1007F000DB009B18DB00084A9B184821180000F01A
|
||||
:10080000DDFAC046BD4602B080BDC04600000240D1
|
||||
:100810003001002034010020A000002080B582B00B
|
||||
:1008200000AF0200FB1D1A70FB1D1B781A001F236E
|
||||
:100830001A40044B012191400A001A60C046BD468F
|
||||
:1008400002B080BD00E100E080B582B000AF0200E0
|
||||
:10085000FB1D1A70FB1D1B781A001F23134005494E
|
||||
:1008600001229A40130080228B50C046BD4602B040
|
||||
:1008700080BDC04600E100E090B583B000AF02004B
|
||||
:100880003960FB1D1A70FB1D1B787F2B32D92F4A54
|
||||
:10089000FB1D1B7819000F230B40083B9B080633F8
|
||||
:1008A0009B00D31804331B68FA1D12781100032231
|
||||
:1008B0000A40D200FF2191400A00D2431A401100A1
|
||||
:1008C0003B689B01FF221A40FB1D1B781800032385
|
||||
:1008D0000340DB009A401D48FB1D1B781C000F23C2
|
||||
:1008E0002340083B9B080A4306339B00C31804338C
|
||||
:1008F0001A6027E0164AFB1D1B785BB29B08C033C9
|
||||
:100900009B009B58FA1D1278110003220A40D20066
|
||||
:10091000FF2191400A00D2431A4011003B689B011D
|
||||
:10092000FF221A40FB1D1B78180003230340DB0045
|
||||
:100930009A400748FB1D1B785BB29B080A43C033F3
|
||||
:100940009B001A50C046BD4603B090BD00ED00E0CC
|
||||
:1009500000E100E080B582B000AF2A4B0122524294
|
||||
:100960001A60284B00225A60264B00229A6000230E
|
||||
:100970007B600BE0234A7B6802339B00D31804336F
|
||||
:10098000012252421A607B6801337B607B68042B32
|
||||
:10099000F0D91D4B180000F06BFB1C4B1C4A9A60F1
|
||||
:1009A0001A4B92221A601B4B1B4ADA60194B1B4AE6
|
||||
:1009B0001A600A20FFF732FF20210A20FFF75CFFB0
|
||||
:1009C000174B184A1A60164BC022DA60144BC0222B
|
||||
:1009D00092025A60124B9A68114B80210A439A6026
|
||||
:1009E0001B20FFF71BFF60211B20FFF745FF0C4B6F
|
||||
:1009F0001A680B4B01210A431A60C046BD4602B07B
|
||||
:100A000080BDC04698010020480100201C00024023
|
||||
:100A100028380140300002400030024042100000FF
|
||||
:100A2000003801402C20000080B586B000AF414B5B
|
||||
:100A3000DB693B613B690822134008D03D4B08222B
|
||||
:100A40001A623D4B1B685A1C3B4B1A606FE03B69B6
|
||||
:100A50002022134000D16AE0364B9B8C9AB20F21C2
|
||||
:100A60007B181A707B181B7834493548202200F017
|
||||
:100A70000DFB0300BB60BB68002B57D0BB68002B8D
|
||||
:100A800005DA304B1B685A1C2E4B1A604FE0BB68CE
|
||||
:100A9000022B05D02C4B1B685A1C2B4B1A6046E0CE
|
||||
:100AA000264B7B607B681B78DBB2032B26D033DCC4
|
||||
:100AB000012B02D0022B13D02EE000237B610BE030
|
||||
:100AC000224A7B6902339B00D3180433012252422D
|
||||
:100AD0001A607B6901337B617B69042BF0D924E0C8
|
||||
:100AE0007B685B78DBB2180000F06CF8031E19D04D
|
||||
:100AF000154B1B685A1C144B1A6013E07B685B781B
|
||||
:100B0000DBB2180000F004F9031E0DD00E4B1B6879
|
||||
:100B10005A1C0D4B1A6007E00B4B1B685A1C0A4B02
|
||||
:100B20001A6004E0C04602E0C04600E0C046BD4690
|
||||
:100B300006B080BD003801403C010020500100207B
|
||||
:100B400048010020400100204401002098010020BD
|
||||
:100B500080B584B000AF194BBB60BB685B687B603D
|
||||
:100B6000BB689B687A689A4205DABB689A687B68BA
|
||||
:100B7000D31AFB6004E07B6880229200D31AFB60EA
|
||||
:100B8000BB687A681A607A68FB68D318DB05DA0DEF
|
||||
:100B9000BB685A60BB6820331A007B68D218084BC8
|
||||
:100BA000DA60074BFA685A60054B1A68044B01215A
|
||||
:100BB0000A431A60C046BD4604B080BD98010020BB
|
||||
:100BC0001C00024080B582B000AF0200FB1D1A700D
|
||||
:100BD000FB1D1B78052B02D916235B420AE0FB1D87
|
||||
:100BE0001B78064A02339B00D31804330122524279
|
||||
:100BF0001A6000231800BD4602B080BD9801002095
|
||||
:100C000080B584B000AF78600A00FB1C1A700A201F
|
||||
:100C1000FFF71AFE0023FB6013E07B689A6879688F
|
||||
:100C2000FB6802339B00CB1804331B689A4205D142
|
||||
:100C30000A20FFF7F3FD10235B4219E0FB68013344
|
||||
:100C4000FB60FB68042BE8D97B689B687A682021ED
|
||||
:100C5000D3185B18FA1C12781A707B689B680133F2
|
||||
:100C6000DB05DA0D7B689A600A20FFF7D7FD0023C9
|
||||
:100C70001800BD4604B080BD80B582B000AF020050
|
||||
:100C8000FB1D1A70C046FB1D1A78064B1100180098
|
||||
:100C9000FFF7B6FF03001033F5D000231800BD4660
|
||||
:100CA00002B080BD9801002080B582B000AF020084
|
||||
:100CB000FB1D1A70FB1D1A78044B11001800FFF77A
|
||||
:100CC0009FFF03001800BD4602B080BD98010020C0
|
||||
:100CD00080B500AF0B4B5A680A4B20210A435A607B
|
||||
:100CE000094B1A68084B01218A431A60074B9A681E
|
||||
:100CF000064B5B689A4201D0FFF72AFFC046BD460B
|
||||
:100D000080BDC046000002401C0002409801002047
|
||||
:100D100090B587B000AF0200FB1D1A700920FFF7E5
|
||||
:100D200093FDFB1D1B78234A02339B00D318043329
|
||||
:100D30001B687B617B693B610FE00F23FB181B780D
|
||||
:100D40001800FFF7B1FF031E07D01B4B1B685A1C8E
|
||||
:100D5000194B1A6010235B4228E07B695A1C7A61A8
|
||||
:100D60000F243A1913492020CB181B181B78137035
|
||||
:100D70003B191B78002BE0D10020FFF795FF031EE5
|
||||
:100D800007D00D4B1B685A1C0B4B1A6010235B429B
|
||||
:100D90000CE0FB1D1B78074A02339B00D318043379
|
||||
:100DA0003A691A600920FFF739FD00231800BD4693
|
||||
:100DB00007B090BD980100203801002090B587B0A1
|
||||
:100DC00000AF78603960404B9B68FB6000237B611B
|
||||
:100DD0003D4A7B6902339B00D31804331B680133FF
|
||||
:100DE0000DD07B6901337B617B69042BF0D9374BD4
|
||||
:100DF0001B685A1C354B1A6010235B4260E0C046EA
|
||||
:100E00007B69DAB27B681A71314BA1229A600423A4
|
||||
:100E10003B6108E07A683B69D3181A782C4B1A605A
|
||||
:100E20003B6901333B613A693B689A42F2D3284BF4
|
||||
:100E30001B68DA437B68FF2111400C001978002001
|
||||
:100E40000140081C211C01431970110AFF200140B8
|
||||
:100E50000C00597800200140081C211C01435970E6
|
||||
:100E6000110CFF2001400C00997800200140081C63
|
||||
:100E7000211C01439970100EDA7800210A40111CE0
|
||||
:100E8000021C0A43DA703A687968124B180000F0C5
|
||||
:100E900025F80300BB60BB68002B01D0BB680FE0E6
|
||||
:100EA000094A7B6902339B00D3180433FA681A603D
|
||||
:100EB000094B1B680122134001D1FFF749FE0023B3
|
||||
:100EC0001800BD4607B090BD9801002038010020F1
|
||||
:100ED00000300240A90C00081C00024080B58AB016
|
||||
:100EE00000AFF860B9607A607B68FE2B02D90123FD
|
||||
:100EF0005B424EE000237B623CE07B6A002B0FD01C
|
||||
:100F00007B6A013BBA68D3181B78002B08D07B6A38
|
||||
:100F1000013BBA68D2182323FB1812781A7019E023
|
||||
:100F20007B6AFB6102E0FB690133FB61FA697B6864
|
||||
:100F30009A4205D2BA68FB69D3181B78002BF2D10C
|
||||
:100F4000FB69DAB27B6ADBB2D31ADAB22323FB186D
|
||||
:100F500001321A702323FB181A78FB681000984797
|
||||
:100F600003007B617B69002B01D07B6911E07B6A08
|
||||
:100F700001337B627A6A7B689A42BED9FB680020A3
|
||||
:100F800098470300BB61BB69002B01D0BB6900E03F
|
||||
:100F900000231800BD460AB080BD80B588B000AF00
|
||||
:100FA000F860B9607A603B60BA6880235B029A425D
|
||||
:100FB00004D23A6880235B029A4202D301235B4247
|
||||
:100FC00052E03B68002B02D101235B424CE0BA683F
|
||||
:100FD0003B689A4202D201235B4245E00123FB6158
|
||||
:100FE0007B681B78BB61BB69002B24D102235B4269
|
||||
:100FF0003AE0BB69013BBB61BB69002B09D17A6850
|
||||
:10100000FB69D3181B78BB611723FB1800221A70E9
|
||||
:1010100006E07A68FB69D2181723FB1812781A7059
|
||||
:10102000FB69013BFA68D3181722BA1812781A70B4
|
||||
:10103000FB690133FB61FA693B689A4205D27A6821
|
||||
:10104000FB69D3181B78002BD3D1FA693B689A420D
|
||||
:1010500002D102235B4207E0BB69012B02D00323CC
|
||||
:101060005B4201E0FB69013B1800BD4608B080BD52
|
||||
:1010700080B582B000AF78607B6800221A607B6820
|
||||
:1010800000225A60C046BD4602B080BD80B588B01F
|
||||
:1010900000AFF860B9607A601A00FB1C1A70FB6838
|
||||
:1010A0001B68002B0ED1FB1C1B78002B54D0FB1CA3
|
||||
:1010B0001A78FB685A60FB681B685A1CFB681A6048
|
||||
:1010C000002350E0FB1C1B78002B0DD1FB685B68F4
|
||||
:1010D000012B39D1FB681B68013B7B61FB68180061
|
||||
:1010E000FFF7C6FF7B693EE0FB685B685A1EFB6842
|
||||
:1010F0005A60FB685B68002B08D1FB1C1A78FB6800
|
||||
:101100005A601F23FB1800221A7004E01F23FB18EB
|
||||
:10111000FA1C12781A70FB681B68013BBB61BA6944
|
||||
:101120007B689A4202D302235B421CE0BA68BB6927
|
||||
:10113000D3181F22BA1812781A70FB681B685A1C41
|
||||
:10114000FB681A6000230EE0C046FB681800FFF73A
|
||||
:101150008FFF01235B4206E0C046FB681800FFF7E3
|
||||
:1011600087FF03235B421800BD4608B080BD641CA6
|
||||
:101170000008000000209400002094000020B80324
|
||||
:101180000020000080B500AF1A4B1A68194B0121EE
|
||||
:101190000A431A60174B5A68164B17490A405A609F
|
||||
:1011A000144B1A68134B15490A401A60114B1A6800
|
||||
:1011B000104B13490A401A600E4B5A680D4B1149E7
|
||||
:1011C0000A405A600B4BDA6A0A4B0F218A43DA62F3
|
||||
:1011D000084B1A6B074B0C490A401A63054B5A6BB4
|
||||
:1011E000044B01218A435A63024B00229A60C04695
|
||||
:1011F000BD4680BD001002400CB8FF08FFFFF6FEA0
|
||||
:10120000FFFFFBFFFFFFC0FFECFEFFFF80B584B0D8
|
||||
:1012100000AF0023FB600023BB6000237B60002342
|
||||
:101220003B60314B5B680C221340FB60FB68082B72
|
||||
:1012300011D0FB68082B41D8FB68002B03D0FB685A
|
||||
:10124000042B04D03AE0294B294A1A603AE0274B94
|
||||
:10125000274A1A6036E0244B5A68F0239B03134058
|
||||
:10126000BB60214B5A6880235B0213407B60BB68E4
|
||||
:101270009B0C0233BB601C4BDB6A0F221340013313
|
||||
:101280003B607A6880235B029A420AD13968184829
|
||||
:1012900000F03EFB03001A00BB685A43134B1A6070
|
||||
:1012A00010E0B9680A005201521A93019B1ADB0040
|
||||
:1012B0005B181B021A000D4B1A6003E00B4B0C4A23
|
||||
:1012C0001A60C046084B5B681B090F221340094A8D
|
||||
:1012D000D35CFB60054B1A68FB68DA40034B1A606D
|
||||
:1012E000C046BD4604B080BD001002400000002092
|
||||
:1012F00000127A004C1C000880B500AF044B1A683D
|
||||
:10130000034B8021C9020A431A60C046BD4680BD16
|
||||
:101310000010024080B500AF044B1A68034B04492B
|
||||
:101320000A401A60C046BD4680BDC046001002405B
|
||||
:10133000FFFFFBFF80B500AF044B1A68034B802111
|
||||
:1013400049020A431A60C046BD4680BD00100240F3
|
||||
:1013500080B500AF064B1A6880239B021340054AF4
|
||||
:10136000944663445A425341DBB21800BD4680BDE7
|
||||
:10137000001002400000FEFF80B500AF044B1A6869
|
||||
:10138000034B01210A431A60C046BD4680BDC046DA
|
||||
:101390000010024080B500AF054B1B6802221340CD
|
||||
:1013A000023B5A425341DBB21800BD4680BDC046E5
|
||||
:1013B0000010024080B582B000AF7860064B5B68D9
|
||||
:1013C000032293431900044B7A680A435A60C046CB
|
||||
:1013D000BD4602B080BDC0460010024080B500AFDF
|
||||
:1013E000034B5B680C2213401800BD4680BDC0460D
|
||||
:1013F0000010024080B582B000AF7860064B5B6899
|
||||
:10140000F02293431900044B7A680A435A60C0469D
|
||||
:10141000BD4602B080BDC0460010024080B582B01B
|
||||
:1014200000AF7860064B5B68064A13401900044B16
|
||||
:101430007A680A435A60C046BD4602B080BDC046C5
|
||||
:1014400000100240FFF8FFFF80B500AF044B1A68A0
|
||||
:10145000034B802149040A431A60C046BD4680BD43
|
||||
:101460000010024080B500AF074B1A6880239B0430
|
||||
:101470001340FE221206944663445A425341DBB2A3
|
||||
:101480001800BD4680BDC0460010024080B582B045
|
||||
:1014900000AF786039600E4B5B680E4A134019004C
|
||||
:1014A0007A6880235B021A403B681A43084B0A4360
|
||||
:1014B0005A60074BDB6A0F22934319007B680F22A7
|
||||
:1014C0001A40034B0A43DA62C046BD4602B080BDF3
|
||||
:1014D00000100240FFFFC2FF80B582B000AF78600D
|
||||
:1014E00039603968786800F013FA03001A00064B77
|
||||
:1014F000013A5A60044B00229A60034B05221A609D
|
||||
:10150000C046BD4602B080BD10E000E080B582B0AC
|
||||
:1015100000AF7860064B1B68012293431900044B0F
|
||||
:101520007A680A431A60C046BD4602B080BDC04614
|
||||
:101530000020024080B500AF034B1B68012213401E
|
||||
:101540001800BD4680BDC0460020024080B582B074
|
||||
:1015500000AF7860FA239A007B6811001800FFF74B
|
||||
:10156000BBFFC046BD4602B080BD80B584B000AFB1
|
||||
:1015700078600E4B1B68FB60FB687B6801330CD006
|
||||
:101580007B6801337B6008E0084B1A6880235B02AC
|
||||
:10159000134002D07B68013B7B607B68002BF3D15A
|
||||
:1015A000C046C046BD4604B080BDC04610E000E065
|
||||
:1015B00080B582B000AF7860034B7A681A60C0468D
|
||||
:1015C000BD4602B080BDC0460000002090B585B089
|
||||
:1015D00000AF786039600F23FB1801221A700023D6
|
||||
:1015E000BB6000F0D4F80300012B28D17B680122F6
|
||||
:1015F0005A607B68174A1900100000F0ABF803002E
|
||||
:10160000BB60FFF7C7FE0300012B07D0FFF7B4FE56
|
||||
:10161000C046FFF7BFFE0300012BFAD17B681B68B1
|
||||
:1016200019000020FFF732FF0F23FC183A68BB684F
|
||||
:101630001100180000F0BEF80300237003E00F2330
|
||||
:10164000FB1800221A700F23FB181B781800BD46E8
|
||||
:1016500005B090BD00127A0090B587B000AFF86079
|
||||
:10166000B9607A603B601723FB1801221A700023CF
|
||||
:101670003B6100F08CF80300012B32D17A68FB68E3
|
||||
:101680001100180000F066F803003B61FFF760FEF0
|
||||
:101690000300012B0FD0BB68012B02D1FFF72CFEFA
|
||||
:1016A00001E0FFF737FEFFF745FEC046FFF750FEAB
|
||||
:1016B0000300012BFAD17B685B68802252021A4337
|
||||
:1016C0007B681B6819001000FFF7E0FE1723FC1869
|
||||
:1016D0003A683B691100180000F06CF803002370B1
|
||||
:1016E00003E01723FB1800221A701723FB181B783E
|
||||
:1016F0001800BD4607B090BD80B584B000AF7860DB
|
||||
:101700000F217B1801221A700023BB607B68002B1D
|
||||
:1017100003D17B1800221A7013E07B680C4A9342B5
|
||||
:1017200001D90123BB60BB681800FFF7EFFEFFF78C
|
||||
:1017300001FF0200BB68934203D00F23FB18002275
|
||||
:101740001A700F23FB181B781800BD4604B080BD2B
|
||||
:1017500000366E0180B584B000AF78603960002338
|
||||
:10176000FB603B685B6801331900786800F0D0F8D3
|
||||
:10177000030019003B681B689B0C0F2213400233C7
|
||||
:101780004B43FB60FB681800BD4604B080BD80B5CC
|
||||
:1017900082B000AFFB1D01221A70FFF763FE031E2B
|
||||
:1017A00002D0FB1D00221A70FB1D1B781800BD46DD
|
||||
:1017B00002B080BD90B585B000AF786039600F2071
|
||||
:1017C0003B1801221A700023BB602E4B1A683B683D
|
||||
:1017D0001B681B090F210B402B49CB5C9A4013005F
|
||||
:1017E000BB60BA687B689A4206D23C187B681800D6
|
||||
:1017F000FFF782FF030023700F23FB181B78012BD8
|
||||
:101800001AD1FFF721FEC046FFF72CFE0300012B83
|
||||
:10181000FAD13B681B681800FFF7ECFD0220FFF7C8
|
||||
:10182000C9FDC046FFF7DAFD0300082BFAD13B687B
|
||||
:101830005B681800FFF7F2FDBA687B689A4207D927
|
||||
:101840000F23FC187B681800FFF756FF0300237076
|
||||
:101850000F23FB181B78012B0CD13B681B681B095D
|
||||
:101860000F221340084AD35C1A007B68D34018004B
|
||||
:10187000FFF79EFE0F23FB181B781800BD4605B02E
|
||||
:1018800090BDC046000000204C1C000880B500AF91
|
||||
:10189000C046BD4680BD80B586B000AFF860B96077
|
||||
:1018A0007A60FA687B68D3183B61FB687B6106E06D
|
||||
:1018B000BB68DAB27B691A707B6901337B617A6934
|
||||
:1018C0003B699A42F4D3FB681800BD4606B080BD60
|
||||
:1018D00080B584B000AF78607B68FB60C0467B68F1
|
||||
:1018E0005A1C7A601B78002BF9D17A68FB68D31AEE
|
||||
:1018F000013B1800BD4604B080BD80B582B000AF8A
|
||||
:101900000200FB1D1A70C046BD4602B080BD00003B
|
||||
:10191000002243088B4274D303098B425FD3030A2E
|
||||
:101920008B4244D3030B8B4228D3030C8B420DD341
|
||||
:10193000FF22090212BA030C8B4202D312120902CF
|
||||
:1019400065D0030B8B4219D300E0090AC30B8B420D
|
||||
:1019500001D3CB03C01A5241830B8B4201D38B03BB
|
||||
:10196000C01A5241430B8B4201D34B03C01A524160
|
||||
:10197000030B8B4201D30B03C01A5241C30A8B42A3
|
||||
:1019800001D3CB02C01A5241830A8B4201D38B028E
|
||||
:10199000C01A5241430A8B4201D34B02C01A524132
|
||||
:1019A000030A8B4201D30B02C01A5241CDD2C309A4
|
||||
:1019B0008B4201D3CB01C01A524183098B4201D320
|
||||
:1019C0008B01C01A524143098B4201D34B01C01A0B
|
||||
:1019D000524103098B4201D30B01C01A5241C30883
|
||||
:1019E0008B4201D3CB00C01A524183088B4201D3F2
|
||||
:1019F0008B00C01A524143088B4201D34B00C01ADE
|
||||
:101A00005241411A00D20146524110467047FFE749
|
||||
:101A100001B5002000F0F0F802BDC0460029F7D063
|
||||
:101A200076E7704703460B437FD4002243088B427E
|
||||
:101A300074D303098B425FD3030A8B4244D3030B55
|
||||
:101A40008B4228D3030C8B420DD3FF22090212BA1A
|
||||
:101A5000030C8B4202D31212090265D0030B8B4296
|
||||
:101A600019D300E0090AC30B8B4201D3CB03C01A80
|
||||
:101A70005241830B8B4201D38B03C01A5241430B5B
|
||||
:101A80008B4201D34B03C01A5241030B8B4201D34B
|
||||
:101A90000B03C01A5241C30A8B4201D3CB02C01AB6
|
||||
:101AA0005241830A8B4201D38B02C01A5241430A2E
|
||||
:101AB0008B4201D34B02C01A5241030A8B4201D31D
|
||||
:101AC0000B02C01A5241CDD2C3098B4201D3CB01C4
|
||||
:101AD000C01A524183098B4201D38B01C01A524173
|
||||
:101AE00043098B4201D34B01C01A524103098B4277
|
||||
:101AF00001D30B01C01A5241C3088B4201D3CB0062
|
||||
:101B0000C01A524183088B4201D38B00C01A524144
|
||||
:101B100043088B4201D34B00C01A5241411A00D2F4
|
||||
:101B200001465241104670475DE0CA0F00D049425D
|
||||
:101B3000031000D34042534000229C4603098B42CD
|
||||
:101B40002DD3030A8B4212D3FC22890112BA030A55
|
||||
:101B50008B420CD3890192118B4208D389019211D7
|
||||
:101B60008B4204D389013AD0921100E08909C3095C
|
||||
:101B70008B4201D3CB01C01A524183098B4201D35E
|
||||
:101B80008B01C01A524143098B4201D34B01C01A49
|
||||
:101B9000524103098B4201D30B01C01A5241C308C1
|
||||
:101BA0008B4201D3CB00C01A524183088B4201D330
|
||||
:101BB0008B00C01A5241D9D243088B4201D34B004B
|
||||
:101BC000C01A5241411A00D20146634652415B108D
|
||||
:101BD000104601D34042002B00D54942704763466E
|
||||
:101BE0005B1000D3404201B5002000F005F802BDB3
|
||||
:101BF0000029F8D016E770477047C0460C48854664
|
||||
:101C0000002103E00B4B5B58435004310A480B4B57
|
||||
:101C100042189A42F6D30A4A02E0002313600432C3
|
||||
:101C2000084B9A42F9D3FFF7ADFAFEF7F6FAFEE752
|
||||
:101C300000100020641C0008000000209400002018
|
||||
:101C400094000020B8030020FEE700000000000020
|
||||
:101C5000000000000102030406070809000000005C
|
||||
:041C60000102030476
|
||||
:101C640000127A00000400400020004000280040D8
|
||||
:101C7400002C004000300040005400400070004040
|
||||
:101C840000000140000401400024014008270140F5
|
||||
:101C940008270140002C0140003001400038014079
|
||||
:101CA4000044014000480140005801400000024047
|
||||
:101CB400080002401C000240300002404400024080
|
||||
:101CC400580002400020024000F8FF1F00100240AC
|
||||
:101CD40000300240000000480004004800080048AA
|
||||
:101CE400000C00480014004800ED00E010E000E0A3
|
||||
:041CF40000E100E02B
|
||||
:0400000508001BFDD7
|
||||
:00000001FF
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,18 +1,17 @@
|
|||
Archive member included to satisfy reference by file (symbol)
|
||||
|
||||
/usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o)
|
||||
/tmp/ccxtvPlT.o (__aeabi_uidiv)
|
||||
/tmp/ccy8OCeb.o (__aeabi_uidiv)
|
||||
/usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_divsi3.o)
|
||||
/tmp/ccrrpgrR.o (__aeabi_idiv)
|
||||
/tmp/cc6Un0Q5.o (__aeabi_idiv)
|
||||
/usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_dvmd_tls.o)
|
||||
/usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o) (__aeabi_idiv0)
|
||||
|
||||
Allocating common symbols
|
||||
Common symbol size file
|
||||
|
||||
usart_tx_buf 0x40c /tmp/ccXNIrIP.o
|
||||
leds 0x20 /tmp/ccxtvPlT.o
|
||||
adc_buf 0x40 /tmp/ccrrpgrR.o
|
||||
usart_tx_buf 0x220 /tmp/ccRRCPG0.o
|
||||
leds 0x20 /tmp/ccy8OCeb.o
|
||||
|
||||
Memory Configuration
|
||||
|
||||
|
|
@ -25,29 +24,29 @@ RAM 0x0000000020000000 0x0000000000001000 xrw
|
|||
Linker script and memory map
|
||||
|
||||
LOAD /home/user/resource/STM32CubeF0/Drivers/CMSIS/Lib/GCC/libarm_cortexM0l_math.a
|
||||
LOAD /tmp/ccxtvPlT.o
|
||||
LOAD /tmp/ccrrpgrR.o
|
||||
LOAD /tmp/ccXNIrIP.o
|
||||
LOAD /tmp/ccy0xC7N.o
|
||||
LOAD /tmp/ccr2qryM.o
|
||||
LOAD /tmp/ccJ50X5K.o
|
||||
LOAD /tmp/ccFUXyQJ.o
|
||||
LOAD /tmp/cc8rJnLI.o
|
||||
LOAD /tmp/ccDd2fMH.o
|
||||
LOAD /tmp/ccy8OCeb.o
|
||||
LOAD /tmp/cc6Un0Q5.o
|
||||
LOAD /tmp/ccRRCPG0.o
|
||||
LOAD /tmp/ccWI4kHV.o
|
||||
LOAD /tmp/ccjaIjJQ.o
|
||||
LOAD /tmp/cceYjaVL.o
|
||||
LOAD /tmp/ccsXJViH.o
|
||||
LOAD /tmp/ccGz0VMC.o
|
||||
LOAD /tmp/ccy5lZmy.o
|
||||
LOAD /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a
|
||||
0x0000000020001000 _estack = 0x20001000
|
||||
|
||||
.isr_vector 0x0000000008000000 0xc0
|
||||
0x0000000008000000 . = ALIGN (0x4)
|
||||
*(.isr_vector)
|
||||
.isr_vector 0x0000000008000000 0xc0 /tmp/ccr2qryM.o
|
||||
.isr_vector 0x0000000008000000 0xc0 /tmp/ccjaIjJQ.o
|
||||
0x0000000008000000 g_pfnVectors
|
||||
0x00000000080000c0 . = ALIGN (0x4)
|
||||
|
||||
.text 0x00000000080000c0 0x18fc
|
||||
.text 0x00000000080000c0 0x1ba4
|
||||
0x00000000080000c0 . = ALIGN (0x4)
|
||||
*(.text)
|
||||
.text 0x00000000080000c0 0x428 /tmp/ccxtvPlT.o
|
||||
.text 0x00000000080000c0 0x428 /tmp/ccy8OCeb.o
|
||||
0x0000000008000210 update_leds
|
||||
0x000000000800021a main
|
||||
0x000000000800039c SPI1_IRQHandler
|
||||
|
|
@ -57,119 +56,118 @@ LOAD /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a
|
|||
0x0000000008000494 SVC_Handler
|
||||
0x00000000080004a0 PendSV_Handler
|
||||
0x00000000080004ac SysTick_Handler
|
||||
.text 0x00000000080004e8 0x2e4 /tmp/ccrrpgrR.o
|
||||
.text 0x00000000080004e8 0x334 /tmp/cc6Un0Q5.o
|
||||
0x00000000080005f0 adc_configure_scope_mode
|
||||
0x0000000008000762 DMA1_Channel1_IRQHandler
|
||||
.text 0x00000000080007cc 0x3a4 /tmp/ccXNIrIP.o
|
||||
0x0000000008000904 usart_dma_init
|
||||
0x00000000080009f8 usart_dma_fifo_push
|
||||
0x0000000008000a50 usart_putc
|
||||
0x0000000008000a80 usart_putc_nonblocking
|
||||
0x0000000008000aa8 DMA1_Channel2_3_IRQHandler
|
||||
0x0000000008000ae8 usart_send_packet
|
||||
0x0000000008000b1c usart_send_packet_nonblocking
|
||||
.text 0x0000000008000b70 0x358 /tmp/ccy0xC7N.o
|
||||
0x0000000008000b70 cobs_encode
|
||||
0x0000000008000c36 cobs_encode_usart
|
||||
0x0000000008000cf4 cobs_decode
|
||||
0x0000000008000dca cobs_decode_incremental_initialize
|
||||
0x0000000008000de6 cobs_decode_incremental
|
||||
.text 0x0000000008000ec8 0x14 /tmp/ccr2qryM.o
|
||||
.text 0x0000000008000edc 0x174 /tmp/ccJ50X5K.o
|
||||
0x0000000008000edc SystemInit
|
||||
0x0000000008000f64 SystemCoreClockUpdate
|
||||
.text 0x0000000008001050 0x594 /tmp/ccFUXyQJ.o
|
||||
0x00000000080012a4 LL_Init1msTick
|
||||
0x00000000080012c2 LL_mDelay
|
||||
0x0000000008001308 LL_SetSystemCoreClock
|
||||
0x0000000008001324 LL_PLL_ConfigSystemClock_HSI
|
||||
0x00000000080013b0 LL_PLL_ConfigSystemClock_HSE
|
||||
.text 0x00000000080015e4 0x82 /tmp/cc8rJnLI.o
|
||||
0x00000000080015e4 __sinit
|
||||
0x00000000080015ee memset
|
||||
0x0000000008001628 strlen
|
||||
0x0000000008001652 __assert_func
|
||||
.text 0x0000000008001666 0x0 /tmp/ccDd2fMH.o
|
||||
*fill* 0x0000000008001666 0x2
|
||||
.text 0x0000000008001668 0x114 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o)
|
||||
0x0000000008001668 __udivsi3
|
||||
0x0000000008001668 __aeabi_uidiv
|
||||
0x0000000008001774 __aeabi_uidivmod
|
||||
.text 0x000000000800177c 0x1d4 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_divsi3.o)
|
||||
0x000000000800177c __aeabi_idiv
|
||||
0x000000000800177c __divsi3
|
||||
0x0000000008001948 __aeabi_idivmod
|
||||
.text 0x0000000008001950 0x4 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_dvmd_tls.o)
|
||||
0x0000000008001950 __aeabi_ldiv0
|
||||
0x0000000008001950 __aeabi_idiv0
|
||||
0x000000000800079a DMA1_Channel1_IRQHandler
|
||||
.text 0x000000000800081c 0x6c0 /tmp/ccRRCPG0.o
|
||||
0x0000000008000954 usart_dma_init
|
||||
0x0000000008000a28 USART1_IRQHandler
|
||||
0x0000000008000bc4 usart_ack_packet
|
||||
0x0000000008000c00 usart_dma_fifo_push
|
||||
0x0000000008000c78 usart_putc
|
||||
0x0000000008000cd0 DMA1_Channel2_3_IRQHandler
|
||||
0x0000000008000dbc usart_send_packet_nonblocking
|
||||
.text 0x0000000008000edc 0x292 /tmp/ccWI4kHV.o
|
||||
0x0000000008000edc cobs_encode_usart
|
||||
0x0000000008000f9a cobs_decode
|
||||
0x0000000008001070 cobs_decode_incremental_initialize
|
||||
0x000000000800108c cobs_decode_incremental
|
||||
.text 0x000000000800116e 0x14 /tmp/ccjaIjJQ.o
|
||||
*fill* 0x0000000008001182 0x2
|
||||
.text 0x0000000008001184 0x174 /tmp/cceYjaVL.o
|
||||
0x0000000008001184 SystemInit
|
||||
0x000000000800120c SystemCoreClockUpdate
|
||||
.text 0x00000000080012f8 0x594 /tmp/ccsXJViH.o
|
||||
0x000000000800154c LL_Init1msTick
|
||||
0x000000000800156a LL_mDelay
|
||||
0x00000000080015b0 LL_SetSystemCoreClock
|
||||
0x00000000080015cc LL_PLL_ConfigSystemClock_HSI
|
||||
0x0000000008001658 LL_PLL_ConfigSystemClock_HSE
|
||||
.text 0x000000000800188c 0x82 /tmp/ccGz0VMC.o
|
||||
0x000000000800188c __sinit
|
||||
0x0000000008001896 memset
|
||||
0x00000000080018d0 strlen
|
||||
0x00000000080018fa __assert_func
|
||||
.text 0x000000000800190e 0x0 /tmp/ccy5lZmy.o
|
||||
*fill* 0x000000000800190e 0x2
|
||||
.text 0x0000000008001910 0x114 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o)
|
||||
0x0000000008001910 __udivsi3
|
||||
0x0000000008001910 __aeabi_uidiv
|
||||
0x0000000008001a1c __aeabi_uidivmod
|
||||
.text 0x0000000008001a24 0x1d4 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_divsi3.o)
|
||||
0x0000000008001a24 __aeabi_idiv
|
||||
0x0000000008001a24 __divsi3
|
||||
0x0000000008001bf0 __aeabi_idivmod
|
||||
.text 0x0000000008001bf8 0x4 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_dvmd_tls.o)
|
||||
0x0000000008001bf8 __aeabi_ldiv0
|
||||
0x0000000008001bf8 __aeabi_idiv0
|
||||
*(.text.*)
|
||||
.text.Reset_Handler
|
||||
0x0000000008001954 0x4c /tmp/ccr2qryM.o
|
||||
0x0000000008001954 Reset_Handler
|
||||
0x0000000008001bfc 0x4c /tmp/ccjaIjJQ.o
|
||||
0x0000000008001bfc Reset_Handler
|
||||
.text.Default_Handler
|
||||
0x00000000080019a0 0x2 /tmp/ccr2qryM.o
|
||||
0x00000000080019a0 TIM1_CC_IRQHandler
|
||||
0x00000000080019a0 I2C1_IRQHandler
|
||||
0x00000000080019a0 EXTI2_3_IRQHandler
|
||||
0x00000000080019a0 ADC1_IRQHandler
|
||||
0x00000000080019a0 TIM17_IRQHandler
|
||||
0x00000000080019a0 RTC_IRQHandler
|
||||
0x00000000080019a0 TIM3_IRQHandler
|
||||
0x00000000080019a0 EXTI4_15_IRQHandler
|
||||
0x00000000080019a0 RCC_IRQHandler
|
||||
0x00000000080019a0 Default_Handler
|
||||
0x00000000080019a0 TIM14_IRQHandler
|
||||
0x00000000080019a0 DMA1_Channel4_5_IRQHandler
|
||||
0x00000000080019a0 EXTI0_1_IRQHandler
|
||||
0x00000000080019a0 WWDG_IRQHandler
|
||||
0x00000000080019a0 FLASH_IRQHandler
|
||||
0x00000000080019a0 USART1_IRQHandler
|
||||
0x00000000080019a0 TIM1_BRK_UP_TRG_COM_IRQHandler
|
||||
0x0000000008001c48 0x2 /tmp/ccjaIjJQ.o
|
||||
0x0000000008001c48 TIM1_CC_IRQHandler
|
||||
0x0000000008001c48 I2C1_IRQHandler
|
||||
0x0000000008001c48 EXTI2_3_IRQHandler
|
||||
0x0000000008001c48 ADC1_IRQHandler
|
||||
0x0000000008001c48 TIM17_IRQHandler
|
||||
0x0000000008001c48 RTC_IRQHandler
|
||||
0x0000000008001c48 TIM3_IRQHandler
|
||||
0x0000000008001c48 EXTI4_15_IRQHandler
|
||||
0x0000000008001c48 RCC_IRQHandler
|
||||
0x0000000008001c48 Default_Handler
|
||||
0x0000000008001c48 TIM14_IRQHandler
|
||||
0x0000000008001c48 DMA1_Channel4_5_IRQHandler
|
||||
0x0000000008001c48 EXTI0_1_IRQHandler
|
||||
0x0000000008001c48 WWDG_IRQHandler
|
||||
0x0000000008001c48 FLASH_IRQHandler
|
||||
0x0000000008001c48 TIM1_BRK_UP_TRG_COM_IRQHandler
|
||||
*(.rodata)
|
||||
*fill* 0x00000000080019a2 0x2
|
||||
.rodata 0x00000000080019a4 0x18 /tmp/ccJ50X5K.o
|
||||
0x00000000080019a4 AHBPrescTable
|
||||
0x00000000080019b4 APBPrescTable
|
||||
*fill* 0x0000000008001c4a 0x2
|
||||
.rodata 0x0000000008001c4c 0x18 /tmp/cceYjaVL.o
|
||||
0x0000000008001c4c AHBPrescTable
|
||||
0x0000000008001c5c APBPrescTable
|
||||
*(.rodata*)
|
||||
*(.glue_7)
|
||||
.glue_7 0x00000000080019bc 0x0 linker stubs
|
||||
.glue_7 0x0000000008001c64 0x0 linker stubs
|
||||
*(.glue_7t)
|
||||
.glue_7t 0x00000000080019bc 0x0 linker stubs
|
||||
.glue_7t 0x0000000008001c64 0x0 linker stubs
|
||||
*(.source_tarball)
|
||||
*(.init)
|
||||
*(.fini)
|
||||
*(.source_tarball)
|
||||
0x00000000080019bc . = ALIGN (0x4)
|
||||
0x00000000080019bc _etext = .
|
||||
0x00000000080019bc _sidata = _etext
|
||||
0x0000000008001c64 . = ALIGN (0x4)
|
||||
0x0000000008001c64 _etext = .
|
||||
0x0000000008001c64 _sidata = _etext
|
||||
|
||||
.vfp11_veneer 0x00000000080019bc 0x0
|
||||
.vfp11_veneer 0x00000000080019bc 0x0 linker stubs
|
||||
.vfp11_veneer 0x0000000008001c64 0x0
|
||||
.vfp11_veneer 0x0000000008001c64 0x0 linker stubs
|
||||
|
||||
.v4_bx 0x00000000080019bc 0x0
|
||||
.v4_bx 0x00000000080019bc 0x0 linker stubs
|
||||
.v4_bx 0x0000000008001c64 0x0
|
||||
.v4_bx 0x0000000008001c64 0x0 linker stubs
|
||||
|
||||
.iplt 0x00000000080019bc 0x0
|
||||
.iplt 0x00000000080019bc 0x0 /tmp/ccxtvPlT.o
|
||||
.iplt 0x0000000008001c64 0x0
|
||||
.iplt 0x0000000008001c64 0x0 /tmp/ccy8OCeb.o
|
||||
|
||||
.rel.dyn 0x00000000080019bc 0x0
|
||||
.rel.iplt 0x00000000080019bc 0x0 /tmp/ccxtvPlT.o
|
||||
.rel.dyn 0x0000000008001c64 0x0
|
||||
.rel.iplt 0x0000000008001c64 0x0 /tmp/ccy8OCeb.o
|
||||
|
||||
.data 0x0000000020000000 0x94 load address 0x00000000080019bc
|
||||
.data 0x0000000020000000 0x94 load address 0x0000000008001c64
|
||||
0x0000000020000000 . = ALIGN (0x4)
|
||||
0x0000000020000000 _sdata = .
|
||||
0x0000000020000000 _data = .
|
||||
*(.data)
|
||||
.data 0x0000000020000000 0x0 /tmp/ccxtvPlT.o
|
||||
.data 0x0000000020000000 0x0 /tmp/ccrrpgrR.o
|
||||
.data 0x0000000020000000 0x0 /tmp/ccXNIrIP.o
|
||||
.data 0x0000000020000000 0x0 /tmp/ccy0xC7N.o
|
||||
.data 0x0000000020000000 0x0 /tmp/ccr2qryM.o
|
||||
.data 0x0000000020000000 0x4 /tmp/ccJ50X5K.o
|
||||
.data 0x0000000020000000 0x0 /tmp/ccy8OCeb.o
|
||||
.data 0x0000000020000000 0x0 /tmp/cc6Un0Q5.o
|
||||
.data 0x0000000020000000 0x0 /tmp/ccRRCPG0.o
|
||||
.data 0x0000000020000000 0x0 /tmp/ccWI4kHV.o
|
||||
.data 0x0000000020000000 0x0 /tmp/ccjaIjJQ.o
|
||||
.data 0x0000000020000000 0x4 /tmp/cceYjaVL.o
|
||||
0x0000000020000000 SystemCoreClock
|
||||
.data 0x0000000020000004 0x0 /tmp/ccFUXyQJ.o
|
||||
.data 0x0000000020000004 0x0 /tmp/cc8rJnLI.o
|
||||
.data 0x0000000020000004 0x90 /tmp/ccDd2fMH.o
|
||||
.data 0x0000000020000004 0x0 /tmp/ccsXJViH.o
|
||||
.data 0x0000000020000004 0x0 /tmp/ccGz0VMC.o
|
||||
.data 0x0000000020000004 0x90 /tmp/ccy5lZmy.o
|
||||
0x0000000020000004 tim3
|
||||
0x0000000020000008 tim14
|
||||
0x000000002000000c rtc
|
||||
|
|
@ -214,45 +212,41 @@ LOAD /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a
|
|||
0x0000000020000094 . = ALIGN (0x4)
|
||||
0x0000000020000094 _edata = .
|
||||
|
||||
.igot.plt 0x0000000020000094 0x0 load address 0x0000000008001a50
|
||||
.igot.plt 0x0000000020000094 0x0 /tmp/ccxtvPlT.o
|
||||
.igot.plt 0x0000000020000094 0x0 load address 0x0000000008001cf8
|
||||
.igot.plt 0x0000000020000094 0x0 /tmp/ccy8OCeb.o
|
||||
|
||||
.bss 0x0000000020000094 0x488 load address 0x0000000008001a50
|
||||
.bss 0x0000000020000094 0x324 load address 0x0000000008001cf8
|
||||
0x0000000020000094 . = ALIGN (0x4)
|
||||
0x0000000020000094 _sbss = .
|
||||
0x0000000020000094 _bss = .
|
||||
*(.bss)
|
||||
.bss 0x0000000020000094 0xc /tmp/ccxtvPlT.o
|
||||
.bss 0x0000000020000094 0xc /tmp/ccy8OCeb.o
|
||||
0x0000000020000094 sys_time_seconds
|
||||
.bss 0x00000000200000a0 0x4 /tmp/ccrrpgrR.o
|
||||
0x00000000200000a0 usart_overruns
|
||||
.bss 0x00000000200000a4 0x1 /tmp/ccXNIrIP.o
|
||||
.bss 0x00000000200000a5 0x0 /tmp/ccy0xC7N.o
|
||||
.bss 0x00000000200000a5 0x0 /tmp/ccr2qryM.o
|
||||
.bss 0x00000000200000a5 0x0 /tmp/ccJ50X5K.o
|
||||
.bss 0x00000000200000a5 0x0 /tmp/ccFUXyQJ.o
|
||||
*fill* 0x00000000200000a5 0x3
|
||||
.bss 0x00000000200000a8 0x8 /tmp/cc8rJnLI.o
|
||||
0x00000000200000a8 __errno
|
||||
0x00000000200000ac _impure_ptr
|
||||
.bss 0x00000000200000b0 0x0 /tmp/ccDd2fMH.o
|
||||
.bss 0x00000000200000b0 0x0 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o)
|
||||
.bss 0x00000000200000b0 0x0 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_divsi3.o)
|
||||
.bss 0x00000000200000b0 0x0 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_dvmd_tls.o)
|
||||
.bss 0x00000000200000a0 0x98 /tmp/cc6Un0Q5.o
|
||||
.bss 0x0000000020000138 0x38 /tmp/ccRRCPG0.o
|
||||
.bss 0x0000000020000170 0x0 /tmp/ccWI4kHV.o
|
||||
.bss 0x0000000020000170 0x0 /tmp/ccjaIjJQ.o
|
||||
.bss 0x0000000020000170 0x0 /tmp/cceYjaVL.o
|
||||
.bss 0x0000000020000170 0x0 /tmp/ccsXJViH.o
|
||||
.bss 0x0000000020000170 0x8 /tmp/ccGz0VMC.o
|
||||
0x0000000020000170 __errno
|
||||
0x0000000020000174 _impure_ptr
|
||||
.bss 0x0000000020000178 0x0 /tmp/ccy5lZmy.o
|
||||
.bss 0x0000000020000178 0x0 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o)
|
||||
.bss 0x0000000020000178 0x0 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_divsi3.o)
|
||||
.bss 0x0000000020000178 0x0 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_dvmd_tls.o)
|
||||
*(.bss.*)
|
||||
*(COMMON)
|
||||
COMMON 0x00000000200000b0 0x20 /tmp/ccxtvPlT.o
|
||||
0x00000000200000b0 leds
|
||||
COMMON 0x00000000200000d0 0x40 /tmp/ccrrpgrR.o
|
||||
0x00000000200000d0 adc_buf
|
||||
COMMON 0x0000000020000110 0x40c /tmp/ccXNIrIP.o
|
||||
0x0000000020000110 usart_tx_buf
|
||||
0x000000002000051c . = ALIGN (0x4)
|
||||
0x000000002000051c _ebss = .
|
||||
COMMON 0x0000000020000178 0x20 /tmp/ccy8OCeb.o
|
||||
0x0000000020000178 leds
|
||||
COMMON 0x0000000020000198 0x220 /tmp/ccRRCPG0.o
|
||||
0x0000000020000198 usart_tx_buf
|
||||
0x00000000200003b8 . = ALIGN (0x4)
|
||||
0x00000000200003b8 _ebss = .
|
||||
[!provide] PROVIDE (end = _ebss)
|
||||
[!provide] PROVIDE (_end = _ebss)
|
||||
0x000000002000051c __exidx_start = .
|
||||
0x000000002000051c __exidx_end = .
|
||||
0x00000000200003b8 __exidx_start = .
|
||||
0x00000000200003b8 __exidx_end = .
|
||||
|
||||
.stab
|
||||
*(.stab)
|
||||
|
|
@ -274,36 +268,36 @@ LOAD /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a
|
|||
|
||||
.comment 0x0000000000000000 0x21
|
||||
*(.comment)
|
||||
.comment 0x0000000000000000 0x21 /tmp/ccxtvPlT.o
|
||||
.comment 0x0000000000000000 0x21 /tmp/ccy8OCeb.o
|
||||
0x22 (size before relaxing)
|
||||
.comment 0x0000000000000021 0x22 /tmp/ccrrpgrR.o
|
||||
.comment 0x0000000000000021 0x22 /tmp/ccXNIrIP.o
|
||||
.comment 0x0000000000000021 0x22 /tmp/ccy0xC7N.o
|
||||
.comment 0x0000000000000021 0x22 /tmp/ccJ50X5K.o
|
||||
.comment 0x0000000000000021 0x22 /tmp/ccFUXyQJ.o
|
||||
.comment 0x0000000000000021 0x22 /tmp/cc8rJnLI.o
|
||||
.comment 0x0000000000000021 0x22 /tmp/ccDd2fMH.o
|
||||
.comment 0x0000000000000021 0x22 /tmp/cc6Un0Q5.o
|
||||
.comment 0x0000000000000021 0x22 /tmp/ccRRCPG0.o
|
||||
.comment 0x0000000000000021 0x22 /tmp/ccWI4kHV.o
|
||||
.comment 0x0000000000000021 0x22 /tmp/cceYjaVL.o
|
||||
.comment 0x0000000000000021 0x22 /tmp/ccsXJViH.o
|
||||
.comment 0x0000000000000021 0x22 /tmp/ccGz0VMC.o
|
||||
.comment 0x0000000000000021 0x22 /tmp/ccy5lZmy.o
|
||||
|
||||
.ARM.attributes
|
||||
0x0000000000000000 0x2f
|
||||
.ARM.attributes
|
||||
0x0000000000000000 0x2b /tmp/ccxtvPlT.o
|
||||
0x0000000000000000 0x2b /tmp/ccy8OCeb.o
|
||||
.ARM.attributes
|
||||
0x000000000000002b 0x2b /tmp/ccrrpgrR.o
|
||||
0x000000000000002b 0x2b /tmp/cc6Un0Q5.o
|
||||
.ARM.attributes
|
||||
0x0000000000000056 0x2b /tmp/ccXNIrIP.o
|
||||
0x0000000000000056 0x2b /tmp/ccRRCPG0.o
|
||||
.ARM.attributes
|
||||
0x0000000000000081 0x2b /tmp/ccy0xC7N.o
|
||||
0x0000000000000081 0x2b /tmp/ccWI4kHV.o
|
||||
.ARM.attributes
|
||||
0x00000000000000ac 0x21 /tmp/ccr2qryM.o
|
||||
0x00000000000000ac 0x21 /tmp/ccjaIjJQ.o
|
||||
.ARM.attributes
|
||||
0x00000000000000cd 0x2b /tmp/ccJ50X5K.o
|
||||
0x00000000000000cd 0x2b /tmp/cceYjaVL.o
|
||||
.ARM.attributes
|
||||
0x00000000000000f8 0x2b /tmp/ccFUXyQJ.o
|
||||
0x00000000000000f8 0x2b /tmp/ccsXJViH.o
|
||||
.ARM.attributes
|
||||
0x0000000000000123 0x2b /tmp/cc8rJnLI.o
|
||||
0x0000000000000123 0x2b /tmp/ccGz0VMC.o
|
||||
.ARM.attributes
|
||||
0x000000000000014e 0x31 /tmp/ccDd2fMH.o
|
||||
0x000000000000014e 0x31 /tmp/ccy5lZmy.o
|
||||
.ARM.attributes
|
||||
0x000000000000017f 0x1e /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o)
|
||||
.ARM.attributes
|
||||
|
|
@ -326,23 +320,23 @@ LOAD /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a
|
|||
.debug_aranges 0x0000000000000000 0x180
|
||||
*(.debug_aranges)
|
||||
.debug_aranges
|
||||
0x0000000000000000 0x20 /tmp/ccxtvPlT.o
|
||||
0x0000000000000000 0x20 /tmp/ccy8OCeb.o
|
||||
.debug_aranges
|
||||
0x0000000000000020 0x20 /tmp/ccrrpgrR.o
|
||||
0x0000000000000020 0x20 /tmp/cc6Un0Q5.o
|
||||
.debug_aranges
|
||||
0x0000000000000040 0x20 /tmp/ccXNIrIP.o
|
||||
0x0000000000000040 0x20 /tmp/ccRRCPG0.o
|
||||
.debug_aranges
|
||||
0x0000000000000060 0x20 /tmp/ccy0xC7N.o
|
||||
0x0000000000000060 0x20 /tmp/ccWI4kHV.o
|
||||
.debug_aranges
|
||||
0x0000000000000080 0x28 /tmp/ccr2qryM.o
|
||||
0x0000000000000080 0x28 /tmp/ccjaIjJQ.o
|
||||
.debug_aranges
|
||||
0x00000000000000a8 0x20 /tmp/ccJ50X5K.o
|
||||
0x00000000000000a8 0x20 /tmp/cceYjaVL.o
|
||||
.debug_aranges
|
||||
0x00000000000000c8 0x20 /tmp/ccFUXyQJ.o
|
||||
0x00000000000000c8 0x20 /tmp/ccsXJViH.o
|
||||
.debug_aranges
|
||||
0x00000000000000e8 0x20 /tmp/cc8rJnLI.o
|
||||
0x00000000000000e8 0x20 /tmp/ccGz0VMC.o
|
||||
.debug_aranges
|
||||
0x0000000000000108 0x18 /tmp/ccDd2fMH.o
|
||||
0x0000000000000108 0x18 /tmp/ccy5lZmy.o
|
||||
.debug_aranges
|
||||
0x0000000000000120 0x20 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o)
|
||||
.debug_aranges
|
||||
|
|
@ -353,87 +347,87 @@ LOAD /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a
|
|||
.debug_pubnames
|
||||
*(.debug_pubnames)
|
||||
|
||||
.debug_info 0x0000000000000000 0x5eaf
|
||||
.debug_info 0x0000000000000000 0x62e5
|
||||
*(.debug_info .gnu.linkonce.wi.*)
|
||||
.debug_info 0x0000000000000000 0x12f8 /tmp/ccxtvPlT.o
|
||||
.debug_info 0x00000000000012f8 0x1129 /tmp/ccrrpgrR.o
|
||||
.debug_info 0x0000000000002421 0x10a6 /tmp/ccXNIrIP.o
|
||||
.debug_info 0x00000000000034c7 0xcf2 /tmp/ccy0xC7N.o
|
||||
.debug_info 0x00000000000041b9 0x22 /tmp/ccr2qryM.o
|
||||
.debug_info 0x00000000000041db 0x263 /tmp/ccJ50X5K.o
|
||||
.debug_info 0x000000000000443e 0x795 /tmp/ccFUXyQJ.o
|
||||
.debug_info 0x0000000000004bd3 0x1e9 /tmp/cc8rJnLI.o
|
||||
.debug_info 0x0000000000004dbc 0x1081 /tmp/ccDd2fMH.o
|
||||
.debug_info 0x0000000000005e3d 0x26 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o)
|
||||
.debug_info 0x0000000000005e63 0x26 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_divsi3.o)
|
||||
.debug_info 0x0000000000005e89 0x26 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_dvmd_tls.o)
|
||||
.debug_info 0x0000000000000000 0x132d /tmp/ccy8OCeb.o
|
||||
.debug_info 0x000000000000132d 0x11f5 /tmp/cc6Un0Q5.o
|
||||
.debug_info 0x0000000000002522 0x13c6 /tmp/ccRRCPG0.o
|
||||
.debug_info 0x00000000000038e8 0xd07 /tmp/ccWI4kHV.o
|
||||
.debug_info 0x00000000000045ef 0x22 /tmp/ccjaIjJQ.o
|
||||
.debug_info 0x0000000000004611 0x263 /tmp/cceYjaVL.o
|
||||
.debug_info 0x0000000000004874 0x795 /tmp/ccsXJViH.o
|
||||
.debug_info 0x0000000000005009 0x1e9 /tmp/ccGz0VMC.o
|
||||
.debug_info 0x00000000000051f2 0x1081 /tmp/ccy5lZmy.o
|
||||
.debug_info 0x0000000000006273 0x26 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o)
|
||||
.debug_info 0x0000000000006299 0x26 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_divsi3.o)
|
||||
.debug_info 0x00000000000062bf 0x26 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_dvmd_tls.o)
|
||||
|
||||
.debug_abbrev 0x0000000000000000 0x1221
|
||||
.debug_abbrev 0x0000000000000000 0x12ad
|
||||
*(.debug_abbrev)
|
||||
.debug_abbrev 0x0000000000000000 0x355 /tmp/ccxtvPlT.o
|
||||
.debug_abbrev 0x0000000000000355 0x322 /tmp/ccrrpgrR.o
|
||||
.debug_abbrev 0x0000000000000677 0x32d /tmp/ccXNIrIP.o
|
||||
.debug_abbrev 0x00000000000009a4 0x290 /tmp/ccy0xC7N.o
|
||||
.debug_abbrev 0x0000000000000c34 0x12 /tmp/ccr2qryM.o
|
||||
.debug_abbrev 0x0000000000000c46 0x113 /tmp/ccJ50X5K.o
|
||||
.debug_abbrev 0x0000000000000d59 0x23c /tmp/ccFUXyQJ.o
|
||||
.debug_abbrev 0x0000000000000f95 0x117 /tmp/cc8rJnLI.o
|
||||
.debug_abbrev 0x00000000000010ac 0x139 /tmp/ccDd2fMH.o
|
||||
.debug_abbrev 0x00000000000011e5 0x14 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o)
|
||||
.debug_abbrev 0x00000000000011f9 0x14 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_divsi3.o)
|
||||
.debug_abbrev 0x000000000000120d 0x14 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_dvmd_tls.o)
|
||||
.debug_abbrev 0x0000000000000000 0x34c /tmp/ccy8OCeb.o
|
||||
.debug_abbrev 0x000000000000034c 0x314 /tmp/cc6Un0Q5.o
|
||||
.debug_abbrev 0x0000000000000660 0x3ec /tmp/ccRRCPG0.o
|
||||
.debug_abbrev 0x0000000000000a4c 0x274 /tmp/ccWI4kHV.o
|
||||
.debug_abbrev 0x0000000000000cc0 0x12 /tmp/ccjaIjJQ.o
|
||||
.debug_abbrev 0x0000000000000cd2 0x113 /tmp/cceYjaVL.o
|
||||
.debug_abbrev 0x0000000000000de5 0x23c /tmp/ccsXJViH.o
|
||||
.debug_abbrev 0x0000000000001021 0x117 /tmp/ccGz0VMC.o
|
||||
.debug_abbrev 0x0000000000001138 0x139 /tmp/ccy5lZmy.o
|
||||
.debug_abbrev 0x0000000000001271 0x14 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o)
|
||||
.debug_abbrev 0x0000000000001285 0x14 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_divsi3.o)
|
||||
.debug_abbrev 0x0000000000001299 0x14 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_dvmd_tls.o)
|
||||
|
||||
.debug_line 0x0000000000000000 0x1806
|
||||
.debug_line 0x0000000000000000 0x198f
|
||||
*(.debug_line)
|
||||
.debug_line 0x0000000000000000 0x3cb /tmp/ccxtvPlT.o
|
||||
.debug_line 0x00000000000003cb 0x363 /tmp/ccrrpgrR.o
|
||||
.debug_line 0x000000000000072e 0x3b2 /tmp/ccXNIrIP.o
|
||||
.debug_line 0x0000000000000ae0 0x305 /tmp/ccy0xC7N.o
|
||||
.debug_line 0x0000000000000de5 0x77 /tmp/ccr2qryM.o
|
||||
.debug_line 0x0000000000000e5c 0x1ab /tmp/ccJ50X5K.o
|
||||
.debug_line 0x0000000000001007 0x466 /tmp/ccFUXyQJ.o
|
||||
.debug_line 0x000000000000146d 0xf4 /tmp/cc8rJnLI.o
|
||||
.debug_line 0x0000000000001561 0x148 /tmp/ccDd2fMH.o
|
||||
.debug_line 0x00000000000016a9 0x76 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o)
|
||||
.debug_line 0x000000000000171f 0x7d /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_divsi3.o)
|
||||
.debug_line 0x000000000000179c 0x6a /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_dvmd_tls.o)
|
||||
.debug_line 0x0000000000000000 0x3d6 /tmp/ccy8OCeb.o
|
||||
.debug_line 0x00000000000003d6 0x37f /tmp/cc6Un0Q5.o
|
||||
.debug_line 0x0000000000000755 0x51f /tmp/ccRRCPG0.o
|
||||
.debug_line 0x0000000000000c74 0x2fa /tmp/ccWI4kHV.o
|
||||
.debug_line 0x0000000000000f6e 0x77 /tmp/ccjaIjJQ.o
|
||||
.debug_line 0x0000000000000fe5 0x1ab /tmp/cceYjaVL.o
|
||||
.debug_line 0x0000000000001190 0x466 /tmp/ccsXJViH.o
|
||||
.debug_line 0x00000000000015f6 0xf4 /tmp/ccGz0VMC.o
|
||||
.debug_line 0x00000000000016ea 0x148 /tmp/ccy5lZmy.o
|
||||
.debug_line 0x0000000000001832 0x76 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o)
|
||||
.debug_line 0x00000000000018a8 0x7d /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_divsi3.o)
|
||||
.debug_line 0x0000000000001925 0x6a /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_dvmd_tls.o)
|
||||
|
||||
.debug_frame 0x0000000000000000 0x888
|
||||
.debug_frame 0x0000000000000000 0x8c4
|
||||
*(.debug_frame)
|
||||
.debug_frame 0x0000000000000000 0x164 /tmp/ccxtvPlT.o
|
||||
.debug_frame 0x0000000000000164 0xec /tmp/ccrrpgrR.o
|
||||
.debug_frame 0x0000000000000250 0x168 /tmp/ccXNIrIP.o
|
||||
.debug_frame 0x00000000000003b8 0xb0 /tmp/ccy0xC7N.o
|
||||
.debug_frame 0x0000000000000468 0x4c /tmp/ccJ50X5K.o
|
||||
.debug_frame 0x00000000000004b4 0x308 /tmp/ccFUXyQJ.o
|
||||
.debug_frame 0x00000000000007bc 0x8c /tmp/cc8rJnLI.o
|
||||
.debug_frame 0x0000000000000848 0x20 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o)
|
||||
.debug_frame 0x0000000000000868 0x20 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_divsi3.o)
|
||||
.debug_frame 0x0000000000000000 0x164 /tmp/ccy8OCeb.o
|
||||
.debug_frame 0x0000000000000164 0x104 /tmp/cc6Un0Q5.o
|
||||
.debug_frame 0x0000000000000268 0x1ac /tmp/ccRRCPG0.o
|
||||
.debug_frame 0x0000000000000414 0x90 /tmp/ccWI4kHV.o
|
||||
.debug_frame 0x00000000000004a4 0x4c /tmp/cceYjaVL.o
|
||||
.debug_frame 0x00000000000004f0 0x308 /tmp/ccsXJViH.o
|
||||
.debug_frame 0x00000000000007f8 0x8c /tmp/ccGz0VMC.o
|
||||
.debug_frame 0x0000000000000884 0x20 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o)
|
||||
.debug_frame 0x00000000000008a4 0x20 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_divsi3.o)
|
||||
|
||||
.debug_str 0x0000000000000000 0x12fd
|
||||
.debug_str 0x0000000000000000 0x1404
|
||||
*(.debug_str)
|
||||
.debug_str 0x0000000000000000 0x952 /tmp/ccxtvPlT.o
|
||||
0x9f5 (size before relaxing)
|
||||
.debug_str 0x0000000000000952 0x101 /tmp/ccrrpgrR.o
|
||||
0x95f (size before relaxing)
|
||||
.debug_str 0x0000000000000a53 0xdc /tmp/ccXNIrIP.o
|
||||
0x939 (size before relaxing)
|
||||
.debug_str 0x0000000000000b2f 0xa9 /tmp/ccy0xC7N.o
|
||||
0x65f (size before relaxing)
|
||||
.debug_str 0x0000000000000bd8 0x22 /tmp/ccr2qryM.o
|
||||
.debug_str 0x0000000000000000 0x968 /tmp/ccy8OCeb.o
|
||||
0xa13 (size before relaxing)
|
||||
.debug_str 0x0000000000000968 0x125 /tmp/cc6Un0Q5.o
|
||||
0x9a9 (size before relaxing)
|
||||
.debug_str 0x0000000000000a8d 0x1e1 /tmp/ccRRCPG0.o
|
||||
0xa79 (size before relaxing)
|
||||
.debug_str 0x0000000000000c6e 0x82 /tmp/ccWI4kHV.o
|
||||
0x6ba (size before relaxing)
|
||||
.debug_str 0x0000000000000cf0 0x22 /tmp/ccjaIjJQ.o
|
||||
0x57 (size before relaxing)
|
||||
.debug_str 0x0000000000000bfa 0x53 /tmp/ccJ50X5K.o
|
||||
.debug_str 0x0000000000000d12 0x53 /tmp/cceYjaVL.o
|
||||
0x219 (size before relaxing)
|
||||
.debug_str 0x0000000000000c4d 0x3ae /tmp/ccFUXyQJ.o
|
||||
.debug_str 0x0000000000000d65 0x3ae /tmp/ccsXJViH.o
|
||||
0x5bf (size before relaxing)
|
||||
.debug_str 0x0000000000000ffb 0x39 /tmp/cc8rJnLI.o
|
||||
.debug_str 0x0000000000001113 0x39 /tmp/ccGz0VMC.o
|
||||
0x1b7 (size before relaxing)
|
||||
.debug_str 0x0000000000001034 0x227 /tmp/ccDd2fMH.o
|
||||
.debug_str 0x000000000000114c 0x216 /tmp/ccy5lZmy.o
|
||||
0x5ca (size before relaxing)
|
||||
.debug_str 0x000000000000125b 0xa2 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o)
|
||||
.debug_str 0x0000000000001362 0xa2 /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_udivsi3.o)
|
||||
0xae (size before relaxing)
|
||||
.debug_str 0x00000000000012fd 0xae /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_divsi3.o)
|
||||
.debug_str 0x00000000000012fd 0xae /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_dvmd_tls.o)
|
||||
.debug_str 0x0000000000001404 0xae /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_divsi3.o)
|
||||
.debug_str 0x0000000000001404 0xae /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a(_dvmd_tls.o)
|
||||
|
||||
.debug_loc
|
||||
*(.debug_loc)
|
||||
|
|
@ -455,5 +449,5 @@ LOAD /usr/lib/gcc/arm-none-eabi/9.2.0/thumb/v6-m/nofp/libgcc.a
|
|||
OUTPUT(main.elf elf32-littlearm)
|
||||
|
||||
.debug_ranges 0x0000000000000000 0x38
|
||||
.debug_ranges 0x0000000000000000 0x18 /tmp/ccy0xC7N.o
|
||||
.debug_ranges 0x0000000000000018 0x20 /tmp/ccr2qryM.o
|
||||
.debug_ranges 0x0000000000000000 0x18 /tmp/ccWI4kHV.o
|
||||
.debug_ranges 0x0000000000000018 0x20 /tmp/ccjaIjJQ.o
|
||||
|
|
|
|||
|
|
@ -31,14 +31,27 @@
|
|||
|
||||
volatile struct dma_tx_buf usart_tx_buf;
|
||||
|
||||
static uint32_t tx_overruns=0, rx_overruns=0;
|
||||
static uint32_t rx_framing_errors=0, rx_protocol_errors=0;
|
||||
|
||||
static struct cobs_decode_state cobs_state;
|
||||
|
||||
static volatile uint8_t rx_buf[32];
|
||||
|
||||
|
||||
static void usart_schedule_dma(void);
|
||||
int usart_putc_nonblocking(char c);
|
||||
int usart_putc(char c);
|
||||
static int usart_putc_nonblocking(uint8_t c);
|
||||
static int usart_retransmit_packet(uint8_t idx);
|
||||
|
||||
|
||||
void usart_dma_init() {
|
||||
usart_tx_buf.xfr_start = -1,
|
||||
usart_tx_buf.xfr_end = 0,
|
||||
usart_tx_buf.wr_pos = 0,
|
||||
usart_tx_buf.xfr_start = -1;
|
||||
usart_tx_buf.xfr_end = 0;
|
||||
usart_tx_buf.wr_pos = 0;
|
||||
for (size_t i=0; i<ARRAY_LEN(usart_tx_buf.packet_start); i++)
|
||||
usart_tx_buf.packet_start[i] = -1;
|
||||
|
||||
cobs_decode_incremental_initialize(&cobs_state);
|
||||
|
||||
/* Configure DMA 1 Channel 2 to handle uart transmission */
|
||||
DMA1_Channel2->CPAR = (uint32_t)&(USART1->TDR);
|
||||
|
|
@ -74,7 +87,7 @@ void usart_dma_init() {
|
|||
//USART1->BRR = 417;
|
||||
|
||||
//USART1->BRR = 48; /* 1MBd */
|
||||
USART1->BRR = 96; /* 500kBd */
|
||||
//USART1->BRR = 96; /* 500kBd */
|
||||
USART1->BRR = 192; /* 250kBd */
|
||||
//USART1->BRR = 208; /* 230400 */
|
||||
|
||||
|
|
@ -83,19 +96,72 @@ void usart_dma_init() {
|
|||
USART1->CR3 |= USART_CR3_DMAT; /* TX DMA enable */
|
||||
|
||||
/* Enable receive interrupt */
|
||||
//NVIC_EnableIRQ(USART1_IRQn);
|
||||
//NVIC_SetPriority(USART1_IRQn, 1);
|
||||
NVIC_EnableIRQ(USART1_IRQn);
|
||||
NVIC_SetPriority(USART1_IRQn, 3<<5);
|
||||
|
||||
/* And... go! */
|
||||
USART1->CR1 |= USART_CR1_UE;
|
||||
}
|
||||
|
||||
void USART1_IRQHandler() {
|
||||
uint32_t isr = USART1->ISR;
|
||||
|
||||
if (isr & USART_ISR_ORE) {
|
||||
USART1->ICR = USART_ICR_ORECF;
|
||||
rx_overruns++;
|
||||
return;
|
||||
}
|
||||
|
||||
if (isr & USART_ISR_RXNE) {
|
||||
uint8_t c = USART1->RDR;
|
||||
|
||||
int rc = cobs_decode_incremental(&cobs_state, (char *)rx_buf, sizeof(rx_buf), c);
|
||||
if (rc == 0) /* packet still incomplete */
|
||||
return;
|
||||
|
||||
if (rc < 0) {
|
||||
rx_framing_errors++;
|
||||
return;
|
||||
}
|
||||
|
||||
/* A complete frame received */
|
||||
if (rc != 2) {
|
||||
rx_protocol_errors++;
|
||||
return;
|
||||
}
|
||||
|
||||
volatile struct ctrl_pkt *pkt = (volatile struct ctrl_pkt *)rx_buf;
|
||||
|
||||
switch (pkt->type) {
|
||||
case CTRL_PKT_RESET:
|
||||
for (size_t i=0; i<ARRAY_LEN(usart_tx_buf.packet_start); i++)
|
||||
usart_tx_buf.packet_start[i] = -1;
|
||||
break;
|
||||
|
||||
case CTRL_PKT_ACK:
|
||||
if (usart_ack_packet(pkt->orig_id))
|
||||
rx_protocol_errors++;
|
||||
break;
|
||||
|
||||
case CTRL_PKT_RETRANSMIT:
|
||||
if (usart_retransmit_packet(pkt->orig_id))
|
||||
rx_protocol_errors++;
|
||||
break;
|
||||
|
||||
default:
|
||||
rx_protocol_errors++;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void usart_schedule_dma() {
|
||||
/* This function is only called when the DMA channel is disabled. This means we don't have to guard it in IRQ
|
||||
* disables. */
|
||||
volatile struct dma_tx_buf *buf = &usart_tx_buf;
|
||||
|
||||
size_t xfr_len, xfr_start = buf->xfr_end;
|
||||
ssize_t xfr_len, xfr_start = buf->xfr_end;
|
||||
if (buf->wr_pos > xfr_start) /* no wraparound */
|
||||
xfr_len = buf->wr_pos - xfr_start;
|
||||
else /* wraparound */
|
||||
|
|
@ -110,15 +176,28 @@ void usart_schedule_dma() {
|
|||
DMA1_Channel2->CCR |= DMA_CCR_EN;
|
||||
}
|
||||
|
||||
int usart_dma_fifo_push(volatile struct dma_tx_buf *buf, char c) {
|
||||
int usart_ack_packet(uint8_t idx) {
|
||||
if (idx > ARRAY_LEN(usart_tx_buf.packet_start))
|
||||
return -EINVAL;
|
||||
|
||||
usart_tx_buf.packet_start[idx] = -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int usart_dma_fifo_push(volatile struct dma_tx_buf *buf, uint8_t c) {
|
||||
/* This function must be guarded by IRQ disable since the IRQ may schedule a new transfer and charge pos/start. */
|
||||
NVIC_DisableIRQ(DMA1_Channel2_3_IRQn);
|
||||
|
||||
if (buf->wr_pos == buf->xfr_start) {
|
||||
NVIC_EnableIRQ(DMA1_Channel2_3_IRQn);
|
||||
return -EBUSY;
|
||||
/* If the write pointer hit any unacknowledged packet start position we can't advance it.
|
||||
* Packet start positions are unordered and we have to scan here. */
|
||||
for (size_t i=0; i<ARRAY_LEN(buf->packet_start); i++) {
|
||||
if (buf->wr_pos == buf->packet_start[i]) {
|
||||
NVIC_EnableIRQ(DMA1_Channel2_3_IRQn);
|
||||
return -EBUSY;
|
||||
}
|
||||
}
|
||||
|
||||
/* write byte, then increment to avoid racing the DMA ISR reading wr_pos */
|
||||
buf->data[buf->wr_pos] = c;
|
||||
buf->wr_pos = (buf->wr_pos + 1) % sizeof(buf->data);
|
||||
|
||||
|
|
@ -126,7 +205,7 @@ int usart_dma_fifo_push(volatile struct dma_tx_buf *buf, char c) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int usart_putc(char c) {
|
||||
int usart_putc(uint8_t c) {
|
||||
/* push char to fifo, busy-loop if stalled to wait for USART to empty fifo via DMA */
|
||||
while (usart_dma_fifo_push(&usart_tx_buf, c) == -EBUSY) {
|
||||
/* idle */
|
||||
|
|
@ -134,7 +213,7 @@ int usart_putc(char c) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int usart_putc_nonblocking(char c) {
|
||||
int usart_putc_nonblocking(uint8_t c) {
|
||||
return usart_dma_fifo_push(&usart_tx_buf, c);
|
||||
}
|
||||
|
||||
|
|
@ -148,26 +227,70 @@ void DMA1_Channel2_3_IRQHandler(void) {
|
|||
usart_schedule_dma();
|
||||
}
|
||||
|
||||
void usart_send_packet(const uint8_t *data, size_t len) {
|
||||
/* ignore return value as putf is blocking and always succeeds */
|
||||
(void)cobs_encode_usart(usart_putc, (char *)data, len);
|
||||
int usart_retransmit_packet(uint8_t idx) {
|
||||
/* Disable ADC DMA IRQ to prevent write races */
|
||||
NVIC_DisableIRQ(DMA1_Channel1_IRQn);
|
||||
|
||||
/* If the DMA stream is idle right now, schedule a transfer */
|
||||
if (!(DMA1_Channel2->CCR & DMA_CCR_EN))
|
||||
usart_schedule_dma();
|
||||
ssize_t i = usart_tx_buf.packet_start[idx];
|
||||
ssize_t start = i;
|
||||
|
||||
/* Copy packet */
|
||||
uint8_t c;
|
||||
while ((c = usart_tx_buf.data[i++])) {
|
||||
if (usart_putc_nonblocking(c)) {
|
||||
tx_overruns++;
|
||||
return -EBUSY;
|
||||
}
|
||||
}
|
||||
|
||||
/* Terminating null byte */
|
||||
if (usart_putc_nonblocking(0)) {
|
||||
tx_overruns++;
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
/* Update start index */
|
||||
usart_tx_buf.packet_start[idx] = start;
|
||||
|
||||
NVIC_EnableIRQ(DMA1_Channel1_IRQn);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int usart_send_packet_nonblocking(const uint8_t *data, size_t len) {
|
||||
/* ignore return value as putf is blocking and always succeeds */
|
||||
/* FIXME DEBUG */
|
||||
//int rc = cobs_encode_usart(usart_putc_nonblocking, (char *)data, len);
|
||||
//if (rc)
|
||||
// return rc;
|
||||
/* END */
|
||||
static uint8_t x = 0;
|
||||
/* len is the packet length including headers */
|
||||
int usart_send_packet_nonblocking(struct ll_pkt *pkt, size_t pkt_len) {
|
||||
|
||||
ssize_t start = usart_tx_buf.wr_pos;
|
||||
/* Find a free slot for this packet */
|
||||
size_t packet_idx = 0;
|
||||
do {
|
||||
if (usart_tx_buf.packet_start[packet_idx] == -1)
|
||||
goto success;
|
||||
} while (++packet_idx <ARRAY_LEN(usart_tx_buf.packet_start));
|
||||
|
||||
tx_overruns++;
|
||||
return -EBUSY;
|
||||
|
||||
success:
|
||||
pkt->pid = packet_idx;
|
||||
pkt->_pad = 0;
|
||||
|
||||
/* make the value this wonky-ass CRC implementation produces match zlib etc. */
|
||||
CRC->CR = CRC_CR_REV_OUT | (1<<CRC_CR_REV_IN_Pos) | CRC_CR_RESET;
|
||||
for (size_t i=offsetof(struct ll_pkt, pid); i<pkt_len; i++)
|
||||
CRC->DR = ((uint8_t *)pkt)[i];
|
||||
|
||||
pkt->crc32 = ~CRC->DR;
|
||||
int rc = cobs_encode_usart((int (*)(char))usart_putc_nonblocking, (char *)pkt, pkt_len);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
/* Checkpoint packet start index to prevent overwriting before ack */
|
||||
usart_tx_buf.packet_start[packet_idx] = start;
|
||||
/* FIXME debug code
|
||||
static uint8_t x = 0;
|
||||
for (size_t i=0; i<351; i++)
|
||||
usart_putc_nonblocking(x++);
|
||||
*/
|
||||
|
||||
/* If the DMA stream is idle right now, schedule a transfer */
|
||||
if (!(DMA1_Channel2->CCR & DMA_CCR_EN))
|
||||
|
|
|
|||
|
|
@ -27,19 +27,46 @@
|
|||
#include <stdarg.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "global.h"
|
||||
|
||||
struct dma_tx_buf {
|
||||
size_t xfr_start; /* Start index of running DMA transfer */
|
||||
size_t xfr_end; /* End index of running DMA transfer plus one */
|
||||
size_t wr_pos; /* Next index to be written */
|
||||
/* The following fields are accessed only from DMA ISR */
|
||||
ssize_t xfr_start; /* Start index of running DMA transfer */
|
||||
ssize_t xfr_end; /* End index of running DMA transfer plus one */
|
||||
uint8_t cur_packet;
|
||||
|
||||
/* The following fields are written only from non-interrupt code */
|
||||
ssize_t wr_pos; /* Next index to be written */
|
||||
ssize_t packet_start[8];
|
||||
|
||||
/* The following may be accessed by anything */
|
||||
uint8_t data[512];
|
||||
size_t packet_starts[5];
|
||||
};
|
||||
|
||||
struct __attribute__((__packed__)) ll_pkt {
|
||||
uint32_t crc32;
|
||||
/* CRC computed over entire packet starting here */
|
||||
uint8_t pid;
|
||||
uint8_t _pad;
|
||||
uint8_t data[];
|
||||
};
|
||||
|
||||
enum ctrl_pkt_type {
|
||||
CTRL_PKT_RESET = 1,
|
||||
CTRL_PKT_ACK = 2,
|
||||
CTRL_PKT_RETRANSMIT = 3,
|
||||
};
|
||||
|
||||
struct __attribute__((__packed__)) ctrl_pkt {
|
||||
uint8_t type;
|
||||
uint8_t orig_id;
|
||||
};
|
||||
|
||||
extern volatile struct dma_tx_buf usart_tx_buf;
|
||||
|
||||
void usart_dma_init(void);
|
||||
int usart_dma_fifo_push(volatile struct dma_tx_buf *buf, char c);
|
||||
void usart_send_packet(const uint8_t *data, size_t len);
|
||||
int usart_send_packet_nonblocking(const uint8_t *data, size_t len);
|
||||
int usart_dma_fifo_push(volatile struct dma_tx_buf *buf, uint8_t c);
|
||||
int usart_send_packet_nonblocking(struct ll_pkt *pkt, size_t pkt_len);
|
||||
int usart_ack_packet(uint8_t idx);
|
||||
|
||||
#endif // __SERIAL_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue