mirror of https://github.com/rusefi/openblt.git
- Added CAN support to the STM32Fxx port and the Olimex STM32-P207 demo programs.
git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@146 5dc33758-31d5-4daf-9ae8-b24bf3d40d73
This commit is contained in:
parent
0656616db9
commit
6a6d2555a4
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -56,6 +56,33 @@
|
|||
/****************************************************************************************
|
||||
* C O M M U N I C A T I O N I N T E R F A C E C O N F I G U R A T I O N
|
||||
****************************************************************************************/
|
||||
/* The CAN communication interface is selected by setting the BOOT_COM_CAN_ENABLE
|
||||
* configurable to 1. Configurable BOOT_COM_CAN_BAUDRATE selects the communication speed
|
||||
* in bits/second. Two CAN messages are reserved for communication with the host. The
|
||||
* message identifier for sending data from the target to the host is configured with
|
||||
* BOOT_COM_CAN_TXMSG_ID. The one for receiving data from the host is configured with
|
||||
* BOOT_COM_CAN_RXMSG_ID. The maximum amount of data bytes in a message for data
|
||||
* transmission and reception is set through BOOT_COM_CAN_TX_MAX_DATA and
|
||||
* BOOT_COM_CAN_RX_MAX_DATA, respectively. It is common for a microcontroller to have more
|
||||
* than 1 CAN controller on board. The zero-based BOOT_COM_CAN_CHANNEL_INDEX selects the
|
||||
* CAN controller channel.
|
||||
*
|
||||
*/
|
||||
/** \brief Enable/disable CAN transport layer. */
|
||||
#define BOOT_COM_CAN_ENABLE (1)
|
||||
/** \brief Configure the desired CAN baudrate. */
|
||||
#define BOOT_COM_CAN_BAUDRATE (500000)
|
||||
/** \brief Configure CAN message ID target->host. */
|
||||
#define BOOT_COM_CAN_TX_MSG_ID (0x7E1)
|
||||
/** \brief Configure number of bytes in the target->host CAN message. */
|
||||
#define BOOT_COM_CAN_TX_MAX_DATA (8)
|
||||
/** \brief Configure CAN message ID host->target. */
|
||||
#define BOOT_COM_CAN_RX_MSG_ID (0x667)
|
||||
/** \brief Configure number of bytes in the host->target CAN message. */
|
||||
#define BOOT_COM_CAN_RX_MAX_DATA (8)
|
||||
/** \brief Select the desired CAN peripheral as a zero based index. */
|
||||
#define BOOT_COM_CAN_CHANNEL_INDEX (0)
|
||||
|
||||
/* The UART communication interface is selected by setting the BOOT_COM_UART_ENABLE
|
||||
* configurable to 1. Configurable BOOT_COM_UART_BAUDRATE selects the communication speed
|
||||
* in bits/second. The maximum amount of data bytes in a message for data transmission
|
||||
|
|
|
@ -811,7 +811,7 @@
|
|||
|
||||
1469267887 source:c:\work\software\openblt\target\source\armcm3_stm32f2\gcc\cstart.s
|
||||
|
||||
1469286137 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\hooks.c
|
||||
1469286972 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\hooks.c
|
||||
"boot.h"
|
||||
"led.h"
|
||||
"stm32f2xx.h"
|
||||
|
@ -833,7 +833,7 @@
|
|||
|
||||
1462050329 c:\work\software\openblt\target\source\assert.h
|
||||
|
||||
1469285352 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\\blt_conf.h
|
||||
1469290552 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\\blt_conf.h
|
||||
|
||||
1469095224 c:\work\software\openblt\target\source\plausibility.h
|
||||
|
||||
|
@ -868,7 +868,7 @@
|
|||
|
||||
1469268835 c:\work\software\openblt\target\source\armcm3_stm32f2\flash.h
|
||||
|
||||
1469285339 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\main.c
|
||||
1469290821 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\main.c
|
||||
"boot.h"
|
||||
"stm32f2xx.h"
|
||||
|
||||
|
@ -961,3 +961,6 @@
|
|||
1456845502 c:\work\software\openblt\target\source\third_party\fatfs\src\option\ccsbcs.c
|
||||
"../ff.h"
|
||||
|
||||
1469290576 source:c:\work\software\openblt\target\source\armcm3_stm32f2\can.c
|
||||
"boot.h"
|
||||
|
||||
|
|
|
@ -312,6 +312,10 @@
|
|||
<Option compilerVar="CC" />
|
||||
<Option virtualFolder="Sources\" />
|
||||
</Unit>
|
||||
<Unit filename="..\..\..\..\Source\ARMCM3_STM32F2\can.c">
|
||||
<Option compilerVar="CC" />
|
||||
<Option virtualFolder="Sources\Core\" />
|
||||
</Unit>
|
||||
<Unit filename="..\..\..\..\Source\ARMCM3_STM32F2\cpu.c">
|
||||
<Option compilerVar="CC" />
|
||||
<Option virtualFolder="Sources\Core\" />
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<EmBitz_layout_file>
|
||||
<ActiveTarget name="Debug" />
|
||||
<File name="..\blt_conf.h" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<File name="..\blt_conf.h" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="5914" topLine="60" />
|
||||
<Cursor1 position="4969" topLine="51" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\hooks.c" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
|
@ -33,7 +33,12 @@
|
|||
</File>
|
||||
<File name="..\main.c" open="1" top="1" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="2" topLine="6" />
|
||||
<Cursor1 position="2697" topLine="41" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\..\..\Source\ARMCM3_STM32F2\can.c" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="9731" topLine="218" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\..\..\Source\ARMCM3_STM32F2\flash.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
|
|
|
@ -132,6 +132,24 @@ static void Init(void)
|
|||
/* enable UART */
|
||||
USART_Cmd(USART3, ENABLE);
|
||||
#endif
|
||||
|
||||
#if (BOOT_COM_CAN_ENABLE > 0)
|
||||
/* enable clocks for CAN1 transmitter and receiver pins */
|
||||
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
|
||||
/* select alternate function for the CAN2 pins */
|
||||
GPIO_PinAFConfig(GPIOB, GPIO_PinSource8, GPIO_AF_CAN1);
|
||||
GPIO_PinAFConfig(GPIOB, GPIO_PinSource9, GPIO_AF_CAN1);
|
||||
/* configure CAN1 RX and TX pins */
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||
GPIO_Init(GPIOB, &GPIO_InitStructure);
|
||||
/* enable CAN clock */
|
||||
RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);
|
||||
#endif
|
||||
|
||||
} /*** end of Init ***/
|
||||
|
||||
|
||||
|
|
Binary file not shown.
|
@ -105,7 +105,7 @@ Discarded input sections
|
|||
.text.IrqInterruptRestore
|
||||
0x00000000 0x28 ..\obj\irq.o
|
||||
.debug_macro 0x00000000 0x862 ..\obj\irq.o
|
||||
.debug_macro 0x00000000 0x87 ..\obj\irq.o
|
||||
.debug_macro 0x00000000 0xb7 ..\obj\irq.o
|
||||
.debug_macro 0x00000000 0x4c ..\obj\irq.o
|
||||
.debug_macro 0x00000000 0x3a ..\obj\irq.o
|
||||
.debug_macro 0x00000000 0x16 ..\obj\irq.o
|
||||
|
@ -180,7 +180,7 @@ Discarded input sections
|
|||
.data 0x00000000 0x0 ..\obj\led.o
|
||||
.bss 0x00000000 0x0 ..\obj\led.o
|
||||
.debug_macro 0x00000000 0x862 ..\obj\led.o
|
||||
.debug_macro 0x00000000 0x87 ..\obj\led.o
|
||||
.debug_macro 0x00000000 0xb7 ..\obj\led.o
|
||||
.debug_macro 0x00000000 0x4c ..\obj\led.o
|
||||
.debug_macro 0x00000000 0x3a ..\obj\led.o
|
||||
.debug_macro 0x00000000 0x16 ..\obj\led.o
|
||||
|
@ -508,14 +508,6 @@ Discarded input sections
|
|||
.text 0x00000000 0x0 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.data 0x00000000 0x0 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.bss 0x00000000 0x0 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.text.CAN_DeInit
|
||||
0x00000000 0x44 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.text.CAN_Init
|
||||
0x00000000 0x1a4 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.text.CAN_FilterInit
|
||||
0x00000000 0x164 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.text.CAN_StructInit
|
||||
0x00000000 0x54 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.text.CAN_SlaveStartBank
|
||||
0x00000000 0x60 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.text.CAN_DBGFreeze
|
||||
|
@ -528,12 +520,8 @@ Discarded input sections
|
|||
0x00000000 0xd4 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.text.CAN_CancelTransmit
|
||||
0x00000000 0x50 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.text.CAN_Receive
|
||||
0x00000000 0x170 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.text.CAN_FIFORelease
|
||||
0x00000000 0x38 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.text.CAN_MessagePending
|
||||
0x00000000 0x4c ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.text.CAN_OperatingModeRequest
|
||||
0x00000000 0xfc ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.text.CAN_Sleep
|
||||
|
@ -558,12 +546,6 @@ Discarded input sections
|
|||
0x00000000 0xdc ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.text.CheckITStatus
|
||||
0x00000000 0x30 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_info 0x00000000 0xba4 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_abbrev 0x00000000 0x1f8 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_aranges
|
||||
0x00000000 0xe0 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_ranges 0x00000000 0xd0 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_macro 0x00000000 0x1e8 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_macro 0x00000000 0x862 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_macro 0x00000000 0x4c ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_macro 0x00000000 0x3a ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
|
@ -599,12 +581,6 @@ Discarded input sections
|
|||
.debug_macro 0x00000000 0x82 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_macro 0x00000000 0x35 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_macro 0x00000000 0x3c9 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_line 0x00000000 0x7bd ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_str 0x00000000 0x54a62 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.comment 0x00000000 0x47 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.ARM.attributes
|
||||
0x00000000 0x33 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_frame 0x00000000 0x2d4 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.group 0x00000000 0x8 ..\obj\lib\spl\src\stm32f2xx_crc.o
|
||||
.group 0x00000000 0x8 ..\obj\lib\spl\src\stm32f2xx_crc.o
|
||||
.group 0x00000000 0x8 ..\obj\lib\spl\src\stm32f2xx_crc.o
|
||||
|
@ -2748,8 +2724,6 @@ Discarded input sections
|
|||
0x00000000 0x3c ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.text.RCC_AHB3PeriphResetCmd
|
||||
0x00000000 0x3c ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.text.RCC_APB1PeriphResetCmd
|
||||
0x00000000 0x3c ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.text.RCC_APB2PeriphResetCmd
|
||||
0x00000000 0x3c ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.text.RCC_AHB1PeriphClockLPModeCmd
|
||||
|
@ -4060,7 +4034,7 @@ Discarded input sections
|
|||
.data 0x00000000 0x0 ..\obj\main.o
|
||||
.bss 0x00000000 0x0 ..\obj\main.o
|
||||
.debug_macro 0x00000000 0x862 ..\obj\main.o
|
||||
.debug_macro 0x00000000 0x87 ..\obj\main.o
|
||||
.debug_macro 0x00000000 0xb7 ..\obj\main.o
|
||||
.debug_macro 0x00000000 0x4c ..\obj\main.o
|
||||
.debug_macro 0x00000000 0x3a ..\obj\main.o
|
||||
.debug_macro 0x00000000 0x16 ..\obj\main.o
|
||||
|
@ -4139,7 +4113,7 @@ Discarded input sections
|
|||
.text.TimerDeinit
|
||||
0x00000000 0x18 ..\obj\timer.o
|
||||
.debug_macro 0x00000000 0x862 ..\obj\timer.o
|
||||
.debug_macro 0x00000000 0x87 ..\obj\timer.o
|
||||
.debug_macro 0x00000000 0xb7 ..\obj\timer.o
|
||||
.debug_macro 0x00000000 0x4c ..\obj\timer.o
|
||||
.debug_macro 0x00000000 0x3a ..\obj\timer.o
|
||||
.debug_macro 0x00000000 0x16 ..\obj\timer.o
|
||||
|
@ -4213,7 +4187,7 @@ LOAD c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-
|
|||
0x00000000 __HEAP_SIZE = 0x0
|
||||
0x00000100 __STACK_SIZE = 0x100
|
||||
|
||||
.text 0x08008000 0xe74
|
||||
.text 0x08008000 0x162c
|
||||
*(.isr_vector)
|
||||
.isr_vector 0x08008000 0x188 ..\obj\startup_stm32f2xx.o
|
||||
0x08008000 __isr_vector
|
||||
|
@ -4225,195 +4199,222 @@ LOAD c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-
|
|||
.text.NVIC_SystemReset
|
||||
0x08008250 0x28 ..\obj\boot.o
|
||||
.text.BootComInit
|
||||
0x08008278 0xc ..\obj\boot.o
|
||||
0x08008278 0x10 ..\obj\boot.o
|
||||
0x08008278 BootComInit
|
||||
.text.BootComCheckActivationRequest
|
||||
0x08008284 0xc ..\obj\boot.o
|
||||
0x08008284 BootComCheckActivationRequest
|
||||
0x08008288 0x10 ..\obj\boot.o
|
||||
0x08008288 BootComCheckActivationRequest
|
||||
.text.BootActivate
|
||||
0x08008290 0xc ..\obj\boot.o
|
||||
0x08008290 BootActivate
|
||||
0x08008298 0xc ..\obj\boot.o
|
||||
0x08008298 BootActivate
|
||||
.text.BootComUartInit
|
||||
0x0800829c 0xa0 ..\obj\boot.o
|
||||
0x080082a4 0xa0 ..\obj\boot.o
|
||||
.text.BootComUartCheckActivationRequest
|
||||
0x0800833c 0x7c ..\obj\boot.o
|
||||
0x08008344 0x7c ..\obj\boot.o
|
||||
.text.UartReceiveByte
|
||||
0x080083b8 0x38 ..\obj\boot.o
|
||||
0x080083c0 0x38 ..\obj\boot.o
|
||||
.text.CanGetSpeedConfig
|
||||
0x080083f8 0xc0 ..\obj\boot.o
|
||||
.text.BootComCanInit
|
||||
0x080084b8 0xf0 ..\obj\boot.o
|
||||
.text.BootComCanCheckActivationRequest
|
||||
0x080085a8 0x44 ..\obj\boot.o
|
||||
.text.IrqInterruptEnable
|
||||
0x080083f0 0x10 ..\obj\irq.o
|
||||
0x080083f0 IrqInterruptEnable
|
||||
.text.LedInit 0x08008400 0x44 ..\obj\led.o
|
||||
0x08008400 LedInit
|
||||
0x080085ec 0x10 ..\obj\irq.o
|
||||
0x080085ec IrqInterruptEnable
|
||||
.text.LedInit 0x080085fc 0x44 ..\obj\led.o
|
||||
0x080085fc LedInit
|
||||
.text.LedToggle
|
||||
0x08008444 0x60 ..\obj\led.o
|
||||
0x08008444 LedToggle
|
||||
0x08008640 0x60 ..\obj\led.o
|
||||
0x08008640 LedToggle
|
||||
.text.CAN_DeInit
|
||||
0x080086a0 0x44 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
0x080086a0 CAN_DeInit
|
||||
.text.CAN_Init
|
||||
0x080086e4 0x1a4 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
0x080086e4 CAN_Init
|
||||
.text.CAN_FilterInit
|
||||
0x08008888 0x164 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
0x08008888 CAN_FilterInit
|
||||
.text.CAN_StructInit
|
||||
0x080089ec 0x54 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
0x080089ec CAN_StructInit
|
||||
.text.CAN_Receive
|
||||
0x08008a40 0x170 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
0x08008a40 CAN_Receive
|
||||
.text.CAN_MessagePending
|
||||
0x08008bb0 0x4c ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
0x08008bb0 CAN_MessagePending
|
||||
.text.GPIO_Init
|
||||
0x080084a4 0x11c ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
0x080084a4 GPIO_Init
|
||||
0x08008bfc 0x11c ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
0x08008bfc GPIO_Init
|
||||
.text.GPIO_SetBits
|
||||
0x080085c0 0x1c ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
0x080085c0 GPIO_SetBits
|
||||
0x08008d18 0x1c ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
0x08008d18 GPIO_SetBits
|
||||
.text.GPIO_ResetBits
|
||||
0x080085dc 0x1c ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
0x080085dc GPIO_ResetBits
|
||||
0x08008d34 0x1c ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
0x08008d34 GPIO_ResetBits
|
||||
.text.GPIO_PinAFConfig
|
||||
0x080085f8 0x8c ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
0x080085f8 GPIO_PinAFConfig
|
||||
0x08008d50 0x8c ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
0x08008d50 GPIO_PinAFConfig
|
||||
.text.RCC_GetClocksFreq
|
||||
0x08008684 0x154 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
0x08008684 RCC_GetClocksFreq
|
||||
0x08008ddc 0x154 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
0x08008ddc RCC_GetClocksFreq
|
||||
.text.RCC_AHB1PeriphClockCmd
|
||||
0x080087d8 0x3c ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
0x080087d8 RCC_AHB1PeriphClockCmd
|
||||
0x08008f30 0x3c ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
0x08008f30 RCC_AHB1PeriphClockCmd
|
||||
.text.RCC_APB1PeriphClockCmd
|
||||
0x08008814 0x3c ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
0x08008814 RCC_APB1PeriphClockCmd
|
||||
0x08008f6c 0x3c ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
0x08008f6c RCC_APB1PeriphClockCmd
|
||||
.text.RCC_APB1PeriphResetCmd
|
||||
0x08008fa8 0x3c ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
0x08008fa8 RCC_APB1PeriphResetCmd
|
||||
.text.USART_Init
|
||||
0x08008850 0x174 ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
0x08008850 USART_Init
|
||||
0x08008fe4 0x174 ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
0x08008fe4 USART_Init
|
||||
.text.USART_Cmd
|
||||
0x080089c4 0x40 ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
0x080089c4 USART_Cmd
|
||||
0x08009158 0x40 ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
0x08009158 USART_Cmd
|
||||
.text.USART_ReceiveData
|
||||
0x08008a04 0x20 ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
0x08008a04 USART_ReceiveData
|
||||
0x08009198 0x20 ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
0x08009198 USART_ReceiveData
|
||||
.text.USART_GetFlagStatus
|
||||
0x08008a24 0x38 ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
0x08008a24 USART_GetFlagStatus
|
||||
0x080091b8 0x38 ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
0x080091b8 USART_GetFlagStatus
|
||||
.text.SystemInit
|
||||
0x08008a5c 0x4c ..\obj\lib\system_stm32f2xx.o
|
||||
0x08008a5c SystemInit
|
||||
0x080091f0 0x4c ..\obj\lib\system_stm32f2xx.o
|
||||
0x080091f0 SystemInit
|
||||
.text.SetSysClock
|
||||
0x08008aa8 0xd8 ..\obj\lib\system_stm32f2xx.o
|
||||
.text.main 0x08008b80 0x18 ..\obj\main.o
|
||||
0x08008b80 main
|
||||
.text.Init 0x08008b98 0x14 ..\obj\main.o
|
||||
.text 0x08008bac 0x10c ..\obj\startup_stm32f2xx.o
|
||||
0x08008bac Reset_Handler
|
||||
0x08008bfa NMI_Handler
|
||||
0x08008bfc HardFault_Handler
|
||||
0x08008bfe MemManage_Handler
|
||||
0x08008c00 BusFault_Handler
|
||||
0x08008c02 UsageFault_Handler
|
||||
0x08008c04 SVC_Handler
|
||||
0x08008c06 DebugMon_Handler
|
||||
0x08008c08 PendSV_Handler
|
||||
0x08008c0c Default_Handler
|
||||
0x08008c0e WWDG_IRQHandler
|
||||
0x08008c10 PVD_IRQHandler
|
||||
0x08008c12 TAMP_STAMP_IRQHandler
|
||||
0x08008c14 RTC_WKUP_IRQHandler
|
||||
0x08008c16 FLASH_IRQHandler
|
||||
0x08008c18 RCC_IRQHandler
|
||||
0x08008c1a EXTI0_IRQHandler
|
||||
0x08008c1c EXTI1_IRQHandler
|
||||
0x08008c1e EXTI2_IRQHandler
|
||||
0x08008c20 EXTI3_IRQHandler
|
||||
0x08008c22 EXTI4_IRQHandler
|
||||
0x08008c24 DMA1_Stream0_IRQHandler
|
||||
0x08008c26 DMA1_Stream1_IRQHandler
|
||||
0x08008c28 DMA1_Stream2_IRQHandler
|
||||
0x08008c2a DMA1_Stream3_IRQHandler
|
||||
0x08008c2c DMA1_Stream4_IRQHandler
|
||||
0x08008c2e DMA1_Stream5_IRQHandler
|
||||
0x08008c30 DMA1_Stream6_IRQHandler
|
||||
0x08008c32 ADC_IRQHandler
|
||||
0x08008c34 CAN1_TX_IRQHandler
|
||||
0x08008c36 CAN1_RX0_IRQHandler
|
||||
0x08008c38 CAN1_RX1_IRQHandler
|
||||
0x08008c3a CAN1_SCE_IRQHandler
|
||||
0x08008c3c EXTI9_5_IRQHandler
|
||||
0x08008c3e TIM1_BRK_TIM9_IRQHandler
|
||||
0x08008c40 TIM1_UP_TIM10_IRQHandler
|
||||
0x08008c42 TIM1_TRG_COM_TIM11_IRQHandler
|
||||
0x08008c44 TIM1_CC_IRQHandler
|
||||
0x08008c46 TIM2_IRQHandler
|
||||
0x08008c48 TIM3_IRQHandler
|
||||
0x08008c4a TIM4_IRQHandler
|
||||
0x08008c4c I2C1_EV_IRQHandler
|
||||
0x08008c4e I2C1_ER_IRQHandler
|
||||
0x08008c50 I2C2_EV_IRQHandler
|
||||
0x08008c52 I2C2_ER_IRQHandler
|
||||
0x08008c54 SPI1_IRQHandler
|
||||
0x08008c56 SPI2_IRQHandler
|
||||
0x08008c58 USART1_IRQHandler
|
||||
0x08008c5a USART2_IRQHandler
|
||||
0x08008c5c USART3_IRQHandler
|
||||
0x08008c5e EXTI15_10_IRQHandler
|
||||
0x08008c60 RTC_Alarm_IRQHandler
|
||||
0x08008c62 OTG_FS_WKUP_IRQHandler
|
||||
0x08008c64 TIM8_BRK_TIM12_IRQHandler
|
||||
0x08008c66 TIM8_UP_TIM13_IRQHandler
|
||||
0x08008c68 TIM8_TRG_COM_TIM14_IRQHandler
|
||||
0x08008c6a TIM8_CC_IRQHandler
|
||||
0x08008c6c DMA1_Stream7_IRQHandler
|
||||
0x08008c6e FSMC_IRQHandler
|
||||
0x08008c70 SDIO_IRQHandler
|
||||
0x08008c72 TIM5_IRQHandler
|
||||
0x08008c74 SPI3_IRQHandler
|
||||
0x08008c76 UART4_IRQHandler
|
||||
0x08008c78 UART5_IRQHandler
|
||||
0x08008c7a TIM6_DAC_IRQHandler
|
||||
0x08008c7c TIM7_IRQHandler
|
||||
0x08008c7e DMA2_Stream0_IRQHandler
|
||||
0x08008c80 DMA2_Stream1_IRQHandler
|
||||
0x08008c82 DMA2_Stream2_IRQHandler
|
||||
0x08008c84 DMA2_Stream3_IRQHandler
|
||||
0x08008c86 DMA2_Stream4_IRQHandler
|
||||
0x08008c88 ETH_IRQHandler
|
||||
0x08008c8a ETH_WKUP_IRQHandler
|
||||
0x08008c8c CAN2_TX_IRQHandler
|
||||
0x08008c8e CAN2_RX0_IRQHandler
|
||||
0x08008c90 CAN2_RX1_IRQHandler
|
||||
0x08008c92 CAN2_SCE_IRQHandler
|
||||
0x08008c94 OTG_FS_IRQHandler
|
||||
0x08008c96 DMA2_Stream5_IRQHandler
|
||||
0x08008c98 DMA2_Stream6_IRQHandler
|
||||
0x08008c9a DMA2_Stream7_IRQHandler
|
||||
0x08008c9c USART6_IRQHandler
|
||||
0x08008c9e I2C3_EV_IRQHandler
|
||||
0x08008ca0 I2C3_ER_IRQHandler
|
||||
0x08008ca2 OTG_HS_EP1_OUT_IRQHandler
|
||||
0x08008ca4 OTG_HS_EP1_IN_IRQHandler
|
||||
0x08008ca6 OTG_HS_WKUP_IRQHandler
|
||||
0x08008ca8 OTG_HS_IRQHandler
|
||||
0x08008caa DCMI_IRQHandler
|
||||
0x08008cac CRYP_IRQHandler
|
||||
0x08008cae HASH_RNG_IRQHandler
|
||||
0x0800923c 0xd8 ..\obj\lib\system_stm32f2xx.o
|
||||
.text.main 0x08009314 0x18 ..\obj\main.o
|
||||
0x08009314 main
|
||||
.text.Init 0x0800932c 0x14 ..\obj\main.o
|
||||
.text 0x08009340 0x10c ..\obj\startup_stm32f2xx.o
|
||||
0x08009340 Reset_Handler
|
||||
0x0800938e NMI_Handler
|
||||
0x08009390 HardFault_Handler
|
||||
0x08009392 MemManage_Handler
|
||||
0x08009394 BusFault_Handler
|
||||
0x08009396 UsageFault_Handler
|
||||
0x08009398 SVC_Handler
|
||||
0x0800939a DebugMon_Handler
|
||||
0x0800939c PendSV_Handler
|
||||
0x080093a0 Default_Handler
|
||||
0x080093a2 WWDG_IRQHandler
|
||||
0x080093a4 PVD_IRQHandler
|
||||
0x080093a6 TAMP_STAMP_IRQHandler
|
||||
0x080093a8 RTC_WKUP_IRQHandler
|
||||
0x080093aa FLASH_IRQHandler
|
||||
0x080093ac RCC_IRQHandler
|
||||
0x080093ae EXTI0_IRQHandler
|
||||
0x080093b0 EXTI1_IRQHandler
|
||||
0x080093b2 EXTI2_IRQHandler
|
||||
0x080093b4 EXTI3_IRQHandler
|
||||
0x080093b6 EXTI4_IRQHandler
|
||||
0x080093b8 DMA1_Stream0_IRQHandler
|
||||
0x080093ba DMA1_Stream1_IRQHandler
|
||||
0x080093bc DMA1_Stream2_IRQHandler
|
||||
0x080093be DMA1_Stream3_IRQHandler
|
||||
0x080093c0 DMA1_Stream4_IRQHandler
|
||||
0x080093c2 DMA1_Stream5_IRQHandler
|
||||
0x080093c4 DMA1_Stream6_IRQHandler
|
||||
0x080093c6 ADC_IRQHandler
|
||||
0x080093c8 CAN1_TX_IRQHandler
|
||||
0x080093ca CAN1_RX0_IRQHandler
|
||||
0x080093cc CAN1_RX1_IRQHandler
|
||||
0x080093ce CAN1_SCE_IRQHandler
|
||||
0x080093d0 EXTI9_5_IRQHandler
|
||||
0x080093d2 TIM1_BRK_TIM9_IRQHandler
|
||||
0x080093d4 TIM1_UP_TIM10_IRQHandler
|
||||
0x080093d6 TIM1_TRG_COM_TIM11_IRQHandler
|
||||
0x080093d8 TIM1_CC_IRQHandler
|
||||
0x080093da TIM2_IRQHandler
|
||||
0x080093dc TIM3_IRQHandler
|
||||
0x080093de TIM4_IRQHandler
|
||||
0x080093e0 I2C1_EV_IRQHandler
|
||||
0x080093e2 I2C1_ER_IRQHandler
|
||||
0x080093e4 I2C2_EV_IRQHandler
|
||||
0x080093e6 I2C2_ER_IRQHandler
|
||||
0x080093e8 SPI1_IRQHandler
|
||||
0x080093ea SPI2_IRQHandler
|
||||
0x080093ec USART1_IRQHandler
|
||||
0x080093ee USART2_IRQHandler
|
||||
0x080093f0 USART3_IRQHandler
|
||||
0x080093f2 EXTI15_10_IRQHandler
|
||||
0x080093f4 RTC_Alarm_IRQHandler
|
||||
0x080093f6 OTG_FS_WKUP_IRQHandler
|
||||
0x080093f8 TIM8_BRK_TIM12_IRQHandler
|
||||
0x080093fa TIM8_UP_TIM13_IRQHandler
|
||||
0x080093fc TIM8_TRG_COM_TIM14_IRQHandler
|
||||
0x080093fe TIM8_CC_IRQHandler
|
||||
0x08009400 DMA1_Stream7_IRQHandler
|
||||
0x08009402 FSMC_IRQHandler
|
||||
0x08009404 SDIO_IRQHandler
|
||||
0x08009406 TIM5_IRQHandler
|
||||
0x08009408 SPI3_IRQHandler
|
||||
0x0800940a UART4_IRQHandler
|
||||
0x0800940c UART5_IRQHandler
|
||||
0x0800940e TIM6_DAC_IRQHandler
|
||||
0x08009410 TIM7_IRQHandler
|
||||
0x08009412 DMA2_Stream0_IRQHandler
|
||||
0x08009414 DMA2_Stream1_IRQHandler
|
||||
0x08009416 DMA2_Stream2_IRQHandler
|
||||
0x08009418 DMA2_Stream3_IRQHandler
|
||||
0x0800941a DMA2_Stream4_IRQHandler
|
||||
0x0800941c ETH_IRQHandler
|
||||
0x0800941e ETH_WKUP_IRQHandler
|
||||
0x08009420 CAN2_TX_IRQHandler
|
||||
0x08009422 CAN2_RX0_IRQHandler
|
||||
0x08009424 CAN2_RX1_IRQHandler
|
||||
0x08009426 CAN2_SCE_IRQHandler
|
||||
0x08009428 OTG_FS_IRQHandler
|
||||
0x0800942a DMA2_Stream5_IRQHandler
|
||||
0x0800942c DMA2_Stream6_IRQHandler
|
||||
0x0800942e DMA2_Stream7_IRQHandler
|
||||
0x08009430 USART6_IRQHandler
|
||||
0x08009432 I2C3_EV_IRQHandler
|
||||
0x08009434 I2C3_ER_IRQHandler
|
||||
0x08009436 OTG_HS_EP1_OUT_IRQHandler
|
||||
0x08009438 OTG_HS_EP1_IN_IRQHandler
|
||||
0x0800943a OTG_HS_WKUP_IRQHandler
|
||||
0x0800943c OTG_HS_IRQHandler
|
||||
0x0800943e DCMI_IRQHandler
|
||||
0x08009440 CRYP_IRQHandler
|
||||
0x08009442 HASH_RNG_IRQHandler
|
||||
.text.NVIC_SetPriority
|
||||
0x08008cb8 0x54 ..\obj\timer.o
|
||||
0x0800944c 0x54 ..\obj\timer.o
|
||||
.text.SysTick_Config
|
||||
0x08008d0c 0x44 ..\obj\timer.o
|
||||
0x080094a0 0x44 ..\obj\timer.o
|
||||
.text.TimerInit
|
||||
0x08008d50 0x28 ..\obj\timer.o
|
||||
0x08008d50 TimerInit
|
||||
0x080094e4 0x28 ..\obj\timer.o
|
||||
0x080094e4 TimerInit
|
||||
.text.TimerSet
|
||||
0x08008d78 0x1c ..\obj\timer.o
|
||||
0x08008d78 TimerSet
|
||||
0x0800950c 0x1c ..\obj\timer.o
|
||||
0x0800950c TimerSet
|
||||
.text.TimerGet
|
||||
0x08008d94 0x18 ..\obj\timer.o
|
||||
0x08008d94 TimerGet
|
||||
0x08009528 0x18 ..\obj\timer.o
|
||||
0x08009528 TimerGet
|
||||
.text.SysTick_Handler
|
||||
0x08008dac 0x1c ..\obj\timer.o
|
||||
0x08008dac SysTick_Handler
|
||||
.text.exit 0x08008dc8 0x28 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-exit.o)
|
||||
0x08008dc8 exit
|
||||
0x08009540 0x1c ..\obj\timer.o
|
||||
0x08009540 SysTick_Handler
|
||||
.text.exit 0x0800955c 0x28 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-exit.o)
|
||||
0x0800955c exit
|
||||
.text.__libc_init_array
|
||||
0x08008df0 0x4c c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-init.o)
|
||||
0x08008df0 __libc_init_array
|
||||
.text.memset 0x08008e3c 0x10 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-memset.o)
|
||||
0x08008e3c memset
|
||||
.text 0x08008e4c 0x2 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libnosys_s.a(_exit.o)
|
||||
0x08008e4c _exit
|
||||
0x08009584 0x4c c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-init.o)
|
||||
0x08009584 __libc_init_array
|
||||
.text.memset 0x080095d0 0x10 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-memset.o)
|
||||
0x080095d0 memset
|
||||
.text 0x080095e0 0x2 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libnosys_s.a(_exit.o)
|
||||
0x080095e0 _exit
|
||||
*(.init)
|
||||
*fill* 0x08008e4e 0x2
|
||||
.init 0x08008e50 0x4 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crti.o
|
||||
0x08008e50 _init
|
||||
.init 0x08008e54 0x8 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crtn.o
|
||||
*fill* 0x080095e2 0x2
|
||||
.init 0x080095e4 0x4 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crti.o
|
||||
0x080095e4 _init
|
||||
.init 0x080095e8 0x8 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crtn.o
|
||||
*(.fini)
|
||||
.fini 0x08008e5c 0x4 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crti.o
|
||||
0x08008e5c _fini
|
||||
.fini 0x08008e60 0x8 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crtn.o
|
||||
.fini 0x080095f0 0x4 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crti.o
|
||||
0x080095f0 _fini
|
||||
.fini 0x080095f4 0x8 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crtn.o
|
||||
*crtbegin.o(.ctors)
|
||||
*crtbegin?.o(.ctors)
|
||||
*(EXCLUDE_FILE(*crtend.o *crtend?.o) .ctors)
|
||||
|
@ -4425,45 +4426,47 @@ LOAD c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-
|
|||
*(SORT(.dtors.*))
|
||||
*(.dtors)
|
||||
*(.rodata*)
|
||||
.rodata.canTiming
|
||||
0x080095fc 0x24 ..\obj\boot.o
|
||||
.rodata.str1.1
|
||||
0x08008e68 0x2 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-impure.o)
|
||||
*fill* 0x08008e6a 0x2
|
||||
0x08009620 0x2 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-impure.o)
|
||||
*fill* 0x08009622 0x2
|
||||
.rodata._global_impure_ptr
|
||||
0x08008e6c 0x4 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-impure.o)
|
||||
0x08008e6c _global_impure_ptr
|
||||
0x08009624 0x4 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-impure.o)
|
||||
0x08009624 _global_impure_ptr
|
||||
*(.eh_frame*)
|
||||
.eh_frame 0x08008e70 0x0 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crtbegin.o
|
||||
.eh_frame 0x08008e70 0x4 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crtend.o
|
||||
.eh_frame 0x08009628 0x0 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crtbegin.o
|
||||
.eh_frame 0x08009628 0x4 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crtend.o
|
||||
|
||||
.glue_7 0x08008e74 0x0
|
||||
.glue_7 0x0800962c 0x0
|
||||
.glue_7 0x00000000 0x0 linker stubs
|
||||
|
||||
.glue_7t 0x08008e74 0x0
|
||||
.glue_7t 0x0800962c 0x0
|
||||
.glue_7t 0x00000000 0x0 linker stubs
|
||||
|
||||
.vfp11_veneer 0x08008e74 0x0
|
||||
.vfp11_veneer 0x0800962c 0x0
|
||||
.vfp11_veneer 0x00000000 0x0 linker stubs
|
||||
|
||||
.v4_bx 0x08008e74 0x0
|
||||
.v4_bx 0x0800962c 0x0
|
||||
.v4_bx 0x00000000 0x0 linker stubs
|
||||
|
||||
.iplt 0x08008e74 0x0
|
||||
.iplt 0x0800962c 0x0
|
||||
.iplt 0x00000000 0x0 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crtbegin.o
|
||||
|
||||
.ARM.extab
|
||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
||||
0x08008e74 __exidx_start = .
|
||||
0x0800962c __exidx_start = .
|
||||
|
||||
.ARM.exidx 0x08008e74 0x8
|
||||
.ARM.exidx 0x0800962c 0x8
|
||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
||||
.ARM.exidx 0x08008e74 0x8 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m/crt0.o
|
||||
0x08008e7c __exidx_end = .
|
||||
0x08008e7c __etext = .
|
||||
.ARM.exidx 0x0800962c 0x8 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m/crt0.o
|
||||
0x08009634 __exidx_end = .
|
||||
0x08009634 __etext = .
|
||||
|
||||
.rel.dyn 0x08008e7c 0x0
|
||||
.rel.dyn 0x08009634 0x0
|
||||
.rel.iplt 0x00000000 0x0 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crtbegin.o
|
||||
|
||||
.data 0x20000000 0x7c load address 0x08008e7c
|
||||
.data 0x20000000 0x7c load address 0x08009634
|
||||
0x20000000 __data_start__ = .
|
||||
*(vtable)
|
||||
*(.data*)
|
||||
|
@ -4493,22 +4496,22 @@ LOAD c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-
|
|||
0x2000007c . = ALIGN (0x4)
|
||||
0x2000007c __data_end__ = .
|
||||
|
||||
.jcr 0x2000007c 0x0 load address 0x08008ef8
|
||||
.jcr 0x2000007c 0x0 load address 0x080096b0
|
||||
.jcr 0x2000007c 0x0 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crtbegin.o
|
||||
|
||||
.igot.plt 0x2000007c 0x0 load address 0x08008ef8
|
||||
.igot.plt 0x2000007c 0x0 load address 0x080096b0
|
||||
.igot.plt 0x00000000 0x0 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crtbegin.o
|
||||
|
||||
.bss 0x2000007c 0x74 load address 0x08008ef8
|
||||
.bss 0x2000007c 0x74 load address 0x080096b0
|
||||
0x2000007c __bss_start__ = .
|
||||
*(.bss*)
|
||||
.bss 0x2000007c 0x1c c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crtbegin.o
|
||||
.bss.xcpCtoRxInProgress.7886
|
||||
.bss.xcpCtoRxInProgress.7890
|
||||
0x20000098 0x1 ..\obj\boot.o
|
||||
*fill* 0x20000099 0x3
|
||||
.bss.xcpCtoReqPacket.7884
|
||||
.bss.xcpCtoReqPacket.7888
|
||||
0x2000009c 0x44 ..\obj\boot.o
|
||||
.bss.xcpCtoRxLength.7885
|
||||
.bss.xcpCtoRxLength.7889
|
||||
0x200000e0 0x1 ..\obj\boot.o
|
||||
*fill* 0x200000e1 0x3
|
||||
.bss.timer_counter_last.7869
|
||||
|
@ -4602,39 +4605,42 @@ OUTPUT(..\bin\demoprog_stm32f207.elf elf32-littlearm)
|
|||
.ARM.attributes
|
||||
0x000000cb 0x33 ..\obj\led.o
|
||||
.ARM.attributes
|
||||
0x000000fe 0x33 ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
0x000000fe 0x33 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.ARM.attributes
|
||||
0x00000131 0x33 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
0x00000131 0x33 ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.ARM.attributes
|
||||
0x00000164 0x33 ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
0x00000164 0x33 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.ARM.attributes
|
||||
0x00000197 0x33 ..\obj\lib\system_stm32f2xx.o
|
||||
0x00000197 0x33 ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
.ARM.attributes
|
||||
0x000001ca 0x33 ..\obj\main.o
|
||||
0x000001ca 0x33 ..\obj\lib\system_stm32f2xx.o
|
||||
.ARM.attributes
|
||||
0x000001fd 0x1b ..\obj\startup_stm32f2xx.o
|
||||
0x000001fd 0x33 ..\obj\main.o
|
||||
.ARM.attributes
|
||||
0x00000218 0x33 ..\obj\timer.o
|
||||
0x00000230 0x1b ..\obj\startup_stm32f2xx.o
|
||||
.ARM.attributes
|
||||
0x0000024b 0x2d c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-exit.o)
|
||||
0x0000024b 0x33 ..\obj\timer.o
|
||||
.ARM.attributes
|
||||
0x00000278 0x2d c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-impure.o)
|
||||
0x0000027e 0x2d c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-exit.o)
|
||||
.ARM.attributes
|
||||
0x000002a5 0x2d c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-init.o)
|
||||
0x000002ab 0x2d c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-impure.o)
|
||||
.ARM.attributes
|
||||
0x000002d2 0x2d c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-memset.o)
|
||||
0x000002d8 0x2d c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-init.o)
|
||||
.ARM.attributes
|
||||
0x000002ff 0x2d c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libnosys_s.a(_exit.o)
|
||||
0x00000305 0x2d c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-memset.o)
|
||||
.ARM.attributes
|
||||
0x0000032c 0x2d c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crtend.o
|
||||
0x00000332 0x2d c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libnosys_s.a(_exit.o)
|
||||
.ARM.attributes
|
||||
0x00000359 0x1d c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crtn.o
|
||||
0x0000035f 0x2d c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crtend.o
|
||||
.ARM.attributes
|
||||
0x0000038c 0x1d c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7-m/crtn.o
|
||||
|
||||
.comment 0x00000000 0x46
|
||||
.comment 0x00000000 0x46 ..\obj\boot.o
|
||||
0x47 (size before relaxing)
|
||||
.comment 0x00000000 0x47 ..\obj\irq.o
|
||||
.comment 0x00000000 0x47 ..\obj\led.o
|
||||
.comment 0x00000000 0x47 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.comment 0x00000000 0x47 ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.comment 0x00000000 0x47 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.comment 0x00000000 0x47 ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
|
@ -4642,156 +4648,166 @@ OUTPUT(..\bin\demoprog_stm32f207.elf elf32-littlearm)
|
|||
.comment 0x00000000 0x47 ..\obj\main.o
|
||||
.comment 0x00000000 0x47 ..\obj\timer.o
|
||||
|
||||
.debug_info 0x00000000 0x3311
|
||||
.debug_info 0x00000000 0x682 ..\obj\boot.o
|
||||
.debug_info 0x00000682 0x130 ..\obj\irq.o
|
||||
.debug_info 0x000007b2 0x2ef ..\obj\led.o
|
||||
.debug_info 0x00000aa1 0x60d ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.debug_info 0x000010ae 0xc55 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.debug_info 0x00001d03 0x9ca ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
.debug_info 0x000026cd 0x3ec ..\obj\lib\system_stm32f2xx.o
|
||||
.debug_info 0x00002ab9 0xc4 ..\obj\main.o
|
||||
.debug_info 0x00002b7d 0x8f ..\obj\startup_stm32f2xx.o
|
||||
.debug_info 0x00002c0c 0x705 ..\obj\timer.o
|
||||
.debug_info 0x00000000 0x4410
|
||||
.debug_info 0x00000000 0xbdd ..\obj\boot.o
|
||||
.debug_info 0x00000bdd 0x130 ..\obj\irq.o
|
||||
.debug_info 0x00000d0d 0x2ef ..\obj\led.o
|
||||
.debug_info 0x00000ffc 0xba4 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_info 0x00001ba0 0x60d ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.debug_info 0x000021ad 0xc55 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.debug_info 0x00002e02 0x9ca ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
.debug_info 0x000037cc 0x3ec ..\obj\lib\system_stm32f2xx.o
|
||||
.debug_info 0x00003bb8 0xc4 ..\obj\main.o
|
||||
.debug_info 0x00003c7c 0x8f ..\obj\startup_stm32f2xx.o
|
||||
.debug_info 0x00003d0b 0x705 ..\obj\timer.o
|
||||
|
||||
.debug_abbrev 0x00000000 0xbad
|
||||
.debug_abbrev 0x00000000 0x192 ..\obj\boot.o
|
||||
.debug_abbrev 0x00000192 0x99 ..\obj\irq.o
|
||||
.debug_abbrev 0x0000022b 0x104 ..\obj\led.o
|
||||
.debug_abbrev 0x0000032f 0x1a8 ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.debug_abbrev 0x000004d7 0x1e8 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.debug_abbrev 0x000006bf 0x15a ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
.debug_abbrev 0x00000819 0x13b ..\obj\lib\system_stm32f2xx.o
|
||||
.debug_abbrev 0x00000954 0x82 ..\obj\main.o
|
||||
.debug_abbrev 0x000009d6 0x14 ..\obj\startup_stm32f2xx.o
|
||||
.debug_abbrev 0x000009ea 0x1c3 ..\obj\timer.o
|
||||
.debug_abbrev 0x00000000 0xe4d
|
||||
.debug_abbrev 0x00000000 0x23a ..\obj\boot.o
|
||||
.debug_abbrev 0x0000023a 0x99 ..\obj\irq.o
|
||||
.debug_abbrev 0x000002d3 0x104 ..\obj\led.o
|
||||
.debug_abbrev 0x000003d7 0x1f8 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_abbrev 0x000005cf 0x1a8 ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.debug_abbrev 0x00000777 0x1e8 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.debug_abbrev 0x0000095f 0x15a ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
.debug_abbrev 0x00000ab9 0x13b ..\obj\lib\system_stm32f2xx.o
|
||||
.debug_abbrev 0x00000bf4 0x82 ..\obj\main.o
|
||||
.debug_abbrev 0x00000c76 0x14 ..\obj\startup_stm32f2xx.o
|
||||
.debug_abbrev 0x00000c8a 0x1c3 ..\obj\timer.o
|
||||
|
||||
.debug_aranges 0x00000000 0x470
|
||||
.debug_aranges 0x00000000 0x568
|
||||
.debug_aranges
|
||||
0x00000000 0x50 ..\obj\boot.o
|
||||
0x00000000 0x68 ..\obj\boot.o
|
||||
.debug_aranges
|
||||
0x00000050 0x30 ..\obj\irq.o
|
||||
0x00000068 0x30 ..\obj\irq.o
|
||||
.debug_aranges
|
||||
0x00000080 0x28 ..\obj\led.o
|
||||
0x00000098 0x28 ..\obj\led.o
|
||||
.debug_aranges
|
||||
0x000000a8 0x88 ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
0x000000c0 0xe0 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_aranges
|
||||
0x00000130 0x178 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
0x000001a0 0x88 ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.debug_aranges
|
||||
0x000002a8 0x100 ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
0x00000228 0x178 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.debug_aranges
|
||||
0x000003a8 0x30 ..\obj\lib\system_stm32f2xx.o
|
||||
0x000003a0 0x100 ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
.debug_aranges
|
||||
0x000003d8 0x28 ..\obj\main.o
|
||||
0x000004a0 0x30 ..\obj\lib\system_stm32f2xx.o
|
||||
.debug_aranges
|
||||
0x00000400 0x20 ..\obj\startup_stm32f2xx.o
|
||||
0x000004d0 0x28 ..\obj\main.o
|
||||
.debug_aranges
|
||||
0x00000420 0x50 ..\obj\timer.o
|
||||
0x000004f8 0x20 ..\obj\startup_stm32f2xx.o
|
||||
.debug_aranges
|
||||
0x00000518 0x50 ..\obj\timer.o
|
||||
|
||||
.debug_ranges 0x00000000 0x3c0
|
||||
.debug_ranges 0x00000000 0x40 ..\obj\boot.o
|
||||
.debug_ranges 0x00000040 0x20 ..\obj\irq.o
|
||||
.debug_ranges 0x00000060 0x18 ..\obj\led.o
|
||||
.debug_ranges 0x00000078 0x78 ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.debug_ranges 0x000000f0 0x168 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.debug_ranges 0x00000258 0xf0 ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
.debug_ranges 0x00000348 0x20 ..\obj\lib\system_stm32f2xx.o
|
||||
.debug_ranges 0x00000368 0x18 ..\obj\main.o
|
||||
.debug_ranges 0x00000380 0x40 ..\obj\timer.o
|
||||
.debug_ranges 0x00000000 0x4a8
|
||||
.debug_ranges 0x00000000 0x58 ..\obj\boot.o
|
||||
.debug_ranges 0x00000058 0x20 ..\obj\irq.o
|
||||
.debug_ranges 0x00000078 0x18 ..\obj\led.o
|
||||
.debug_ranges 0x00000090 0xd0 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_ranges 0x00000160 0x78 ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.debug_ranges 0x000001d8 0x168 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.debug_ranges 0x00000340 0xf0 ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
.debug_ranges 0x00000430 0x20 ..\obj\lib\system_stm32f2xx.o
|
||||
.debug_ranges 0x00000450 0x18 ..\obj\main.o
|
||||
.debug_ranges 0x00000468 0x40 ..\obj\timer.o
|
||||
|
||||
.debug_macro 0x00000000 0xe816
|
||||
.debug_macro 0x00000000 0xea2e
|
||||
.debug_macro 0x00000000 0x1c3 ..\obj\boot.o
|
||||
.debug_macro 0x000001c3 0x862 ..\obj\boot.o
|
||||
.debug_macro 0x00000a25 0x87 ..\obj\boot.o
|
||||
.debug_macro 0x00000aac 0x4c ..\obj\boot.o
|
||||
.debug_macro 0x00000af8 0x3a ..\obj\boot.o
|
||||
.debug_macro 0x00000b32 0x16 ..\obj\boot.o
|
||||
.debug_macro 0x00000b48 0x44 ..\obj\boot.o
|
||||
.debug_macro 0x00000b8c 0x209 ..\obj\boot.o
|
||||
.debug_macro 0x00000d95 0x18 ..\obj\boot.o
|
||||
.debug_macro 0x00000dad 0xb08 ..\obj\boot.o
|
||||
.debug_macro 0x000018b5 0x7f1c ..\obj\boot.o
|
||||
.debug_macro 0x000097d1 0x44f ..\obj\boot.o
|
||||
.debug_macro 0x00009c20 0x3cf ..\obj\boot.o
|
||||
.debug_macro 0x00009fef 0x111 ..\obj\boot.o
|
||||
.debug_macro 0x0000a100 0x188 ..\obj\boot.o
|
||||
.debug_macro 0x0000a288 0xb2 ..\obj\boot.o
|
||||
.debug_macro 0x0000a33a 0x149 ..\obj\boot.o
|
||||
.debug_macro 0x0000a483 0x477 ..\obj\boot.o
|
||||
.debug_macro 0x0000a8fa 0xae ..\obj\boot.o
|
||||
.debug_macro 0x0000a9a8 0x242 ..\obj\boot.o
|
||||
.debug_macro 0x0000abea 0x279 ..\obj\boot.o
|
||||
.debug_macro 0x0000ae63 0xb5 ..\obj\boot.o
|
||||
.debug_macro 0x0000af18 0x25e ..\obj\boot.o
|
||||
.debug_macro 0x0000b176 0x2b3 ..\obj\boot.o
|
||||
.debug_macro 0x0000b429 0x64 ..\obj\boot.o
|
||||
.debug_macro 0x0000b48d 0x88 ..\obj\boot.o
|
||||
.debug_macro 0x0000b515 0x536 ..\obj\boot.o
|
||||
.debug_macro 0x0000ba4b 0x40 ..\obj\boot.o
|
||||
.debug_macro 0x0000ba8b 0x3f3 ..\obj\boot.o
|
||||
.debug_macro 0x0000be7e 0x342 ..\obj\boot.o
|
||||
.debug_macro 0x0000c1c0 0x357 ..\obj\boot.o
|
||||
.debug_macro 0x0000c517 0xe1 ..\obj\boot.o
|
||||
.debug_macro 0x0000c5f8 0x73b ..\obj\boot.o
|
||||
.debug_macro 0x0000cd33 0x221 ..\obj\boot.o
|
||||
.debug_macro 0x0000cf54 0x34 ..\obj\boot.o
|
||||
.debug_macro 0x0000cf88 0x82 ..\obj\boot.o
|
||||
.debug_macro 0x0000d00a 0x35 ..\obj\boot.o
|
||||
.debug_macro 0x0000d03f 0x1c3 ..\obj\irq.o
|
||||
.debug_macro 0x0000d202 0x1c9 ..\obj\led.o
|
||||
.debug_macro 0x0000d3cb 0x192 ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.debug_macro 0x0000d55d 0x258 ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.debug_macro 0x0000d7b5 0x23b ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.debug_macro 0x0000d9f0 0x530 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.debug_macro 0x0000df20 0x1aa ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
.debug_macro 0x0000e0ca 0x21b ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
.debug_macro 0x0000e2e5 0x1ab ..\obj\lib\system_stm32f2xx.o
|
||||
.debug_macro 0x0000e490 0x1c3 ..\obj\main.o
|
||||
.debug_macro 0x0000e653 0x1c3 ..\obj\timer.o
|
||||
.debug_macro 0x00000a25 0xb7 ..\obj\boot.o
|
||||
.debug_macro 0x00000adc 0x4c ..\obj\boot.o
|
||||
.debug_macro 0x00000b28 0x3a ..\obj\boot.o
|
||||
.debug_macro 0x00000b62 0x16 ..\obj\boot.o
|
||||
.debug_macro 0x00000b78 0x44 ..\obj\boot.o
|
||||
.debug_macro 0x00000bbc 0x209 ..\obj\boot.o
|
||||
.debug_macro 0x00000dc5 0x18 ..\obj\boot.o
|
||||
.debug_macro 0x00000ddd 0xb08 ..\obj\boot.o
|
||||
.debug_macro 0x000018e5 0x7f1c ..\obj\boot.o
|
||||
.debug_macro 0x00009801 0x44f ..\obj\boot.o
|
||||
.debug_macro 0x00009c50 0x3cf ..\obj\boot.o
|
||||
.debug_macro 0x0000a01f 0x111 ..\obj\boot.o
|
||||
.debug_macro 0x0000a130 0x188 ..\obj\boot.o
|
||||
.debug_macro 0x0000a2b8 0xb2 ..\obj\boot.o
|
||||
.debug_macro 0x0000a36a 0x149 ..\obj\boot.o
|
||||
.debug_macro 0x0000a4b3 0x477 ..\obj\boot.o
|
||||
.debug_macro 0x0000a92a 0xae ..\obj\boot.o
|
||||
.debug_macro 0x0000a9d8 0x242 ..\obj\boot.o
|
||||
.debug_macro 0x0000ac1a 0x279 ..\obj\boot.o
|
||||
.debug_macro 0x0000ae93 0xb5 ..\obj\boot.o
|
||||
.debug_macro 0x0000af48 0x25e ..\obj\boot.o
|
||||
.debug_macro 0x0000b1a6 0x2b3 ..\obj\boot.o
|
||||
.debug_macro 0x0000b459 0x64 ..\obj\boot.o
|
||||
.debug_macro 0x0000b4bd 0x88 ..\obj\boot.o
|
||||
.debug_macro 0x0000b545 0x536 ..\obj\boot.o
|
||||
.debug_macro 0x0000ba7b 0x40 ..\obj\boot.o
|
||||
.debug_macro 0x0000babb 0x3f3 ..\obj\boot.o
|
||||
.debug_macro 0x0000beae 0x342 ..\obj\boot.o
|
||||
.debug_macro 0x0000c1f0 0x357 ..\obj\boot.o
|
||||
.debug_macro 0x0000c547 0xe1 ..\obj\boot.o
|
||||
.debug_macro 0x0000c628 0x73b ..\obj\boot.o
|
||||
.debug_macro 0x0000cd63 0x221 ..\obj\boot.o
|
||||
.debug_macro 0x0000cf84 0x34 ..\obj\boot.o
|
||||
.debug_macro 0x0000cfb8 0x82 ..\obj\boot.o
|
||||
.debug_macro 0x0000d03a 0x35 ..\obj\boot.o
|
||||
.debug_macro 0x0000d06f 0x1c3 ..\obj\irq.o
|
||||
.debug_macro 0x0000d232 0x1c9 ..\obj\led.o
|
||||
.debug_macro 0x0000d3fb 0x1e8 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_macro 0x0000d5e3 0x192 ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.debug_macro 0x0000d775 0x258 ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.debug_macro 0x0000d9cd 0x23b ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.debug_macro 0x0000dc08 0x530 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.debug_macro 0x0000e138 0x1aa ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
.debug_macro 0x0000e2e2 0x21b ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
.debug_macro 0x0000e4fd 0x1ab ..\obj\lib\system_stm32f2xx.o
|
||||
.debug_macro 0x0000e6a8 0x1c3 ..\obj\main.o
|
||||
.debug_macro 0x0000e86b 0x1c3 ..\obj\timer.o
|
||||
|
||||
.debug_line 0x00000000 0x328b
|
||||
.debug_line 0x00000000 0x54d ..\obj\boot.o
|
||||
.debug_line 0x0000054d 0x4d7 ..\obj\irq.o
|
||||
.debug_line 0x00000a24 0x4b3 ..\obj\led.o
|
||||
.debug_line 0x00000ed7 0x58f ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.debug_line 0x00001466 0x7eb ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.debug_line 0x00001c51 0x6de ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
.debug_line 0x0000232f 0x4bd ..\obj\lib\system_stm32f2xx.o
|
||||
.debug_line 0x000027ec 0x4b6 ..\obj\main.o
|
||||
.debug_line 0x00002ca2 0xd1 ..\obj\startup_stm32f2xx.o
|
||||
.debug_line 0x00002d73 0x518 ..\obj\timer.o
|
||||
.debug_line 0x00000000 0x3ad0
|
||||
.debug_line 0x00000000 0x5d5 ..\obj\boot.o
|
||||
.debug_line 0x000005d5 0x4d7 ..\obj\irq.o
|
||||
.debug_line 0x00000aac 0x4b3 ..\obj\led.o
|
||||
.debug_line 0x00000f5f 0x7bd ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_line 0x0000171c 0x58f ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.debug_line 0x00001cab 0x7eb ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.debug_line 0x00002496 0x6de ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
.debug_line 0x00002b74 0x4bd ..\obj\lib\system_stm32f2xx.o
|
||||
.debug_line 0x00003031 0x4b6 ..\obj\main.o
|
||||
.debug_line 0x000034e7 0xd1 ..\obj\startup_stm32f2xx.o
|
||||
.debug_line 0x000035b8 0x518 ..\obj\timer.o
|
||||
|
||||
.debug_str 0x00000000 0x5600c
|
||||
.debug_str 0x00000000 0x54767 ..\obj\boot.o
|
||||
0x5490a (size before relaxing)
|
||||
.debug_str 0x00054767 0x70 ..\obj\irq.o
|
||||
0x54594 (size before relaxing)
|
||||
.debug_str 0x000547d7 0x78 ..\obj\led.o
|
||||
0x54758 (size before relaxing)
|
||||
.debug_str 0x0005484f 0x173 ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.debug_str 0x00000000 0x56866
|
||||
.debug_str 0x00000000 0x54b0f ..\obj\boot.o
|
||||
0x54cbc (size before relaxing)
|
||||
.debug_str 0x00054b0f 0x70 ..\obj\irq.o
|
||||
0x54662 (size before relaxing)
|
||||
.debug_str 0x00054b7f 0x65 ..\obj\led.o
|
||||
0x54826 (size before relaxing)
|
||||
.debug_str 0x00054be4 0x4e8 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
0x54a62 (size before relaxing)
|
||||
.debug_str 0x000550cc 0x169 ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
0x545db (size before relaxing)
|
||||
.debug_str 0x000549c2 0xaff ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.debug_str 0x00055235 0xae6 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
0x54e5c (size before relaxing)
|
||||
.debug_str 0x000554c1 0x49a ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
.debug_str 0x00055d1b 0x49a ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
0x548eb (size before relaxing)
|
||||
.debug_str 0x0005595b 0xc4 ..\obj\lib\system_stm32f2xx.o
|
||||
.debug_str 0x000561b5 0xc4 ..\obj\lib\system_stm32f2xx.o
|
||||
0x544b8 (size before relaxing)
|
||||
.debug_str 0x00055a1f 0xf ..\obj\main.o
|
||||
0x54538 (size before relaxing)
|
||||
.debug_str 0x00055a2e 0x5de ..\obj\timer.o
|
||||
0x54bc3 (size before relaxing)
|
||||
.debug_str 0x00056279 0xf ..\obj\main.o
|
||||
0x54606 (size before relaxing)
|
||||
.debug_str 0x00056288 0x5de ..\obj\timer.o
|
||||
0x54c91 (size before relaxing)
|
||||
|
||||
.debug_frame 0x00000000 0xd44
|
||||
.debug_frame 0x00000000 0xd8 ..\obj\boot.o
|
||||
.debug_frame 0x000000d8 0x58 ..\obj\irq.o
|
||||
.debug_frame 0x00000130 0x50 ..\obj\led.o
|
||||
.debug_frame 0x00000180 0x19c ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.debug_frame 0x0000031c 0x4d8 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.debug_frame 0x000007f4 0x344 ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
.debug_frame 0x00000b38 0x64 ..\obj\lib\system_stm32f2xx.o
|
||||
.debug_frame 0x00000b9c 0x48 ..\obj\main.o
|
||||
.debug_frame 0x00000be4 0xcc ..\obj\timer.o
|
||||
.debug_frame 0x00000cb0 0x28 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-exit.o)
|
||||
.debug_frame 0x00000cd8 0x2c c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-init.o)
|
||||
.debug_frame 0x00000d04 0x20 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-memset.o)
|
||||
.debug_frame 0x00000d24 0x20 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libnosys_s.a(_exit.o)
|
||||
.debug_frame 0x00000000 0x1074
|
||||
.debug_frame 0x00000000 0x134 ..\obj\boot.o
|
||||
.debug_frame 0x00000134 0x58 ..\obj\irq.o
|
||||
.debug_frame 0x0000018c 0x50 ..\obj\led.o
|
||||
.debug_frame 0x000001dc 0x2d4 ..\obj\lib\spl\src\stm32f2xx_can.o
|
||||
.debug_frame 0x000004b0 0x19c ..\obj\lib\spl\src\stm32f2xx_gpio.o
|
||||
.debug_frame 0x0000064c 0x4d8 ..\obj\lib\spl\src\stm32f2xx_rcc.o
|
||||
.debug_frame 0x00000b24 0x344 ..\obj\lib\spl\src\stm32f2xx_usart.o
|
||||
.debug_frame 0x00000e68 0x64 ..\obj\lib\system_stm32f2xx.o
|
||||
.debug_frame 0x00000ecc 0x48 ..\obj\main.o
|
||||
.debug_frame 0x00000f14 0xcc ..\obj\timer.o
|
||||
.debug_frame 0x00000fe0 0x28 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-exit.o)
|
||||
.debug_frame 0x00001008 0x2c c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-init.o)
|
||||
.debug_frame 0x00001034 0x20 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_n.a(lib_a-memset.o)
|
||||
.debug_frame 0x00001054 0x20 c:/program files (x86)/embitz/0.42/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libnosys_s.a(_exit.o)
|
||||
|
|
|
@ -1,243 +1,366 @@
|
|||
S02100002E2E5C62696E5C64656D6F70726F675F73746D3332663230372E7372656342
|
||||
S3150800800000000220AD8B0008FB8B0008FD8B0008E2
|
||||
S31508008010FF8B0008018C0008038C00080000000094
|
||||
S31508008020000000000000000000000000058C0008A9
|
||||
S31508008030078C000800000000098C0008AD8D0008B8
|
||||
S315080080400F8C0008118C0008138C0008158C00088A
|
||||
S31508008050178C0008198C00081B8C00081D8C00085A
|
||||
S315080080601F8C0008218C0008238C0008258C00082A
|
||||
S31508008070278C0008298C00082B8C00082D8C0008FA
|
||||
S315080080802F8C0008318C0008338C0008358C0008CA
|
||||
S31508008090378C0008398C00083B8C00083D8C00089A
|
||||
S315080080A03F8C0008418C0008438C0008458C00086A
|
||||
S315080080B0478C0008498C00084B8C00084D8C00083A
|
||||
S315080080C04F8C0008518C0008538C0008558C00080A
|
||||
S315080080D0578C0008598C00085B8C00085D8C0008DA
|
||||
S315080080E05F8C0008618C0008638C0008658C0008AA
|
||||
S315080080F0678C0008698C00086B8C00086D8C00087A
|
||||
S315080081006F8C0008718C0008738C0008758C000849
|
||||
S31508008110778C0008798C00087B8C00087D8C000819
|
||||
S315080081207F8C0008818C0008838C0008858C0008E9
|
||||
S31508008130878C0008898C00088B8C00088D8C0008B9
|
||||
S315080081408F8C0008918C0008938C0008958C000889
|
||||
S31508008150978C0008998C00089B8C00089D8C000859
|
||||
S315080081609F8C0008A18C0008A38C0008A58C000829
|
||||
S31508008170A78C0008A98C0008AB8C0008AD8C0008F9
|
||||
S31508008180AF8C0008EE11AA5510B5054C237833B903
|
||||
S3150800800000000220419300088F930008919300080E
|
||||
S3150800801093930008959300089793000800000000C2
|
||||
S31508008020000000000000000000000000999300080E
|
||||
S315080080309B930008000000009D93000841950008E6
|
||||
S31508008040A3930008A5930008A7930008A99300081E
|
||||
S31508008050AB930008AD930008AF930008B1930008EE
|
||||
S31508008060B3930008B5930008B7930008B9930008BE
|
||||
S31508008070BB930008BD930008BF930008C19300088E
|
||||
S31508008080C3930008C5930008C7930008C99300085E
|
||||
S31508008090CB930008CD930008CF930008D19300082E
|
||||
S315080080A0D3930008D5930008D7930008D9930008FE
|
||||
S315080080B0DB930008DD930008DF930008E1930008CE
|
||||
S315080080C0E3930008E5930008E7930008E99300089E
|
||||
S315080080D0EB930008ED930008EF930008F19300086E
|
||||
S315080080E0F3930008F5930008F7930008F99300083E
|
||||
S315080080F0FB930008FD930008FF930008019400080D
|
||||
S3150800810003940008059400080794000809940008D9
|
||||
S315080081100B9400080D9400080F94000811940008A9
|
||||
S315080081201394000815940008179400081994000879
|
||||
S315080081301B9400081D9400081F9400082194000849
|
||||
S315080081402394000825940008279400082994000819
|
||||
S315080081502B9400082D9400082F94000831940008E9
|
||||
S3150800816033940008359400083794000839940008B9
|
||||
S315080081703B9400083D9400083F9400084194000889
|
||||
S3150800818043940008EE11AA5510B5054C237833B967
|
||||
S31508008190044B13B10448AFF300800123237010BDCC
|
||||
S315080081A07C00002000000000708E000808B5064B11
|
||||
S315080081A07C000020000000002896000808B5064B51
|
||||
S315080081B01BB106480649AFF300800648036813B1A9
|
||||
S315080081C0054B03B1984708BD00000000708E0008F3
|
||||
S315080081C0054B03B1984708BD000000002896000833
|
||||
S315080081D0800000207C00002000000000154B002BCA
|
||||
S315080081E008BF134B9D46A3F5803A00218B460F46E0
|
||||
S315080081F01348144A121A00F021FE0F4B002B00D028
|
||||
S315080081F01348144A121A01F0EBF90F4B002B00D062
|
||||
S3150800820098470E4B002B00D0984700200021040009
|
||||
S315080082100D000D48002802D00C48AFF3008000F08E
|
||||
S31508008220E7FD2000290000F0ABFC00F0CDFD00BF03
|
||||
S315080082100D000D48002802D00C48AFF3008001F08D
|
||||
S31508008220B1F92000290001F075F801F097F900BFAF
|
||||
S315080082300000080000000220000000000000000006
|
||||
S315080082407C000020F0000020000000000000000074
|
||||
S3150800825080B400AFBFF34F8F054A054BDB6803F4C4
|
||||
S31508008260E061044B0B43D360BFF34F8FFEE700BFBB
|
||||
S3150800827000ED00E00400FA0580B500AF00F00EF846
|
||||
S3150800828080BD00BF80B500AF00F058F880BD00BFC4
|
||||
S3150800829080B500AFFFF7DCFF80BD00BF80B586B0B4
|
||||
S315080082A000AF4FF48020012100F0B4FA0820012124
|
||||
S315080082B000F092FA1F480821072200F09DF91D4890
|
||||
S315080082C00921072200F098F90023BB750123FB75E5
|
||||
S315080082D002233B754FF480733B6102237B7507F1DC
|
||||
S315080082E010031448194600F0DDF802233B754FF4D5
|
||||
S315080082F000733B6107F110030E48194600F0D2F8E7
|
||||
S315080083004FF461433B600023BB800023FB800023BE
|
||||
S315080083103B810023BB810C237B813B4606481946DB
|
||||
S3150800832000F096FA0448012100F04CFB1837BD46C8
|
||||
S3150800833080BD00BF000C02400048004080B500AF79
|
||||
S315080083401A4B1B78002B0CD1194800F035F8034658
|
||||
S31508008350012B2AD1154B01221A70164B00221A70CE
|
||||
S3150800836023E0144B1B785A1C114B1344184600F093
|
||||
S3150800837023F80346012B18D10E4B1B780133DAB2CA
|
||||
S315080083800C4B1A700A4B1A780A4B1B789A420CD176
|
||||
S31508008390064B00221A70064B5B78FF2B05D1044B5F
|
||||
S315080083A09B78002B01D1FFF773FF80BD9800002052
|
||||
S315080083B09C000020E000002080B582B000AF786005
|
||||
S315080083C00A48202100F02EFB0346012B08D1074856
|
||||
S315080083D000F018FB0346DAB27B681A70012300E046
|
||||
S315080083E0002318460837BD4680BD00BF0048004038
|
||||
S315080083F080B400AF62B6BD465DF8047B704700BF27
|
||||
S3150800840080B582B000AF2020012100F0E5F94FF4D5
|
||||
S3150800841080733B600023BB710123FB7102237B71D0
|
||||
S3150800842001233B713B460648194600F03BF80448D1
|
||||
S315080084304FF4807100F0D2F80837BD4680BD00BF02
|
||||
S315080084400014024080B582B000AF00F0A3FC78604B
|
||||
S31508008450114B1B687A68D31AB3F5FA7F00D217E076
|
||||
S315080084600E4B1B78002B08D10C4B01221A700C48B6
|
||||
S315080084704FF4807100F0A4F807E0084B00221A7048
|
||||
S3150800848007484FF4807100F0A9F8034B7A681A6020
|
||||
S315080084900837BD4680BD00BFE4000020E800002084
|
||||
S315080084A00014024080B487B000AF786039600023BA
|
||||
S315080084B07B6100233B610023FB6000237B6176E040
|
||||
S315080084C07B69012202FA03F33B613B681A683B6940
|
||||
S315080084D01340FB60FA683B699A4265D17B681A6863
|
||||
S315080084E07B695B00032101FA03F3DB431A407B68CF
|
||||
S315080084F01A607B681A683B681B7919467B695B00BA
|
||||
S3150800850001FA03F31A437B681A603B681B79012B4F
|
||||
S3150800851003D03B681B79022B2ED17B689A687B694E
|
||||
S315080085205B00032101FA03F3DB431A407B689A6078
|
||||
S315080085307B689A683B685B7919467B695B0001FA38
|
||||
S3150800854003F31A437B689A607B685A687B699BB217
|
||||
S31508008550012101FA03F3DB431A407B685A607B6802
|
||||
S315080085605A683B689B7919467B699BB201FA03F303
|
||||
S315080085709BB21A437B685A607B68DA687B699BB250
|
||||
S315080085805B00032101FA03F3DB431A407B68DA60D8
|
||||
S315080085907B68DA683B68DB7919467B695B0001FA18
|
||||
S315080085A003F31A437B68DA607B6901337B617B6975
|
||||
S315080085B00F2B85D91C37BD465DF8047B704700BF75
|
||||
S315080085C080B483B000AF78600B467B807B687A887E
|
||||
S315080085D01A830C37BD465DF8047B704780B483B0B8
|
||||
S315080085E000AF78600B467B807B687A885A830C37A5
|
||||
S315080085F0BD465DF8047B704780B485B000AF7860EF
|
||||
S3150800860013460A467A807B700023FB600023BB6012
|
||||
S315080086107A787B8803F007039B0002FA03F3FB6072
|
||||
S315080086207B88DB089BB21A467B88DB089BB2194617
|
||||
S315080086307B68083153F821107B8803F007039B00F9
|
||||
S315080086400F2000FA03F3DB4319407B68083243F82E
|
||||
S3150800865022107B88DB089BB21A467B68083253F8DF
|
||||
S315080086602220FB681343BB607B88DB089BB21A4653
|
||||
S315080086707B680832B96843F822101437BD465DF89E
|
||||
S31508008680047B704780B489B000AF78600023BB6173
|
||||
S3150800869000237B610023FB6102233B610023FB600F
|
||||
S315080086A00223BB60484B9B6803F00C03BB61BB69A4
|
||||
S315080086B0042B07D0082B09D0002B3FD17B68434AEF
|
||||
S315080086C01A603FE07B68424A1A603BE03E4B5B68B3
|
||||
S315080086D003F480039B0DFB603B4B5B6803F03F0391
|
||||
S315080086E0BB60FB68002B0DD0394ABB68B2FBF3F2BE
|
||||
S315080086F0354B596847F6C0730B409B0903FB02F3D9
|
||||
S31508008700FB610CE0314ABB68B2FBF3F22E4B5968A9
|
||||
S3150800871047F6C0730B409B0903FB02F3FB612A4B28
|
||||
S315080087205B6803F440331B0C01335B003B61FA6959
|
||||
S315080087303B69B2FBF3F27B681A6003E07B68234A65
|
||||
S315080087401A6000BF204B9B6803F0F003BB61BB694E
|
||||
S315080087501B09BB611F4ABB6913441B78DBB27B61EB
|
||||
S315080087607B681A687B69DA407B685A60164B9B6897
|
||||
S3150800877003F4E053BB61BB699B0ABB61154ABB693D
|
||||
S3150800878013441B78DBB27B617B685A687B69DA40E5
|
||||
S315080087907B689A600C4B9B6803F46043BB61BB69BA
|
||||
S315080087A05B0BBB610B4ABB6913441B78DBB27B616D
|
||||
S315080087B07B685A687B69DA407B68DA602437BD468D
|
||||
S315080087C05DF8047B704700BF003802400024F400BF
|
||||
S315080087D040787D010000002080B483B000AF786047
|
||||
S315080087E00B46FB70FB78002B06D0094B084A116B29
|
||||
S315080087F07A680A431A6306E0054B054A116B7A68DC
|
||||
S31508008800D2430A401A630C37BD465DF8047B7047AD
|
||||
S315080088100038024080B483B000AF78600B46FB7026
|
||||
S31508008820FB78002B06D0094B084A116C7A680A4374
|
||||
S315080088301A6406E0054B054A116C7A68D2430A4069
|
||||
S315080088401A640C37BD465DF8047B70470038024051
|
||||
S3150800885080B58AB000AF7860396000237B62002358
|
||||
S315080088603B620023FB610023BB617B681B8A9BB2CA
|
||||
S315080088707B627B6A23F440537B623B68DB887A6AB7
|
||||
S3150800888013437B627B6A9AB27B681A827B689B89F0
|
||||
S315080088909BB27B627B6A23F4B05323F00C037B62A2
|
||||
S315080088A03B689A883B681B8913439AB23B685B8985
|
||||
S315080088B013439BB27A6A13437B627B6A9AB27B68DC
|
||||
S315080088C09A817B689B8A9BB27B627B6A23F440739E
|
||||
S315080088D07B623B689B897A6A13437B627B6A9AB29E
|
||||
S315080088E07B689A8207F108031846FFF7CBFE7A6879
|
||||
S315080088F0314B9A4203D07A68304B9A4202D17B694F
|
||||
S315080089003B6201E03B693B627B689B899BB29BB2F9
|
||||
S315080089101BB2002B0CDA3A6A13469B0013449A00E2
|
||||
S315080089201A443B681B685B00B2FBF3F3FB610BE080
|
||||
S315080089303A6A13469B0013449A001A443B681B681C
|
||||
S315080089409B00B2FBF3F3FB61FA691D4BA3FB021311
|
||||
S315080089505B091B017B627B6A1B09642202FB03F32A
|
||||
S31508008960FA69D31ABB617B689B899BB29BB21BB21F
|
||||
S31508008970002B0DDABB69DB0003F13202104BA3FBB7
|
||||
S3150800898002135B0903F007037A6A13437B620CE060
|
||||
S31508008990BB691B0103F13202094BA3FB02135B09F6
|
||||
S315080089A003F00F037A6A13437B627B6A9AB27B6889
|
||||
S315080089B01A812837BD4680BD0010014000140140C9
|
||||
S315080089C01F85EB5180B483B000AF78600B46FB700F
|
||||
S315080089D0FB78002B08D07B689B899BB243F4005335
|
||||
S315080089E09AB27B689A8107E07B689B899BB223F4DD
|
||||
S315080089F000539AB27B689A810C37BD465DF8047BB2
|
||||
S31508008A00704700BF80B483B000AF78607B689B88EE
|
||||
S31508008A109BB2C3F308039BB218460C37BD465DF8F4
|
||||
S31508008A20047B704780B485B000AF78600B467B80C6
|
||||
S31508008A300023FB737B681B889AB27B8813409BB222
|
||||
S31508008A40002B02D00123FB7301E00023FB73FB7BA1
|
||||
S31508008A5018461437BD465DF8047B704780B500AFED
|
||||
S31508008A600F4B0F4A126842F001021A600C4B0022A3
|
||||
S31508008A709A600B4A0A4B1B6823F0847323F48033ED
|
||||
S31508008A801360074B074A5A60054B054A126822F4D9
|
||||
S31508008A9080221A60024B0022DA6000F005F880BDD9
|
||||
S31508008AA0003802401030002480B483B000AF0023A1
|
||||
S31508008AB07B6000233B602F4B2E4A126842F48032BB
|
||||
S31508008AC01A602C4B1B6803F400333B607B68013348
|
||||
S31508008AD07B603B68002B03D17B68B3F5C06FF0D190
|
||||
S31508008AE0244B1B6803F40033002B02D001233B60A0
|
||||
S31508008AF001E000233B603B68012B36D11D4B1D4A24
|
||||
S31508008B0092689A601B4B1B4A926842F400429A602C
|
||||
S31508008B10184B184A926842F4A0529A60154B164AA6
|
||||
S31508008B205A60144B134A126842F080721A6000BFEA
|
||||
S31508008B30104B1B6803F00073002BF9D00F4B40F263
|
||||
S31508008B4003721A600B4B0B4A926822F003029A6072
|
||||
S31508008B50084B084A926842F002029A6000BF054B29
|
||||
S31508008B609B6803F00C03082BF9D10C37BD465DF85A
|
||||
S31508008B70047B704700380240193C4005003C02401F
|
||||
S31508008B8080B500AF00F008F8FFF776FBFFF75AFC50
|
||||
S31508008B90FFF778FBFAE700BF80B500AFFFF730FCB8
|
||||
S31508008BA000F0D6F8FFF724FC80BD00BF07498D46C4
|
||||
S31508008BB00749084A084B9A42BEBF51F8040B42F8C7
|
||||
S31508008BC0040BF8E7054880470548004700000220DF
|
||||
S31508008BD07C8E0008000000207C0000205D8A0008CA
|
||||
S31508008BE0DD8100083249334A002301E041F8043B9D
|
||||
S31508008BF09142FBD3FFF7C4FFFEE7FEE7FEE7FEE779
|
||||
S31508008C00FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE72E
|
||||
S31508008C10FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE71E
|
||||
S31508008C20FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE70E
|
||||
S31508008C30FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7FE
|
||||
S31508008C40FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7EE
|
||||
S31508008C50FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7DE
|
||||
S31508008C60FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7CE
|
||||
S31508008C70FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7BE
|
||||
S31508008C80FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7AE
|
||||
S31508008C90FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE79E
|
||||
S31508008CA0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE78E
|
||||
S31508008CB07C000020F000002080B483B000AF03469B
|
||||
S31508008CC03960FB7197F90730002B0BDA0D49FB79F0
|
||||
S31508008CD003F00F03043B3A68D2B21201D2B20B4436
|
||||
S31508008CE01A7609E0084997F907303A68D2B21201AC
|
||||
S31508008CF0D2B20B4483F800230C37BD465DF8047BDB
|
||||
S31508008D00704700BF00ED00E000E100E080B582B0EA
|
||||
S31508008D1000AF78607B68B3F1807F01D3012311E04F
|
||||
S31508008D200A4B7A6822F07F42013A5A604FF0FF30C8
|
||||
S31508008D300F21FFF7C1FF054B00229A60034B07225C
|
||||
S31508008D401A60002318460837BD4680BD10E000E0CB
|
||||
S31508008D5080B500AF064B1A68064BA3FB02139B09A6
|
||||
S31508008D601846FFF7D3FF002000F006F880BD00BFC5
|
||||
S31508008D7010000020D34D621080B483B000AF786035
|
||||
S31508008D80034B7A681A600C37BD465DF8047B70475A
|
||||
S31508008D90EC00002080B400AF034B1B681846BD46A4
|
||||
S31508008DA05DF8047B704700BFEC00002080B400AF7C
|
||||
S31508008DB0044B1B685A1C034B1A60BD465DF8047BBE
|
||||
S31508008DC0704700BFEC00002008B5074B044613B1F6
|
||||
S31508008DD00021AFF30080054B1868836A03B19847F2
|
||||
S31508008DE0204600F033F800BF000000006C8E000833
|
||||
S31508008DF070B50E4B0E4D0024ED1AAD101E46AC4252
|
||||
S31508008E0004D056F8242090470134F8E700F020F8FB
|
||||
S31508008E10084D094B0024ED1AAD101E46AC4204D08D
|
||||
S31508008E2056F8242090470134F8E770BD74000020F6
|
||||
S31508008E3074000020780000207400002002440346D5
|
||||
S31508008E40934202D003F8011BFAE77047FEE70000D9
|
||||
S31508008E50F8B500BFF8BC08BC9E467047F8B500BF19
|
||||
S31508008E60F8BC08BC9E46704743000000140000206A
|
||||
S30908008E7000000000F0
|
||||
S30D08008E7468F3FF7F010000000E
|
||||
S31508008E7C00000000010203040102030406070809A6
|
||||
S31508008E8C000E27070000000000000000000000008C
|
||||
S31508008E9C00000000000000000000000000000000B8
|
||||
S31508008EAC00000000688E00080000000000000000AA
|
||||
S31508008EBC0000000000000000000000000000000098
|
||||
S31508008ECC0000000000000000000000000000000088
|
||||
S31508008EDC0000000000000000000000000000000078
|
||||
S31108008EEC00000000AD8100088981000824
|
||||
S3150800827000ED00E00400FA0580B500AF00F012F842
|
||||
S3150800828000F01AF980BD00BF80B500AF00F05AF8BB
|
||||
S3150800829000F08AF980BD00BF80B500AFFFF7D8FFB0
|
||||
S315080082A080BD00BF80B586B000AF4FF480200121A5
|
||||
S315080082B000F05CFE0820012100F03AFE1F48082164
|
||||
S315080082C0072200F045FD1D480921072200F040FD60
|
||||
S315080082D00023BB750123FB7502233B754FF480739E
|
||||
S315080082E03B6102237B7507F110031448194600F019
|
||||
S315080082F085FC02233B754FF400733B6107F11003BD
|
||||
S315080083000E48194600F07AFC4FF461433B6000239F
|
||||
S31508008310BB800023FB8000233B810023BB810C2309
|
||||
S315080083207B813B460648194600F05CFE044801215D
|
||||
S3150800833000F012FF1837BD4680BD00BF000C024092
|
||||
S315080083400048004080B500AF1A4B1B78002B0CD1B3
|
||||
S31508008350194800F035F80346012B2AD1154B01229E
|
||||
S315080083601A70164B00221A7023E0144B1B785A1CFD
|
||||
S31508008370114B1344184600F023F80346012B18D175
|
||||
S315080083800E4B1B780133DAB20C4B1A700A4B1A786B
|
||||
S315080083900A4B1B789A420CD1064B00221A70064BE0
|
||||
S315080083A05B78FF2B05D1044B9B78002B01D1FFF797
|
||||
S315080083B073FF80BD980000209C000020E00000208C
|
||||
S315080083C080B582B000AF78600A48202100F0F4FE3C
|
||||
S315080083D00346012B08D1074800F0DEFE0346DAB251
|
||||
S315080083E07B681A70012300E0002318460837BD464B
|
||||
S315080083F080BD00BF0048004080B487B000AFB960B8
|
||||
S315080084007A603B600346FB810023FB7548E0FA89E6
|
||||
S31508008410F97D284B13F811301946FB7D25485B007A
|
||||
S3150800842003445B780B44013303FB02F247F23053F3
|
||||
S3150800843093FBF2F102FB01F29B1A002B2DD1FA896C
|
||||
S31508008440F97D1C4B13F811301946FB7D19485B0062
|
||||
S3150800845003445B780B44013303FB02F347F23052C3
|
||||
S3150800846092FBF3F39AB2BB681A80BB681B88002B91
|
||||
S3150800847013D0BB681B88B3F5806F0ED8FA7D0D4BF9
|
||||
S3150800848013F812207B681A70FB7D0A4A5B001344B6
|
||||
S315080084905A783B681A70012306E0FB7D0133FB75A9
|
||||
S315080084A0FB7D112BB3D9002318461C37BD465DF852
|
||||
S315080084B0047B7047FC95000880B58AB000AF02209F
|
||||
S315080084C0012100F035FD36480821092200F040FC5C
|
||||
S315080084D033480921092200F03BFC4FF440733B6204
|
||||
S315080084E0022387F82430022387F82530002387F8EB
|
||||
S315080084F02630012387F8273007F120032848194634
|
||||
S3150800850000F07CFB4FF00070012100F02FFD25489C
|
||||
S3150800851000F0C6F807F11403184600F067FAB91C0C
|
||||
S315080085207A1C3B464FF4FA70FFF766FF0023BB76CA
|
||||
S315080085300023FB7600233B7700237B770023BB775A
|
||||
S315080085400023FB770023BB750023FB757B78013B73
|
||||
S31508008550DBB23B763B78013BDBB27B767B88BB8222
|
||||
S3150800856007F114030F48194600F0BCF80023BB7343
|
||||
S315080085700023FB7301233B740023BB800023FB808D
|
||||
S3150800858000233B8100237B810023BB8101237B746D
|
||||
S315080085903B1D184600F078F92837BD4680BD00BF58
|
||||
S315080085A0000402400064004080B586B000AF0E4863
|
||||
S315080085B0002100F0FDFA0346002B12D03B1D0A48A5
|
||||
S315080085C000211A4600F03CFA7A6840F267639A423C
|
||||
S315080085D007D1FB7BFF2B04D13B7C002B01D1FFF796
|
||||
S315080085E05BFE1837BD4680BD0064004080B400AF0E
|
||||
S315080085F062B6BD465DF8047B704700BF80B582B0A1
|
||||
S3150800860000AF2020012100F093FC4FF480733B60FB
|
||||
S315080086100023BB710123FB7102237B7101233B718C
|
||||
S315080086203B460648194600F0E9FA04484FF48071BB
|
||||
S3150800863000F080FB0837BD4680BD00BF001402402D
|
||||
S3150800864080B582B000AF00F06FFF7860114B1B68F1
|
||||
S315080086507A68D31AB3F5FA7F00D217E00E4B1B7867
|
||||
S31508008660002B08D10C4B01221A700C484FF480716C
|
||||
S3150800867000F052FB07E0084B00221A7007484FF437
|
||||
S31508008680807100F057FB034B7A681A600837BD46BD
|
||||
S3150800869080BD00BFE4000020E8000020001402406E
|
||||
S315080086A080B582B000AF78607A680D4B9A420AD1DD
|
||||
S315080086B04FF00070012100F077FC4FF000700021A8
|
||||
S315080086C000F072FC09E04FF08060012100F06CFCBC
|
||||
S315080086D04FF08060002100F067FC0837BD4680BD7A
|
||||
S315080086E00064004080B485B000AF7860396000232C
|
||||
S315080086F0FB730023BB607B681B6823F002027B6860
|
||||
S315080087001A607B681B6843F001027B681A6002E006
|
||||
S31508008710BB680133BB607B685B6803F00103002B11
|
||||
S3150800872004D1BA684FF6FF739A42F1D17B685B6849
|
||||
S3150800873003F00103002B02D10023FB739CE03B6886
|
||||
S315080087409B79012B06D17B681B6843F080027B6806
|
||||
S315080087501A6005E07B681B6823F080027B681A6054
|
||||
S315080087603B68DB79012B06D17B681B6843F0400226
|
||||
S315080087707B681A6005E07B681B6823F040027B680B
|
||||
S315080087801A603B681B7A012B06D17B681B6843F08D
|
||||
S3150800879020027B681A6005E07B681B6823F02002CC
|
||||
S315080087A07B681A603B685B7A012B06D17B681B687D
|
||||
S315080087B043F010027B681A6005E07B681B6823F0AB
|
||||
S315080087C010027B681A603B689B7A012B06D17B688E
|
||||
S315080087D01B6843F008027B681A6005E07B681B6823
|
||||
S315080087E023F008027B681A603B68DB7A012B06D106
|
||||
S315080087F07B681B6843F004027B681A6005E07B68A7
|
||||
S315080088001B6823F004027B681A603B689B789A070A
|
||||
S315080088103B68DB781B061A433B681B791B041A4323
|
||||
S315080088203B685B791B051A433B681B88013B1A4367
|
||||
S315080088307B68DA617B681B6823F001027B681A6033
|
||||
S315080088400023BB6002E0BB680133BB607B685B68E2
|
||||
S3150800885003F00103002B04D0BA684FF6FF739A425F
|
||||
S31508008860F1D17B685B6803F00103002B02D000237B
|
||||
S31508008870FB7301E00123FB73FB7B18461437BD46E7
|
||||
S315080088805DF8047B704700BF80B485B000AF7860A0
|
||||
S315080088900023FB607B689B7A012202FA03F3FB60E4
|
||||
S315080088A0514B514AD2F8002242F00102C3F8002285
|
||||
S315080088B04D4B4D4AD2F81C12FA68D2430A40C3F807
|
||||
S315080088C01C227B681B7B002B21D1474B464AD2F8DA
|
||||
S315080088D00C12FA68D2430A40C3F80C22424B7A6853
|
||||
S315080088E0927A7968C98808047968498801434832C0
|
||||
S315080088F043F832103C497B689B7A7A689288100460
|
||||
S315080089007A68128802434833DB000B445A607B6856
|
||||
S315080089101B7B012B20D1344B334AD2F80C12FA6850
|
||||
S315080089200A43C3F80C22304B7A68927A7968098828
|
||||
S315080089300804796849880143483243F832102A49BD
|
||||
S315080089407B689B7A7A68928810047A68D288024390
|
||||
S315080089504833DB000B445A607B68DB7A002B09D16D
|
||||
S31508008960214B214AD2F80412FA68D2430A40C3F8C6
|
||||
S31508008970042207E01C4B1C4AD2F80412FA680A4380
|
||||
S31508008980C3F804227B681B89002B08D1164B164AAC
|
||||
S31508008990D2F81412FA68D2430A40C3F814227B6844
|
||||
S315080089A01B89012B07D1104B0F4AD2F81412FA680B
|
||||
S315080089B00A43C3F814227B685B7B012B07D10A4B59
|
||||
S315080089C0094AD2F81C12FA680A43C3F81C22064B55
|
||||
S315080089D0054AD2F8002222F00102C3F80022143711
|
||||
S315080089E0BD465DF8047B70470064004080B483B0E0
|
||||
S315080089F000AF78607B6800229A717B680022DA7182
|
||||
S31508008A007B6800221A727B6800225A727B680022F1
|
||||
S31508008A109A727B680022DA727B6800229A707B68F9
|
||||
S31508008A200022DA707B6803221A717B6802225A7167
|
||||
S31508008A307B6801221A800C37BD465DF8047B7047B7
|
||||
S31508008A4080B485B000AFF8600B467A60FB72FB7A9B
|
||||
S31508008A50FA681B331B0113441B68DBB203F00403DB
|
||||
S31508008A60DAB27B681A727B681B7A002B09D1FB7A0B
|
||||
S31508008A70FA681B331B0113441B685A0D7B681A607E
|
||||
S31508008A8008E0FB7AFA681B331B0113441B68DA08F3
|
||||
S31508008A907B685A60FB7AFA681B331B0113441B6810
|
||||
S31508008AA0DBB203F00203DAB27B685A72FB7AFA6821
|
||||
S31508008AB01B331B0113445B68DBB203F00F03DAB206
|
||||
S31508008AC07B689A72FB7AFA681B331B0113445B684E
|
||||
S31508008AD01B0ADAB27B68DA74FB7AFA681B0113445C
|
||||
S31508008AE003F5DC731B68DAB27B68DA72FB7AFA681C
|
||||
S31508008AF01B01134403F5DC731B681B0ADAB27B6897
|
||||
S31508008B001A73FB7AFA681B01134403F5DC731B68B6
|
||||
S31508008B101B0CDAB27B685A73FB7AFA681B0113449A
|
||||
S31508008B2003F5DC731B681B0EDAB27B689A73FB7A53
|
||||
S31508008B30FA681B01134403F5DC735B68DAB27B68D9
|
||||
S31508008B40DA73FB7AFA681B01134403F5DC735B6876
|
||||
S31508008B501B0ADAB27B681A74FB7AFA681B0113449B
|
||||
S31508008B6003F5DC735B681B0CDAB27B685A74FB7A14
|
||||
S31508008B70FA681B01134403F5DC735B681B0EDAB253
|
||||
S31508008B807B689A74FB7A002B06D1FB68DB6843F096
|
||||
S31508008B902002FB68DA6005E0FB681B6943F02002E7
|
||||
S31508008BA0FB681A611437BD465DF8047B704700BF41
|
||||
S31508008BB080B485B000AF78600B46FB700023FB736A
|
||||
S31508008BC0FB78002B06D17B68DB68DBB203F0030376
|
||||
S31508008BD0FB730BE0FB78012B06D17B681B69DBB2C4
|
||||
S31508008BE003F00303FB7301E00023FB73FB7B1846CA
|
||||
S31508008BF01437BD465DF8047B704700BF80B487B064
|
||||
S31508008C0000AF7860396000237B6100233B61002355
|
||||
S31508008C10FB6000237B6176E07B69012202FA03F39D
|
||||
S31508008C203B613B681A683B691340FB60FA683B691D
|
||||
S31508008C309A4265D17B681A687B695B00032101FA51
|
||||
S31508008C4003F3DB431A407B681A607B681A683B6843
|
||||
S31508008C501B7919467B695B0001FA03F31A437B68A3
|
||||
S31508008C601A603B681B79012B03D03B681B79022BE2
|
||||
S31508008C702ED17B689A687B695B00032101FA03F3AE
|
||||
S31508008C80DB431A407B689A607B689A683B685B7925
|
||||
S31508008C9019467B695B0001FA03F31A437B689A60FD
|
||||
S31508008CA07B685A687B699BB2012101FA03F3DB43AF
|
||||
S31508008CB01A407B685A607B685A683B689B791946F4
|
||||
S31508008CC07B699BB201FA03F39BB21A437B685A602D
|
||||
S31508008CD07B68DA687B699BB25B00032101FA03F3C0
|
||||
S31508008CE0DB431A407B68DA607B68DA683B68DB79C5
|
||||
S31508008CF019467B695B0001FA03F31A437B68DA605D
|
||||
S31508008D007B6901337B617B690F2B85D91C37BD468F
|
||||
S31508008D105DF8047B704700BF80B483B000AF78600D
|
||||
S31508008D200B467B807B687A881A830C37BD465DF8CC
|
||||
S31508008D30047B704780B483B000AF78600B467B80B5
|
||||
S31508008D407B687A885A830C37BD465DF8047B704782
|
||||
S31508008D5080B485B000AF786013460A467A807B7087
|
||||
S31508008D600023FB600023BB607A787B8803F0070347
|
||||
S31508008D709B0002FA03F3FB607B88DB089BB21A466A
|
||||
S31508008D807B88DB089BB219467B68083153F82110AB
|
||||
S31508008D907B8803F007039B000F2000FA03F3DB43ED
|
||||
S31508008DA019407B68083243F822107B88DB089BB29F
|
||||
S31508008DB01A467B68083253F82220FB681343BB60C7
|
||||
S31508008DC07B88DB089BB21A467B680832B96843F889
|
||||
S31508008DD022101437BD465DF8047B704780B489B00D
|
||||
S31508008DE000AF78600023BB6100237B610023FB6131
|
||||
S31508008DF002233B610023FB600223BB60484B9B6850
|
||||
S31508008E0003F00C03BB61BB69042B07D0082B09D000
|
||||
S31508008E10002B3FD17B68434A1A603FE07B68424A91
|
||||
S31508008E201A603BE03E4B5B6803F480039B0DFB60D6
|
||||
S31508008E303B4B5B6803F03F03BB60FB68002B0DD020
|
||||
S31508008E40394ABB68B2FBF3F2354B596847F6C0732B
|
||||
S31508008E500B409B0903FB02F3FB610CE0314ABB683C
|
||||
S31508008E60B2FBF3F22E4B596847F6C0730B409B09C9
|
||||
S31508008E7003FB02F3FB612A4B5B6803F440331B0CCC
|
||||
S31508008E8001335B003B61FA693B69B2FBF3F27B682D
|
||||
S31508008E901A6003E07B68234A1A6000BF204B9B6870
|
||||
S31508008EA003F0F003BB61BB691B09BB611F4ABB69C1
|
||||
S31508008EB013441B78DBB27B617B681A687B69DA40EE
|
||||
S31508008EC07B685A60164B9B6803F4E053BB61BB6929
|
||||
S31508008ED09B0ABB61154ABB6913441B78DBB27B61ED
|
||||
S31508008EE07B685A687B69DA407B689A600C4B9B689A
|
||||
S31508008EF003F46043BB61BB695B0BBB610B4ABB698F
|
||||
S31508008F0013441B78DBB27B617B685A687B69DA405D
|
||||
S31508008F107B68DA602437BD465DF8047B704700BF7E
|
||||
S31508008F20003802400024F40040787D01000000204B
|
||||
S31508008F3080B483B000AF78600B46FB70FB78002BDB
|
||||
S31508008F4006D0094B084A116B7A680A431A6306E089
|
||||
S31508008F50054B054A116B7A68D2430A401A630C37E7
|
||||
S31508008F60BD465DF8047B70470038024080B483B084
|
||||
S31508008F7000AF78600B46FB70FB78002B06D0094BD8
|
||||
S31508008F80084A116C7A680A431A6406E0054B054AD2
|
||||
S31508008F90116C7A68D2430A401A640C37BD465DF8EC
|
||||
S31508008FA0047B70470038024080B483B000AF786015
|
||||
S31508008FB00B46FB70FB78002B06D0094B084A116A52
|
||||
S31508008FC07A680A431A6206E0054B054A116A7A6806
|
||||
S31508008FD0D2430A401A620C37BD465DF8047B7047D7
|
||||
S31508008FE00038024080B58AB000AF78603960002347
|
||||
S31508008FF07B6200233B620023FB610023BB617B6825
|
||||
S315080090001B8A9BB27B627B6A23F440537B623B6874
|
||||
S31508009010DB887A6A13437B627B6A9AB27B681A8218
|
||||
S315080090207B689B899BB27B627B6A23F4B05323F0EF
|
||||
S315080090300C037B623B689A883B681B8913439AB288
|
||||
S315080090403B685B8913439BB27A6A13437B627B6AEC
|
||||
S315080090509AB27B689A817B689B8A9BB27B627B6AA1
|
||||
S3150800906023F440737B623B689B897A6A13437B626D
|
||||
S315080090707B6A9AB27B689A8207F108031846FFF75B
|
||||
S31508009080ADFE7A68314B9A4203D07A68304B9A42E1
|
||||
S3150800909002D17B693B6201E03B693B627B689B8945
|
||||
S315080090A09BB29BB21BB2002B0CDA3A6A13469B00A2
|
||||
S315080090B013449A001A443B681B685B00B2FBF3F33F
|
||||
S315080090C0FB610BE03A6A13469B0013449A001A4464
|
||||
S315080090D03B681B689B00B2FBF3F3FB61FA691D4B07
|
||||
S315080090E0A3FB02135B091B017B627B6A1B096422D3
|
||||
S315080090F002FB03F3FA69D31ABB617B689B899BB2AF
|
||||
S315080091009BB21BB2002B0DDABB69DB0003F13202FE
|
||||
S31508009110104BA3FB02135B0903F007037A6A134398
|
||||
S315080091207B620CE0BB691B0103F13202094BA3FB0E
|
||||
S3150800913002135B0903F00F037A6A13437B627B6AA7
|
||||
S315080091409AB27B681A812837BD4680BD0010014057
|
||||
S31508009150001401401F85EB5180B483B000AF7860DE
|
||||
S315080091600B46FB70FB78002B08D07B689B899BB26B
|
||||
S3150800917043F400539AB27B689A8107E07B689B891F
|
||||
S315080091809BB223F400539AB27B689A810C37BD468A
|
||||
S315080091905DF8047B704700BF80B483B000AF786089
|
||||
S315080091A07B689B889BB2C3F308039BB218460C37AF
|
||||
S315080091B0BD465DF8047B704780B485B000AF786023
|
||||
S315080091C00B467B800023FB737B681B889AB27B88DF
|
||||
S315080091D013409BB2002B02D00123FB7301E000234E
|
||||
S315080091E0FB73FB7B18461437BD465DF8047B704756
|
||||
S315080091F080B500AF0F4B0F4A126842F001021A60A1
|
||||
S315080092000C4B00229A600B4A0A4B1B6823F08473A6
|
||||
S3150800921023F480331360074B074A5A60054B054A07
|
||||
S31508009220126822F480221A60024B0022DA6000F0EB
|
||||
S3150800923005F880BD003802401030002480B483B0A1
|
||||
S3150800924000AF00237B6000233B602F4B2E4A126839
|
||||
S3150800925042F480321A602C4B1B6803F400333B60DF
|
||||
S315080092607B6801337B603B68002B03D17B68B3F5D1
|
||||
S31508009270C06FF0D1244B1B6803F40033002B02D0D7
|
||||
S3150800928001233B6001E000233B603B68012B36D19C
|
||||
S315080092901D4B1D4A92689A601B4B1B4A926842F402
|
||||
S315080092A000429A60184B184A926842F4A0529A6093
|
||||
S315080092B0154B164A5A60144B134A126842F08072CC
|
||||
S315080092C01A6000BF104B1B6803F00073002BF9D01F
|
||||
S315080092D00F4B40F203721A600B4B0B4A926822F04E
|
||||
S315080092E003029A60084B084A926842F002029A60A2
|
||||
S315080092F000BF054B9B6803F00C03082BF9D10C370C
|
||||
S31508009300BD465DF8047B704700380240193C4005AD
|
||||
S31508009310003C024080B500AF00F008F8FEF7ACFF4D
|
||||
S31508009320FFF78EF9FEF7B0FFFAE700BF80B500AF8A
|
||||
S31508009330FFF764F900F0D6F8FFF758F980BD00BFCB
|
||||
S3150800934007498D460749084A084B9A42BEBF51F855
|
||||
S31508009350040B42F8040BF8E7054880470548004720
|
||||
S315080093600000022034960008000000207C0000203F
|
||||
S31508009370F1910008DD8100083249334A002301E0F3
|
||||
S3150800938041F8043B9142FBD3FFF7C4FFFEE7FEE733
|
||||
S31508009390FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE797
|
||||
S315080093A0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE787
|
||||
S315080093B0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE777
|
||||
S315080093C0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE767
|
||||
S315080093D0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE757
|
||||
S315080093E0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE747
|
||||
S315080093F0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE737
|
||||
S31508009400FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE726
|
||||
S31508009410FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE716
|
||||
S31508009420FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE706
|
||||
S31508009430FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7F6
|
||||
S31508009440FEE7FEE77C000020F000002080B483B031
|
||||
S3150800945000AF03463960FB7197F90730002B0BDA2A
|
||||
S315080094600D49FB7903F00F03043B3A68D2B21201A7
|
||||
S31508009470D2B20B441A7609E0084997F907303A68D8
|
||||
S31508009480D2B21201D2B20B4483F800230C37BD4680
|
||||
S315080094905DF8047B704700BF00ED00E000E100E0E6
|
||||
S315080094A080B582B000AF78607B68B3F1807F01D366
|
||||
S315080094B0012311E00A4B7A6822F07F42013A5A608A
|
||||
S315080094C04FF0FF300F21FFF7C1FF054B00229A60CE
|
||||
S315080094D0034B07221A60002318460837BD4680BD8D
|
||||
S315080094E010E000E080B500AF064B1A68064BA3FBF8
|
||||
S315080094F002139B091846FFF7D3FF002000F006F871
|
||||
S3150800950080BD00BF10000020D34D621080B483B028
|
||||
S3150800951000AF7860034B7A681A600C37BD465DF871
|
||||
S31508009520047B7047EC00002080B400AF034B1B6837
|
||||
S315080095301846BD465DF8047B704700BFEC00002066
|
||||
S3150800954080B400AF044B1B685A1C034B1A60BD4617
|
||||
S315080095505DF8047B704700BFEC00002008B5074B98
|
||||
S31508009560044613B10021AFF30080054B1868836ADF
|
||||
S3150800957003B19847204600F033F800BF000000000A
|
||||
S315080095802496000870B50E4B0E4D0024ED1AAD104A
|
||||
S315080095901E46AC4204D056F8242090470134F8E71A
|
||||
S315080095A000F020F8084D094B0024ED1AAD101E46B0
|
||||
S315080095B0AC4204D056F8242090470134F8E770BD31
|
||||
S315080095C07400002074000020780000207400002039
|
||||
S315080095D002440346934202D003F8011BFAE7704798
|
||||
S315080095E0FEE70000F8B500BFF8BC08BC9E46704709
|
||||
S315080095F0F8B500BFF8BC08BC9E46704705020602CF
|
||||
S31508009600060307030803090309040A040B040C04E8
|
||||
S315080096100C050D050E050F050F0610061007100898
|
||||
S31108009620430000001400002000000000B9
|
||||
S30D0800962CB0EBFF7F010000000E
|
||||
S3150800963400000000010203040102030406070809E6
|
||||
S31508009644000E2707000000000000000000000000CC
|
||||
S3150800965400000000000000000000000000000000F8
|
||||
S31508009664000000002096000800000000000000002A
|
||||
S3150800967400000000000000000000000000000000D8
|
||||
S3150800968400000000000000000000000000000000C8
|
||||
S3150800969400000000000000000000000000000000B8
|
||||
S311080096A400000000AD8100088981000864
|
||||
S7050800800072
|
||||
|
|
|
@ -39,6 +39,10 @@
|
|||
static void BootComUartInit(void);
|
||||
static void BootComUartCheckActivationRequest(void);
|
||||
#endif
|
||||
#if (BOOT_COM_CAN_ENABLE > 0)
|
||||
static void BootComCanInit(void);
|
||||
static void BootComCanCheckActivationRequest(void);
|
||||
#endif
|
||||
|
||||
/************************************************************************************//**
|
||||
** \brief Initializes the communication interface.
|
||||
|
@ -50,6 +54,9 @@ void BootComInit(void)
|
|||
#if (BOOT_COM_UART_ENABLE > 0)
|
||||
BootComUartInit();
|
||||
#endif
|
||||
#if (BOOT_COM_CAN_ENABLE > 0)
|
||||
BootComCanInit();
|
||||
#endif
|
||||
} /*** end of BootComInit ***/
|
||||
|
||||
|
||||
|
@ -64,6 +71,9 @@ void BootComCheckActivationRequest(void)
|
|||
#if (BOOT_COM_UART_ENABLE > 0)
|
||||
BootComUartCheckActivationRequest();
|
||||
#endif
|
||||
#if (BOOT_COM_CAN_ENABLE > 0)
|
||||
BootComCanCheckActivationRequest();
|
||||
#endif
|
||||
} /*** end of BootComCheckActivationRequest ***/
|
||||
|
||||
|
||||
|
@ -205,6 +215,182 @@ static unsigned char UartReceiveByte(unsigned char *data)
|
|||
#endif /* BOOT_COM_UART_ENABLE > 0 */
|
||||
|
||||
|
||||
#if (BOOT_COM_CAN_ENABLE > 0)
|
||||
/****************************************************************************************
|
||||
* C O N T R O L L E R A R E A N E T W O R K I N T E R F A C E
|
||||
****************************************************************************************/
|
||||
|
||||
/****************************************************************************************
|
||||
* Type definitions
|
||||
****************************************************************************************/
|
||||
/** \brief Structure type for grouping CAN bus timing related information. */
|
||||
typedef struct t_can_bus_timing
|
||||
{
|
||||
unsigned char tseg1; /**< CAN time segment 1 */
|
||||
unsigned char tseg2; /**< CAN time segment 2 */
|
||||
} tCanBusTiming;
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Local constant declarations
|
||||
****************************************************************************************/
|
||||
/** \brief CAN bittiming table for dynamically calculating the bittiming settings.
|
||||
* \details According to the CAN protocol 1 bit-time can be made up of between 8..25
|
||||
* time quanta (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC
|
||||
* always being 1. The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) *
|
||||
* 100%. This array contains possible and valid time quanta configurations with
|
||||
* a sample point between 68..78%.
|
||||
*/
|
||||
static const tCanBusTiming canTiming[] =
|
||||
{ /* TQ | TSEG1 | TSEG2 | SP */
|
||||
/* ------------------------- */
|
||||
{ 5, 2 }, /* 8 | 5 | 2 | 75% */
|
||||
{ 6, 2 }, /* 9 | 6 | 2 | 78% */
|
||||
{ 6, 3 }, /* 10 | 6 | 3 | 70% */
|
||||
{ 7, 3 }, /* 11 | 7 | 3 | 73% */
|
||||
{ 8, 3 }, /* 12 | 8 | 3 | 75% */
|
||||
{ 9, 3 }, /* 13 | 9 | 3 | 77% */
|
||||
{ 9, 4 }, /* 14 | 9 | 4 | 71% */
|
||||
{ 10, 4 }, /* 15 | 10 | 4 | 73% */
|
||||
{ 11, 4 }, /* 16 | 11 | 4 | 75% */
|
||||
{ 12, 4 }, /* 17 | 12 | 4 | 76% */
|
||||
{ 12, 5 }, /* 18 | 12 | 5 | 72% */
|
||||
{ 13, 5 }, /* 19 | 13 | 5 | 74% */
|
||||
{ 14, 5 }, /* 20 | 14 | 5 | 75% */
|
||||
{ 15, 5 }, /* 21 | 15 | 5 | 76% */
|
||||
{ 15, 6 }, /* 22 | 15 | 6 | 73% */
|
||||
{ 16, 6 }, /* 23 | 16 | 6 | 74% */
|
||||
{ 16, 7 }, /* 24 | 16 | 7 | 71% */
|
||||
{ 16, 8 } /* 25 | 16 | 8 | 68% */
|
||||
};
|
||||
|
||||
|
||||
/************************************************************************************//**
|
||||
** \brief Search algorithm to match the desired baudrate to a possible bus
|
||||
** timing configuration.
|
||||
** \param baud The desired baudrate in kbps. Valid values are 10..1000.
|
||||
** \param prescaler Pointer to where the value for the prescaler will be stored.
|
||||
** \param tseg1 Pointer to where the value for TSEG2 will be stored.
|
||||
** \param tseg2 Pointer to where the value for TSEG2 will be stored.
|
||||
** \return 1 if the CAN bustiming register values were found, 0 otherwise.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *prescaler,
|
||||
unsigned char *tseg1, unsigned char *tseg2)
|
||||
{
|
||||
unsigned char cnt;
|
||||
|
||||
/* loop through all possible time quanta configurations to find a match */
|
||||
for (cnt=0; cnt < sizeof(canTiming)/sizeof(canTiming[0]); cnt++)
|
||||
{
|
||||
if (((BOOT_CPU_SYSTEM_SPEED_KHZ/4) % (baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1))) == 0)
|
||||
{
|
||||
/* compute the prescaler that goes with this TQ configuration */
|
||||
*prescaler = (BOOT_CPU_SYSTEM_SPEED_KHZ/4)/(baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1));
|
||||
|
||||
/* make sure the prescaler is valid */
|
||||
if ( (*prescaler > 0) && (*prescaler <= 1024) )
|
||||
{
|
||||
/* store the bustiming configuration */
|
||||
*tseg1 = canTiming[cnt].tseg1;
|
||||
*tseg2 = canTiming[cnt].tseg2;
|
||||
/* found a good bus timing configuration */
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* could not find a good bus timing configuration */
|
||||
return 0;
|
||||
} /*** end of CanGetSpeedConfig ***/
|
||||
|
||||
|
||||
/************************************************************************************//**
|
||||
** \brief Initializes the CAN communication interface.
|
||||
** \return none.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static void BootComCanInit(void)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
CAN_InitTypeDef CAN_InitStructure;
|
||||
CAN_FilterInitTypeDef CAN_FilterInitStructure;
|
||||
unsigned short prescaler;
|
||||
unsigned char tseg1, tseg2;
|
||||
|
||||
/* enable clocks for CAN1 transmitter and receiver pins */
|
||||
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
|
||||
/* select alternate function for the CAN2 pins */
|
||||
GPIO_PinAFConfig(GPIOB, GPIO_PinSource8, GPIO_AF_CAN1);
|
||||
GPIO_PinAFConfig(GPIOB, GPIO_PinSource9, GPIO_AF_CAN1);
|
||||
/* configure CAN1 RX and TX pins */
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||
GPIO_Init(GPIOB, &GPIO_InitStructure);
|
||||
/* enable CAN clock */
|
||||
RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);
|
||||
/* CAN register init */
|
||||
CAN_DeInit(CAN1);
|
||||
CAN_StructInit(&CAN_InitStructure);
|
||||
/* obtain the bittiming configuration for this baudrate */
|
||||
CanGetSpeedConfig(BOOT_COM_CAN_BAUDRATE/1000, &prescaler, &tseg1, &tseg2);
|
||||
/* CAN controller init */
|
||||
CAN_InitStructure.CAN_TTCM = DISABLE;
|
||||
CAN_InitStructure.CAN_ABOM = DISABLE;
|
||||
CAN_InitStructure.CAN_AWUM = DISABLE;
|
||||
CAN_InitStructure.CAN_NART = DISABLE;
|
||||
CAN_InitStructure.CAN_RFLM = DISABLE;
|
||||
CAN_InitStructure.CAN_TXFP = DISABLE;
|
||||
CAN_InitStructure.CAN_Mode = CAN_Mode_Normal;
|
||||
/* CAN Baudrate init */
|
||||
CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;
|
||||
CAN_InitStructure.CAN_BS1 = tseg1 - 1;
|
||||
CAN_InitStructure.CAN_BS2 = tseg2 - 1;
|
||||
CAN_InitStructure.CAN_Prescaler = prescaler;
|
||||
CAN_Init(CAN1, &CAN_InitStructure);
|
||||
/* CAN filter init - receive all messages */
|
||||
CAN_FilterInitStructure.CAN_FilterNumber = 0;
|
||||
CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;
|
||||
CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;
|
||||
CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000;
|
||||
CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000;
|
||||
CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000;
|
||||
CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000;
|
||||
CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0;
|
||||
CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;
|
||||
CAN_FilterInit(&CAN_FilterInitStructure);
|
||||
} /*** end of BootComCanInit ***/
|
||||
|
||||
|
||||
/************************************************************************************//**
|
||||
** \brief Receives the CONNECT request from the host, which indicates that the
|
||||
** bootloader should be activated and, if so, activates it.
|
||||
** \return none.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static void BootComCanCheckActivationRequest(void)
|
||||
{
|
||||
CanRxMsg RxMessage;
|
||||
|
||||
/* check if a new message was received */
|
||||
if (CAN_MessagePending(CAN1, CAN_FIFO0) > 0)
|
||||
{
|
||||
/* receive the message */
|
||||
CAN_Receive(CAN1, CAN_FIFO0, &RxMessage);
|
||||
if (RxMessage.StdId == BOOT_COM_CAN_RX_MSG_ID)
|
||||
{
|
||||
/* check if this was an XCP CONNECT command */
|
||||
if ((RxMessage.Data[0] == 0xff) && (RxMessage.Data[1] == 0x00))
|
||||
{
|
||||
/* connection request received so start the bootloader */
|
||||
BootActivate();
|
||||
}
|
||||
}
|
||||
}
|
||||
} /*** end of BootComCanCheckActivationRequest ***/
|
||||
#endif /* BOOT_COM_CAN_ENABLE > 0 */
|
||||
|
||||
|
||||
/*********************************** end of boot.c *************************************/
|
||||
|
|
|
@ -807,7 +807,7 @@
|
|||
|
||||
1469192680 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\startup_stm32f2xx.s
|
||||
|
||||
1469278605 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\prog\boot.c
|
||||
1469291235 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\prog\boot.c
|
||||
"header.h"
|
||||
|
||||
1469272998 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\prog\header.h
|
||||
|
@ -818,7 +818,7 @@
|
|||
"led.h"
|
||||
"timer.h"
|
||||
|
||||
1469285352 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\blt_conf.h
|
||||
1469290552 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\blt_conf.h
|
||||
|
||||
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\prog\lib\stm32f2xx.h
|
||||
"core_cm3.h"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<ActiveTarget name="Debug" />
|
||||
<File name="..\boot.c" open="0" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="4350" topLine="87" />
|
||||
<Cursor1 position="15257" topLine="291" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\header.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
|
@ -28,7 +28,7 @@
|
|||
</File>
|
||||
<File name="..\main.c" open="1" top="1" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="2662" topLine="22" />
|
||||
<Cursor1 position="2435" topLine="22" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\startup_stm32f2xx.S" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
|
|
|
@ -0,0 +1,384 @@
|
|||
/************************************************************************************//**
|
||||
* \file Source\ARMCM3_STM32F2\can.c
|
||||
* \brief Bootloader CAN communication interface source file.
|
||||
* \ingroup Target_ARMCM3_STM32F2
|
||||
* \internal
|
||||
*----------------------------------------------------------------------------------------
|
||||
* C O P Y R I G H T
|
||||
*----------------------------------------------------------------------------------------
|
||||
* Copyright (c) 2016 by Feaser http://www.feaser.com All rights reserved
|
||||
*
|
||||
*----------------------------------------------------------------------------------------
|
||||
* L I C E N S E
|
||||
*----------------------------------------------------------------------------------------
|
||||
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation, either version 3 of the License, or (at your option) any later
|
||||
* version.
|
||||
*
|
||||
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You have received a copy of the GNU General Public License along with OpenBLT. It
|
||||
* should be located in ".\Doc\license.html". If not, contact Feaser to obtain a copy.
|
||||
*
|
||||
* \endinternal
|
||||
****************************************************************************************/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Include files
|
||||
****************************************************************************************/
|
||||
#include "boot.h" /* bootloader generic header */
|
||||
|
||||
|
||||
#if (BOOT_COM_CAN_ENABLE > 0)
|
||||
/****************************************************************************************
|
||||
* Type definitions
|
||||
****************************************************************************************/
|
||||
/** \brief CAN transmission mailbox layout. */
|
||||
typedef struct
|
||||
{
|
||||
volatile blt_int32u TIR;
|
||||
volatile blt_int32u TDTR;
|
||||
volatile blt_int32u TDLR;
|
||||
volatile blt_int32u TDHR;
|
||||
} tCanTxMailBox;
|
||||
|
||||
/** \brief CAN reception FIFO mailbox layout. */
|
||||
typedef struct
|
||||
{
|
||||
volatile blt_int32u RIR;
|
||||
volatile blt_int32u RDTR;
|
||||
volatile blt_int32u RDLR;
|
||||
volatile blt_int32u RDHR;
|
||||
} tCanRxFIFOMailBox;
|
||||
|
||||
/** \brief CAN filter register layout. */
|
||||
typedef struct
|
||||
{
|
||||
volatile blt_int32u FR1;
|
||||
volatile blt_int32u FR2;
|
||||
} tCanFilter;
|
||||
|
||||
/** \brief CAN controller register layout. */
|
||||
typedef struct
|
||||
{
|
||||
volatile blt_int32u MCR;
|
||||
volatile blt_int32u MSR;
|
||||
volatile blt_int32u TSR;
|
||||
volatile blt_int32u RF0R;
|
||||
volatile blt_int32u RF1R;
|
||||
volatile blt_int32u IER;
|
||||
volatile blt_int32u ESR;
|
||||
volatile blt_int32u BTR;
|
||||
blt_int32u RESERVED0[88];
|
||||
tCanTxMailBox sTxMailBox[3];
|
||||
tCanRxFIFOMailBox sFIFOMailBox[2];
|
||||
blt_int32u RESERVED1[12];
|
||||
volatile blt_int32u FMR;
|
||||
volatile blt_int32u FM1R;
|
||||
blt_int32u RESERVED2;
|
||||
volatile blt_int32u FS1R;
|
||||
blt_int32u RESERVED3;
|
||||
volatile blt_int32u FFA1R;
|
||||
blt_int32u RESERVED4;
|
||||
volatile blt_int32u FA1R;
|
||||
blt_int32u RESERVED5[8];
|
||||
tCanFilter sFilterRegister[28];
|
||||
} tCanRegs;
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Macro definitions
|
||||
****************************************************************************************/
|
||||
/** \brief Reset request bit. */
|
||||
#define CAN_BIT_RESET ((blt_int32u)0x00008000)
|
||||
/** \brief Initialization request bit. */
|
||||
#define CAN_BIT_INRQ ((blt_int32u)0x00000001)
|
||||
/** \brief Initialization acknowledge bit. */
|
||||
#define CAN_BIT_INAK ((blt_int32u)0x00000001)
|
||||
/** \brief Sleep mode request bit. */
|
||||
#define CAN_BIT_SLEEP ((blt_int32u)0x00000002)
|
||||
/** \brief Filter 0 selection bit. */
|
||||
#define CAN_BIT_FILTER0 ((blt_int32u)0x00000001)
|
||||
/** \brief Filter 14 selection bit. */
|
||||
#define CAN_BIT_FILTER14 ((blt_int32u)0x00004000)
|
||||
/** \brief Filter init mode bit. */
|
||||
#define CAN_BIT_FINIT ((blt_int32u)0x00000001)
|
||||
/** \brief Transmit mailbox 0 empty bit. */
|
||||
#define CAN_BIT_TME0 ((blt_int32u)0x04000000)
|
||||
/** \brief Transmit mailbox request bit. */
|
||||
#define CAN_BIT_TXRQ ((blt_int32u)0x00000001)
|
||||
/** \brief Release FIFO 0 mailbox bit. */
|
||||
#define CAN_BIT_RFOM0 ((blt_int32u)0x00000020)
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Register definitions
|
||||
****************************************************************************************/
|
||||
#if (BOOT_COM_CAN_CHANNEL_INDEX == 0)
|
||||
/** \brief Macro for accessing CAN1 controller registers. */
|
||||
#define CANx ((tCanRegs *) (blt_int32u)0x40006400)
|
||||
#else
|
||||
/** \brief Macro for accessing CAN2 controller registers. */
|
||||
#define CANx ((tCanRegs *) (blt_int32u)0x40006800)
|
||||
#endif
|
||||
/** \brief Macro for accessing CAN1 controller registers. */
|
||||
#define CAN1 ((tCanRegs *) (blt_int32u)0x40006400)
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Type definitions
|
||||
****************************************************************************************/
|
||||
/** \brief Structure type for grouping CAN bus timing related information. */
|
||||
typedef struct t_can_bus_timing
|
||||
{
|
||||
blt_int8u tseg1; /**< CAN time segment 1 */
|
||||
blt_int8u tseg2; /**< CAN time segment 2 */
|
||||
} tCanBusTiming;
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Local constant declarations
|
||||
****************************************************************************************/
|
||||
/** \brief CAN bittiming table for dynamically calculating the bittiming settings.
|
||||
* \details According to the CAN protocol 1 bit-time can be made up of between 8..25
|
||||
* time quanta (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC
|
||||
* always being 1. The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) *
|
||||
* 100%. This array contains possible and valid time quanta configurations with
|
||||
* a sample point between 68..78%.
|
||||
*/
|
||||
static const tCanBusTiming canTiming[] =
|
||||
{
|
||||
/* TQ | TSEG1 | TSEG2 | SP */
|
||||
/* ------------------------- */
|
||||
{ 5, 2 }, /* 8 | 5 | 2 | 75% */
|
||||
{ 6, 2 }, /* 9 | 6 | 2 | 78% */
|
||||
{ 6, 3 }, /* 10 | 6 | 3 | 70% */
|
||||
{ 7, 3 }, /* 11 | 7 | 3 | 73% */
|
||||
{ 8, 3 }, /* 12 | 8 | 3 | 75% */
|
||||
{ 9, 3 }, /* 13 | 9 | 3 | 77% */
|
||||
{ 9, 4 }, /* 14 | 9 | 4 | 71% */
|
||||
{ 10, 4 }, /* 15 | 10 | 4 | 73% */
|
||||
{ 11, 4 }, /* 16 | 11 | 4 | 75% */
|
||||
{ 12, 4 }, /* 17 | 12 | 4 | 76% */
|
||||
{ 12, 5 }, /* 18 | 12 | 5 | 72% */
|
||||
{ 13, 5 }, /* 19 | 13 | 5 | 74% */
|
||||
{ 14, 5 }, /* 20 | 14 | 5 | 75% */
|
||||
{ 15, 5 }, /* 21 | 15 | 5 | 76% */
|
||||
{ 15, 6 }, /* 22 | 15 | 6 | 73% */
|
||||
{ 16, 6 }, /* 23 | 16 | 6 | 74% */
|
||||
{ 16, 7 }, /* 24 | 16 | 7 | 71% */
|
||||
{ 16, 8 } /* 25 | 16 | 8 | 68% */
|
||||
};
|
||||
|
||||
|
||||
/************************************************************************************//**
|
||||
** \brief Search algorithm to match the desired baudrate to a possible bus
|
||||
** timing configuration.
|
||||
** \param baud The desired baudrate in kbps. Valid values are 10..1000.
|
||||
** \param prescaler Pointer to where the value for the prescaler will be stored.
|
||||
** \param tseg1 Pointer to where the value for TSEG2 will be stored.
|
||||
** \param tseg2 Pointer to where the value for TSEG2 will be stored.
|
||||
** \return BLT_TRUE if the CAN bustiming register values were found, BLT_FALSE
|
||||
** otherwise.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static blt_bool CanGetSpeedConfig(blt_int16u baud, blt_int16u *prescaler,
|
||||
blt_int8u *tseg1, blt_int8u *tseg2)
|
||||
{
|
||||
blt_int8u cnt;
|
||||
|
||||
/* loop through all possible time quanta configurations to find a match */
|
||||
for (cnt=0; cnt < sizeof(canTiming)/sizeof(canTiming[0]); cnt++)
|
||||
{
|
||||
if (((BOOT_CPU_SYSTEM_SPEED_KHZ/4) % (baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1))) == 0)
|
||||
{
|
||||
/* compute the prescaler that goes with this TQ configuration */
|
||||
*prescaler = (BOOT_CPU_SYSTEM_SPEED_KHZ/4)/(baud*(canTiming[cnt].tseg1+canTiming[cnt].tseg2+1));
|
||||
|
||||
/* make sure the prescaler is valid */
|
||||
if ((*prescaler > 0) && (*prescaler <= 1024))
|
||||
{
|
||||
/* store the bustiming configuration */
|
||||
*tseg1 = canTiming[cnt].tseg1;
|
||||
*tseg2 = canTiming[cnt].tseg2;
|
||||
/* found a good bus timing configuration */
|
||||
return BLT_TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* could not find a good bus timing configuration */
|
||||
return BLT_FALSE;
|
||||
} /*** end of CanGetSpeedConfig ***/
|
||||
|
||||
|
||||
/************************************************************************************//**
|
||||
** \brief Initializes the CAN controller and synchronizes it to the CAN bus.
|
||||
** \return none.
|
||||
**
|
||||
****************************************************************************************/
|
||||
void CanInit(void)
|
||||
{
|
||||
blt_int16u prescaler=0;
|
||||
blt_int8u tseg1=0, tseg2=0;
|
||||
blt_bool result;
|
||||
|
||||
/* the current implementation supports CAN1 and 2. throw an assertion error in case a
|
||||
* different CAN channel is configured.
|
||||
*/
|
||||
ASSERT_CT((BOOT_COM_CAN_CHANNEL_INDEX == 0 || BOOT_COM_CAN_CHANNEL_INDEX == 1));
|
||||
|
||||
/* obtain bittiming configuration information */
|
||||
result = CanGetSpeedConfig(BOOT_COM_CAN_BAUDRATE/1000, &prescaler, &tseg1, &tseg2);
|
||||
ASSERT_RT(result == BLT_TRUE);
|
||||
/* disable all can interrupt. this driver works in polling mode */
|
||||
CANx->IER = (blt_int32u)0;
|
||||
/* set request to reset the can controller */
|
||||
CANx->MCR |= CAN_BIT_RESET ;
|
||||
/* wait for acknowledge that the can controller was reset */
|
||||
while ((CANx->MCR & CAN_BIT_RESET) != 0)
|
||||
{
|
||||
/* keep the watchdog happy */
|
||||
CopService();
|
||||
}
|
||||
/* exit from sleep mode, which is the default mode after reset */
|
||||
CANx->MCR &= ~CAN_BIT_SLEEP;
|
||||
/* set request to enter initialisation mode */
|
||||
CANx->MCR |= CAN_BIT_INRQ ;
|
||||
/* wait for acknowledge that initialization mode was entered */
|
||||
while ((CANx->MSR & CAN_BIT_INAK) == 0)
|
||||
{
|
||||
/* keep the watchdog happy */
|
||||
CopService();
|
||||
}
|
||||
/* configure the bittming */
|
||||
CANx->BTR = (blt_int32u)((blt_int32u)(tseg1 - 1) << 16) | \
|
||||
(blt_int32u)((blt_int32u)(tseg2 - 1) << 20) | \
|
||||
(blt_int32u)(prescaler - 1);
|
||||
/* set request to leave initialisation mode */
|
||||
CANx->MCR &= ~CAN_BIT_INRQ;
|
||||
/* wait for acknowledge that initialization mode was exited */
|
||||
while ((CANx->MSR & CAN_BIT_INAK) != 0)
|
||||
{
|
||||
/* keep the watchdog happy */
|
||||
CopService();
|
||||
}
|
||||
|
||||
#if (BOOT_COM_CAN_CHANNEL_INDEX == 0)
|
||||
/* enter initialisation mode for the acceptance filter */
|
||||
CAN1->FMR |= CAN_BIT_FINIT;
|
||||
/* deactivate filter 0 */
|
||||
CAN1->FA1R &= ~CAN_BIT_FILTER0;
|
||||
/* 32-bit scale for the filter */
|
||||
CAN1->FS1R |= CAN_BIT_FILTER0;
|
||||
/* open up the acceptance filter to receive all messages */
|
||||
CAN1->sFilterRegister[0].FR1 = 0;
|
||||
CAN1->sFilterRegister[0].FR2 = 0;
|
||||
/* select id/mask mode for the filter */
|
||||
CAN1->FM1R &= ~CAN_BIT_FILTER0;
|
||||
/* FIFO 0 assignation for the filter */
|
||||
CAN1->FFA1R &= ~CAN_BIT_FILTER0;
|
||||
/* filter activation */
|
||||
CAN1->FA1R |= CAN_BIT_FILTER0;
|
||||
/* leave initialisation mode for the acceptance filter */
|
||||
CAN1->FMR &= ~CAN_BIT_FINIT;
|
||||
#else
|
||||
/* enter initialisation mode for the acceptance filter */
|
||||
CAN1->FMR |= CAN_BIT_FINIT;
|
||||
/* deactivate filter 14 */
|
||||
CAN1->FA1R &= ~CAN_BIT_FILTER14;
|
||||
/* 32-bit scale for the filter */
|
||||
CAN1->FS1R |= CAN_BIT_FILTER14;
|
||||
/* open up the acceptance filter to receive all messages */
|
||||
CAN1->sFilterRegister[14].FR1 = 0;
|
||||
CAN1->sFilterRegister[14].FR2 = 0;
|
||||
/* select id/mask mode for the filter */
|
||||
CAN1->FM1R &= ~CAN_BIT_FILTER14;
|
||||
/* FIFO 0 assignation for the filter */
|
||||
CAN1->FFA1R &= ~CAN_BIT_FILTER14;
|
||||
/* filter activation */
|
||||
CAN1->FA1R |= CAN_BIT_FILTER14;
|
||||
/* leave initialisation mode for the acceptance filter */
|
||||
CAN1->FMR &= ~CAN_BIT_FINIT;
|
||||
#endif
|
||||
} /*** end of CanInit ***/
|
||||
|
||||
|
||||
/************************************************************************************//**
|
||||
** \brief Transmits a packet formatted for the communication interface.
|
||||
** \param data Pointer to byte array with data that it to be transmitted.
|
||||
** \param len Number of bytes that are to be transmitted.
|
||||
** \return none.
|
||||
**
|
||||
****************************************************************************************/
|
||||
void CanTransmitPacket(blt_int8u *data, blt_int8u len)
|
||||
{
|
||||
/* make sure that transmit mailbox 0 is available */
|
||||
ASSERT_RT((CANx->TSR&CAN_BIT_TME0) == CAN_BIT_TME0);
|
||||
/* store the 11-bit message identifier */
|
||||
CANx->sTxMailBox[0].TIR &= CAN_BIT_TXRQ;
|
||||
CANx->sTxMailBox[0].TIR |= ((blt_int32u)BOOT_COM_CAN_TX_MSG_ID << 21);
|
||||
/* store the message date length code (DLC) */
|
||||
CANx->sTxMailBox[0].TDTR = len;
|
||||
/* store the message data bytes */
|
||||
CANx->sTxMailBox[0].TDLR = (((blt_int32u)data[3] << 24) | \
|
||||
((blt_int32u)data[2] << 16) | \
|
||||
((blt_int32u)data[1] << 8) | \
|
||||
((blt_int32u)data[0]));
|
||||
CANx->sTxMailBox[0].TDHR = (((blt_int32u)data[7] << 24) | \
|
||||
((blt_int32u)data[6] << 16) | \
|
||||
((blt_int32u)data[5] << 8) | \
|
||||
((blt_int32u)data[4]));
|
||||
/* request the start of message transmission */
|
||||
CANx->sTxMailBox[0].TIR |= CAN_BIT_TXRQ;
|
||||
/* wait for transmit completion */
|
||||
while ((CANx->TSR&CAN_BIT_TME0) == 0)
|
||||
{
|
||||
/* keep the watchdog happy */
|
||||
CopService();
|
||||
}
|
||||
} /*** end of CanTransmitPacket ***/
|
||||
|
||||
|
||||
/************************************************************************************//**
|
||||
** \brief Receives a communication interface packet if one is present.
|
||||
** \param data Pointer to byte array where the data is to be stored.
|
||||
** \return BLT_TRUE is a packet was received, BLT_FALSE otherwise.
|
||||
**
|
||||
****************************************************************************************/
|
||||
blt_bool CanReceivePacket(blt_int8u *data)
|
||||
{
|
||||
blt_int32u rxMsgId;
|
||||
blt_bool result = BLT_FALSE;
|
||||
|
||||
/* check if a new message was received */
|
||||
if ((CANx->RF0R&(blt_int32u)0x00000003) > 0)
|
||||
{
|
||||
/* read out the message identifier */
|
||||
rxMsgId = (blt_int32u)0x000007FF & (CANx->sFIFOMailBox[0].RIR >> 21);
|
||||
/* is this the packet identifier */
|
||||
if (rxMsgId == BOOT_COM_CAN_RX_MSG_ID)
|
||||
{
|
||||
result = BLT_TRUE;
|
||||
/* store the received packet data */
|
||||
data[0] = (blt_int8u)0xFF & CANx->sFIFOMailBox[0].RDLR;
|
||||
data[1] = (blt_int8u)0xFF & (CANx->sFIFOMailBox[0].RDLR >> 8);
|
||||
data[2] = (blt_int8u)0xFF & (CANx->sFIFOMailBox[0].RDLR >> 16);
|
||||
data[3] = (blt_int8u)0xFF & (CANx->sFIFOMailBox[0].RDLR >> 24);
|
||||
data[4] = (blt_int8u)0xFF & CANx->sFIFOMailBox[0].RDHR;
|
||||
data[5] = (blt_int8u)0xFF & (CANx->sFIFOMailBox[0].RDHR >> 8);
|
||||
data[6] = (blt_int8u)0xFF & (CANx->sFIFOMailBox[0].RDHR >> 16);
|
||||
data[7] = (blt_int8u)0xFF & (CANx->sFIFOMailBox[0].RDHR >> 24);
|
||||
}
|
||||
/* release FIFO0 */
|
||||
CANx->RF0R |= CAN_BIT_RFOM0;
|
||||
}
|
||||
return result;
|
||||
} /*** end of CanReceivePacket ***/
|
||||
#endif /* BOOT_COM_CAN_ENABLE > 0 */
|
||||
|
||||
|
||||
/*********************************** end of can.c **************************************/
|
Loading…
Reference in New Issue