Просмотр исходного кода

DMA+空闲-UI.bin-完整数据接收

bootloader
ws-Huang 10 месяцев назад
Родитель
Сommit
e6d0e06e21
92 измененных файлов: 1792 добавлений и 1482 удалений
  1. +69
    -42
      LT7689.uvguix.14874
  2. +446
    -485
      Listings/LT7689.map
  3. Двоичные данные
      OBJ/bin/MCU_Code.bin
  4. Двоичные данные
      OBJ/obj_debug_efm/LT7689.axf
  5. +231
    -3
      OBJ/obj_debug_efm/LT7689.build_log.htm
  6. +552
    -615
      OBJ/obj_debug_efm/LT7689.hex
  7. +113
    -243
      OBJ/obj_debug_efm/LT7689.htm
  8. +19
    -12
      OBJ/obj_debug_efm/LT7689_LT7689.dep
  9. Двоичные данные
      OBJ/obj_debug_efm/adc_dma.o
  10. Двоичные данные
      OBJ/obj_debug_efm/adc_drv.o
  11. Двоичные данные
      OBJ/obj_debug_efm/alg_drv.o
  12. Двоичные данные
      OBJ/obj_debug_efm/bitstream.o
  13. Двоичные данные
      OBJ/obj_debug_efm/cache_drv.o
  14. Двоичные данные
      OBJ/obj_debug_efm/ccm_drv.o
  15. Двоичные данные
      OBJ/obj_debug_efm/common.o
  16. Двоичные данные
      OBJ/obj_debug_efm/cpm_drv.o
  17. Двоичные данные
      OBJ/obj_debug_efm/crc.o
  18. Двоичные данные
      OBJ/obj_debug_efm/crc_drv.o
  19. Двоичные данные
      OBJ/obj_debug_efm/dac_drv.o
  20. Двоичные данные
      OBJ/obj_debug_efm/data.o
  21. Двоичные данные
      OBJ/obj_debug_efm/delay.o
  22. Двоичные данные
      OBJ/obj_debug_efm/diskio.o
  23. Двоичные данные
      OBJ/obj_debug_efm/dma.o
  24. Двоичные данные
      OBJ/obj_debug_efm/dmac_drv.o
  25. Двоичные данные
      OBJ/obj_debug_efm/edma_drv.o
  26. Двоичные данные
      OBJ/obj_debug_efm/eflash_drv.o
  27. Двоичные данные
      OBJ/obj_debug_efm/eport_drv.o
  28. Двоичные данные
      OBJ/obj_debug_efm/ff.o
  29. Двоичные данные
      OBJ/obj_debug_efm/ffunicode.o
  30. Двоичные данные
      OBJ/obj_debug_efm/flash.crf
  31. +2
    -0
      OBJ/obj_debug_efm/flash.d
  32. Двоичные данные
      OBJ/obj_debug_efm/flash.o
  33. Двоичные данные
      OBJ/obj_debug_efm/i2c_drv.o
  34. Двоичные данные
      OBJ/obj_debug_efm/if_port.o
  35. Двоичные данные
      OBJ/obj_debug_efm/iic.o
  36. Двоичные данные
      OBJ/obj_debug_efm/ioctrl_drv.o
  37. Двоичные данные
      OBJ/obj_debug_efm/lt768.o
  38. Двоичные данные
      OBJ/obj_debug_efm/lt768_lib.o
  39. Двоичные данные
      OBJ/obj_debug_efm/main.crf
  40. Двоичные данные
      OBJ/obj_debug_efm/main.o
  41. Двоичные данные
      OBJ/obj_debug_efm/mask.o
  42. Двоичные данные
      OBJ/obj_debug_efm/mmask.o
  43. Двоичные данные
      OBJ/obj_debug_efm/mqrspec.o
  44. Двоичные данные
      OBJ/obj_debug_efm/ota.crf
  45. +3
    -0
      OBJ/obj_debug_efm/ota.d
  46. Двоичные данные
      OBJ/obj_debug_efm/ota.o
  47. Двоичные данные
      OBJ/obj_debug_efm/pci_drv.o
  48. Двоичные данные
      OBJ/obj_debug_efm/pit.o
  49. Двоичные данные
      OBJ/obj_debug_efm/pit32_drv.o
  50. Двоичные данные
      OBJ/obj_debug_efm/pwm_drv.o
  51. Двоичные данные
      OBJ/obj_debug_efm/qr_encode.o
  52. Двоичные данные
      OBJ/obj_debug_efm/qrencode.o
  53. Двоичные данные
      OBJ/obj_debug_efm/qrinput.o
  54. Двоичные данные
      OBJ/obj_debug_efm/qrspec.o
  55. Двоичные данные
      OBJ/obj_debug_efm/reset_drv.o
  56. Двоичные данные
      OBJ/obj_debug_efm/rscode.o
  57. Двоичные данные
      OBJ/obj_debug_efm/rtc_drv.o
  58. Двоичные данные
      OBJ/obj_debug_efm/sincostable.o
  59. Двоичные данные
      OBJ/obj_debug_efm/spi_drv.o
  60. Двоичные данные
      OBJ/obj_debug_efm/spi_sd.o
  61. Двоичные данные
      OBJ/obj_debug_efm/split.o
  62. Двоичные данные
      OBJ/obj_debug_efm/ssi_drv.o
  63. Двоичные данные
      OBJ/obj_debug_efm/sys.o
  64. Двоичные данные
      OBJ/obj_debug_efm/system_armcm4.o
  65. Двоичные данные
      OBJ/obj_debug_efm/systick_drv.o
  66. Двоичные данные
      OBJ/obj_debug_efm/tc_drv.o
  67. Двоичные данные
      OBJ/obj_debug_efm/tp_drv.o
  68. Двоичные данные
      OBJ/obj_debug_efm/trng_drv.o
  69. Двоичные данные
      OBJ/obj_debug_efm/uart.o
  70. Двоичные данные
      OBJ/obj_debug_efm/uart_drv.o
  71. Двоичные данные
      OBJ/obj_debug_efm/uart_vcom.crf
  72. Двоичные данные
      OBJ/obj_debug_efm/uart_vcom.o
  73. Двоичные данные
      OBJ/obj_debug_efm/updata.crf
  74. +2
    -0
      OBJ/obj_debug_efm/updata.d
  75. Двоичные данные
      OBJ/obj_debug_efm/updata.o
  76. Двоичные данные
      OBJ/obj_debug_efm/usb_ccid_config.o
  77. Двоичные данные
      OBJ/obj_debug_efm/usb_ccid_contril.o
  78. Двоичные данные
      OBJ/obj_debug_efm/usb_cdc_config.o
  79. Двоичные данные
      OBJ/obj_debug_efm/usb_cdc_control.o
  80. Двоичные данные
      OBJ/obj_debug_efm/usb_drv.o
  81. Двоичные данные
      OBJ/obj_debug_efm/usb_hid_control.o
  82. Двоичные данные
      OBJ/obj_debug_efm/usb_hid_isr.o
  83. Двоичные данные
      OBJ/obj_debug_efm/usb_ms_config.o
  84. Двоичные данные
      OBJ/obj_debug_efm/usb_ms_control.o
  85. Двоичные данные
      OBJ/obj_debug_efm/usbdev_control.o
  86. Двоичные данные
      OBJ/obj_debug_efm/usbdev_isr.o
  87. Двоичные данные
      OBJ/obj_debug_efm/wdt_drv.o
  88. +44
    -16
      User/Flash.c
  89. +4
    -0
      User/OTA_H.h
  90. +1
    -0
      User/Updata.c
  91. +218
    -22
      User/main.c
  92. +88
    -44
      User/ota.c

+ 69
- 42
LT7689.uvguix.14874
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 446
- 485
Listings/LT7689.map
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


Двоичные данные
OBJ/bin/MCU_Code.bin Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/LT7689.axf Просмотреть файл


+ 231
- 3
OBJ/obj_debug_efm/LT7689.build_log.htm Просмотреть файл

@ -26,9 +26,237 @@ Project File Date: 04/29/2025
<h2>Output:</h2>
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\keil5Mdk\Keil5_MDK\ARM\ARMCC\Bin'
Build target 'LT7689'
Rebuild target 'LT7689'
compiling ffunicode.c...
compiling CRC.c...
compiling diskio.c...
User\diskio.c(109): warning: #188-D: enumerated type mixed with another type
DRESULT res = 0;
User\diskio.c(117): warning: #188-D: enumerated type mixed with another type
res=SD_ReadMultiBlock(buff,sector,count);
User\diskio.c(122): warning: #188-D: enumerated type mixed with another type
res=SD_ReadMultiBlock(buff,sector,count);
User\diskio.c(127): warning: #188-D: enumerated type mixed with another type
res = 1;
User\diskio.c(170): warning: #188-D: enumerated type mixed with another type
DRESULT res = 0;
User\diskio.c(179): warning: #188-D: enumerated type mixed with another type
res=SD_WriteMultiBlock((u8*)buff,sector,count);
User\diskio.c(183): warning: #188-D: enumerated type mixed with another type
res=SD_WriteMultiBlock((u8*)buff,sector,count);
User\diskio.c(188): warning: #188-D: enumerated type mixed with another type
res = 1;
User\diskio.c: 8 warnings, 0 errors
compiling main.c...
User\main.c(239): warning: #940-D: missing return statement at end of non-void function "fputc"
}
User\main.c(264): warning: #550-D: variable "clear_idle_flag" was set but never used
uint8_t clear_idle_flag;
User\main.c(368): warning: #177-D: variable "i" was declared but never referenced
unsigned short i = 0;
User\main.c(66): warning: #177-D: function "Printf_Version" was declared but never referenced
static void Printf_Version(void)
User\main.c: 4 warnings, 0 errors
compiling Flash.c...
User\Flash.c(231): warning: #177-D: variable "i" was declared but never referenced
UINT16 i;
User\Flash.c(270): warning: #177-D: variable "i" was declared but never referenced
UINT16 i;
User\Flash.c(552): warning: #177-D: variable "i" was declared but never referenced
uint16_t i;
User\Flash.c(657): warning: #177-D: variable "i" was declared but never referenced
uint16_t i;
User\Flash.c: 4 warnings, 0 errors
compiling Updata.c...
User\Updata.c(368): warning: #111-D: statement is unreachable
return -3;
User\Updata.c(589): warning: #940-D: missing return statement at end of non-void function "W25N01GV_BBM"
}
User\Updata.c(605): warning: #177-D: variable "fs" was declared but never referenced
FATFS fs;
User\Updata.c: 3 warnings, 0 errors
compiling ff.c...
User\ff.c(3684): warning: #223-D: function "printf" declared implicitly
printf("f_mount half!!!!\r\n");
User\ff.c(3713): warning: #111-D: statement is unreachable
printf("f_mount half+++66666666!!!!\r\n");
User\ff.c: 2 warnings, 0 errors
compiling SPI_SD.c...
compiling common.c...
compiling system_ARMCM4.c...
ccore\system_ARMCM4.c(103): warning: #223-D: function "Set_POR_Reset" declared implicitly
Set_POR_Reset();
ccore\system_ARMCM4.c(109): warning: #223-D: function "Set_POR_Reset" declared implicitly
Set_POR_Reset();
ccore\system_ARMCM4.c(115): warning: #223-D: function "Set_POR_Reset" declared implicitly
Set_POR_Reset();
ccore\system_ARMCM4.c(121): warning: #223-D: function "Set_POR_Reset" declared implicitly
Set_POR_Reset();
ccore\system_ARMCM4.c(127): warning: #223-D: function "Set_POR_Reset" declared implicitly
Set_POR_Reset();
ccore\system_ARMCM4.c(133): warning: #223-D: function "Set_POR_Reset" declared implicitly
Set_POR_Reset();
ccore\system_ARMCM4.c(139): warning: #223-D: function "Set_POR_Reset" declared implicitly
Set_POR_Reset();
ccore\system_ARMCM4.c(145): warning: #223-D: function "Set_POR_Reset" declared implicitly
Set_POR_Reset();
ccore\system_ARMCM4.c: 8 warnings, 0 errors
compiling ota.c...
.\User\bsp.h(946): warning: #1-D: last line of file ends without a newline
#endif
User\bsp_user.h(13): warning: #1-D: last line of file ends without a newline
#endif
.\Function\gbk.h(16): warning: #1-D: last line of file ends without a newline
#endif
User\bsp.h(946): warning: #1-D: last line of file ends without a newline
#endif
User\ota.c(63): warning: #177-D: variable "temp" was declared but never referenced
uint16_t temp = 0;
User\ota.c(215): warning: #550-D: variable "tmp" was set but never used
uint16_t tmp,ret;
User\ota.c(215): warning: #177-D: variable "ret" was declared but never referenced
uint16_t tmp,ret;
User\ota.c(216): warning: #550-D: variable "clear_idle_flag" was set but never used
uint8_t clear_idle_flag;
User\ota.c: 8 warnings, 0 errors
compiling LT768_Lib.c...
compiling sys.c...
compiling Uart_Vcom.c...
User\Uart_Vcom.c(331): warning: #177-D: variable "newBlock_Addr" was declared but never referenced
UINT32 newBlock,newBlock_Addr;
User\Uart_Vcom.c(630): warning: #223-D: function "DelayMS" declared implicitly
DelayMS(10);//DelayMS(8);
User\Uart_Vcom.c(1226): warning: #223-D: function "WDT_FeedDog" declared implicitly
WDT_FeedDog();
User\Uart_Vcom.c(1308): warning: #223-D: function "WDT_FeedDog" declared implicitly
WDT_FeedDog();
User\Uart_Vcom.c(1733): warning: #223-D: function "DelayMS" declared implicitly
DelayMS(250);//DelayMS(8);
User\Uart_Vcom.c: 5 warnings, 0 errors
assembling startup_ARMCM4.s...
compiling adc_dma.c...
compiling adc_drv.c...
compiling ccm_drv.c...
compiling cache_drv.c...
compiling crc_drv.c...
compiling cpm_drv.c...
compiling alg_drv.c...
compiling dac_drv.c...
compiling ioctrl_drv.c...
compiling edma_drv.c...
compiling dmac_drv.c...
compiling i2c_drv.c...
compiling eflash_drv.c...
compiling eport_drv.c...
compiling pci_drv.c...
compiling reset_drv.c...
compiling pit32_drv.c...
MCU_drv\drv\src\pit32_drv.c(28): warning: #177-D: function "PIT32_ISR" was declared but never referenced
static void PIT32_ISR(void)
MCU_drv\drv\src\pit32_drv.c: 1 warning, 0 errors
compiling pwm_drv.c...
compiling rtc_drv.c...
compiling spi_drv.c...
compiling ssi_drv.c...
compiling systick_drv.c...
compiling trng_drv.c...
compiling wdt_drv.c...
compiling tc_drv.c...
compiling usb_hid_isr.c...
compiling uart_drv.c...
MCU_drv\drv\src\uart_drv.c(37): warning: #177-D: function "UART_ISR" was declared but never referenced
static void UART_ISR(UART_TypeDef *UARTx, UartRecvBufStruct *UARTxRecvBufStruct)
MCU_drv\drv\src\uart_drv.c: 1 warning, 0 errors
compiling usb_hid_control.c...
.\User\bsp.h(946): warning: #1-D: last line of file ends without a newline
#endif
.\User\bsp_user.h(13): warning: #1-D: last line of file ends without a newline
#endif
.\Function\gbk.h(16): warning: #1-D: last line of file ends without a newline
#endif
.\User\bsp.h(946): warning: #1-D: last line of file ends without a newline
#endif
MCU_drv\drv\src\usb\usb_hid_control.c(627): warning: #550-D: variable "reNum" was set but never used
uint16_t reNum;
MCU_drv\drv\src\usb\usb_hid_control.c(628): warning: #177-D: variable "num" was declared but never referenced
uint16_t num = 0;
MCU_drv\drv\src\usb\usb_hid_control.c: 6 warnings, 0 errors
compiling usb_drv.c...
compiling usbdev_isr.c...
compiling usb_ms_config.c...
compiling usbdev_control.c...
compiling usb_ms_control.c...
compiling usb_cdc_control.c...
MCU_drv\drv\src\usb\usb_cdc_control.c(547): warning: #177-D: variable "i" was declared but never referenced
UINT32 i;
MCU_drv\drv\src\usb\usb_cdc_control.c(549): warning: #550-D: variable "recvLen" was set but never used
UINT16 recvLen = 0;
MCU_drv\drv\src\usb\usb_cdc_control.c(689): warning: #177-D: variable "i" was declared but never referenced
UINT16 uiRxCount = 0,i;
MCU_drv\drv\src\usb\usb_cdc_control.c: 3 warnings, 0 errors
compiling usb_cdc_config.c...
compiling usb_ccid_contril.c...
compiling usb_ccid_config.c...
compiling delay.c...
compiling uart.c...
compiling if_port.c...
Function_drv\if_port.c(51): warning: #550-D: variable "uint8_t" was set but never used
UINT8 uint8_t;
Function_drv\if_port.c: 1 warning, 0 errors
compiling dma.c...
compiling iic.c...
Function_drv\iic.c(27): warning: #177-D: variable "i" was declared but never referenced
uint8_t i;
Function_drv\iic.c(100): warning: #177-D: variable "j" was declared but never referenced
uint8_t i, j, ack;
Function_drv\iic.c(129): warning: #177-D: variable "j" was declared but never referenced
uint8_t i, j, u8Tmp;
Function_drv\iic.c(190): warning: #1-D: last line of file ends without a newline
}
Function_drv\iic.c(164): warning: #177-D: variable "crcVal" was declared but never referenced
uint32_t crcVal;
Function_drv\iic.c: 5 warnings, 0 errors
compiling pit.c...
.\User\bsp.h(946): warning: #1-D: last line of file ends without a newline
#endif
.\User\bsp_user.h(13): warning: #1-D: last line of file ends without a newline
#endif
.\Function\gbk.h(16): warning: #1-D: last line of file ends without a newline
#endif
.\User\bsp.h(946): warning: #1-D: last line of file ends without a newline
#endif
Function_drv\pit.c(913): warning: #1-D: last line of file ends without a newline
}
Function_drv\pit.c: 5 warnings, 0 errors
compiling tp_drv.c...
Function_drv\tp_drv.h(59): warning: #1-D: last line of file ends without a newline
#endif
Function_drv\tp_drv.c(153): warning: #177-D: variable "Product_ID" was declared but never referenced
unsigned int Product_ID;
Function_drv\tp_drv.c(226): warning: #174-D: expression has no effect
__NOP;
Function_drv\tp_drv.c: 3 warnings, 0 errors
compiling sincostable.c...
compiling bitstream.c...
compiling mmask.c...
compiling mask.c...
compiling data.c...
Function\data.c(25): warning: #1-D: last line of file ends without a newline
uint16_t First_pressX, First_pressY;
Function\data.c: 1 warning, 0 errors
compiling mqrspec.c...
compiling qrspec.c...
compiling qrencode.c...
compiling qrinput.c...
compiling QR_Encode.c...
compiling rscode.c...
compiling split.c...
compiling LT768.c...
linking...
Program Size: Code=8420 RO-data=368 RW-data=240 ZI-data=55440
FromELF: creating hex file...
After Build - User command #1: fromelf.exe --bin -o ./OBJ/bin/MCU_Code.bin ./OBJ/obj_debug_efm/LT7689.axf
".\OBJ\obj_debug_efm\LT7689.axf" - 0 Error(s), 0 Warning(s).
".\OBJ\obj_debug_efm\LT7689.axf" - 0 Error(s), 68 Warning(s).
<h2>Software Packages used:</h2>
@ -41,7 +269,7 @@ Package Vendor: ARM
D:\keil5Mdk\Keil5_MDK\Packs\ARM\CMSIS\5.7.0\Device\ARM\ARMCM4\Include
<h2>Collection of Component Files used:</h2>
Build Time Elapsed: 00:00:01
Build Time Elapsed: 00:00:10
</pre>
</body>
</html>

+ 552
- 615
OBJ/obj_debug_efm/LT7689.hex
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 113
- 243
OBJ/obj_debug_efm/LT7689.htm Просмотреть файл

@ -3,11 +3,11 @@
<title>Static Call Graph - [.\OBJ\obj_debug_efm\LT7689.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\OBJ\obj_debug_efm\LT7689.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Tue May 06 16:34:32 2025
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Tue May 13 10:13:18 2025
<BR><P>
<H3>Maximum Stack Usage = 104 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
<H3>Maximum Stack Usage = 72 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
main &rArr; ota_lt7689 &rArr; EFLASH_Write &rArr; EFLASH_WordsProg &rArr; EFlash_Bulk_Program
main &rArr; Sys_Init &rArr; Sys_Clk_Init &rArr; CPM_SysClkSelect
<P>
<H3>
Mutually Recursive functions
@ -72,7 +72,7 @@ Function Pointers
<LI><a href="#[49]">RESERVED2</a> from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
<LI><a href="#[1b]">RSA_IRQHandler</a> from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
<LI><a href="#[1]">Reset_Handler</a> from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
<LI><a href="#[2b]">SCI1_IRQHandler</a> from ota.o(i.SCI1_IRQHandler) referenced from startup_armcm4.o(RESET)
<LI><a href="#[2b]">SCI1_IRQHandler</a> from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
<LI><a href="#[2c]">SCI2_IRQHandler</a> from main.o(i.SCI2_IRQHandler) referenced from startup_armcm4.o(RESET)
<LI><a href="#[48]">SCI3_IRQHandler</a> from ota.o(i.SCI3_IRQHandler) referenced from startup_armcm4.o(RESET)
<LI><a href="#[16]">SEC_PGD_LD_FD_IRQHandler</a> from startup_armcm4.o(.text) referenced from startup_armcm4.o(RESET)
@ -105,7 +105,7 @@ Global Symbols
<P><STRONG><a name="[4f]"></a>__main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(.text)
</UL>
<P><STRONG><a name="[8a]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[7b]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[51]"></a>_main_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
@ -115,17 +115,17 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL>
<P><STRONG><a name="[8b]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[7c]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[8c]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[7d]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[8d]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[7e]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[8e]"></a>__rt_lib_shutdown_fini</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry12b.o(.ARM.Collect$$$$0000000E))
<P><STRONG><a name="[7f]"></a>__rt_lib_shutdown_fini</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry12b.o(.ARM.Collect$$$$0000000E))
<P><STRONG><a name="[8f]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[80]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[90]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$00000011))
<P><STRONG><a name="[81]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$00000011))
<P><STRONG><a name="[58]"></a>MSR_MSP</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, sys.o(.emb_text))
<BR><BR>[Called By]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;APP
@ -198,6 +198,9 @@ Global Symbols
<P><STRONG><a name="[1b]"></a>RSA_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_armcm4.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[2b]"></a>SCI1_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_armcm4.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[16]"></a>SEC_PGD_LD_FD_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_armcm4.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
@ -241,40 +244,20 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
</UL>
<BR>[Called By]<UL><LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
<BR>[Called By]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[91]"></a>____aeabi_memcpy8$ret$move</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, memmove.o(.text), UNUSED)
<P><STRONG><a name="[92]"></a>___aeabi_memmove4$ret</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, memmove.o(.text), UNUSED)
<P><STRONG><a name="[93]"></a>___aeabi_memmove8$ret</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, memmove.o(.text), UNUSED)
<P><STRONG><a name="[6d]"></a>__aeabi_memcpy</STRONG> (Thumb, 66 bytes, Stack size 8 bytes, memmove.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __aeabi_memcpy
</UL>
<BR>[Called By]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFLASH_Write
</UL>
<P><STRONG><a name="[94]"></a>__aeabi_memcpy4</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, memmove.o(.text), UNUSED)
<P><STRONG><a name="[95]"></a>__aeabi_memmove</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, memmove.o(.text), UNUSED)
<P><STRONG><a name="[96]"></a>memcpy</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, memmove.o(.text), UNUSED)
<P><STRONG><a name="[97]"></a>memmove</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, memmove.o(.text), UNUSED)
<P><STRONG><a name="[55]"></a>__aeabi_llsl</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
</UL>
<P><STRONG><a name="[98]"></a>_ll_shift_l</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)
<P><STRONG><a name="[82]"></a>_ll_shift_l</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)
<P><STRONG><a name="[54]"></a>__aeabi_llsr</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
</UL>
<P><STRONG><a name="[99]"></a>_ll_ushift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED)
<P><STRONG><a name="[83]"></a>_ll_ushift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED)
<P><STRONG><a name="[52]"></a>__scatterload</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main_after_scatterload
@ -282,7 +265,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
</UL>
<P><STRONG><a name="[9a]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[84]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[57]"></a>APP</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, main.o(i.APP))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = APP &rArr; DelayMS
@ -302,11 +285,11 @@ Global Symbols
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[7d]"></a>CPM_OSC_Switch</STRONG> (Thumb, 404 bytes, Stack size 0 bytes, clk_switch_drv.o(i.CPM_OSC_Switch))
<BR><BR>[Called By]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Clk_Init
<P><STRONG><a name="[6f]"></a>CPM_OSC_Switch</STRONG> (Thumb, 404 bytes, Stack size 0 bytes, clk_switch_drv.o(i.CPM_OSC_Switch))
<BR><BR>[Called By]<UL><LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Clk_Init
</UL>
<P><STRONG><a name="[72]"></a>CPM_PWRCR_OptBits</STRONG> (Thumb, 164 bytes, Stack size 16 bytes, reg_opt_drv.o(i.CPM_PWRCR_OptBits))
<P><STRONG><a name="[64]"></a>CPM_PWRCR_OptBits</STRONG> (Thumb, 164 bytes, Stack size 16 bytes, reg_opt_drv.o(i.CPM_PWRCR_OptBits))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = CPM_PWRCR_OptBits
</UL>
<BR>[Called By]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;LVD_EN
@ -319,7 +302,7 @@ Global Symbols
<BR>[Calls]<UL><LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFLASH_Set_RWSC
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;cpm_set_sysclk_div
</UL>
<BR>[Called By]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Clk_Init
<BR>[Called By]<UL><LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Clk_Init
</UL>
<P><STRONG><a name="[60]"></a>CPM_Vref_Trim</STRONG> (Thumb, 68 bytes, Stack size 4 bytes, cpm_drv.o(i.CPM_Vref_Trim))
@ -327,7 +310,7 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CPM_Write_CoreTestKey
</UL>
<BR>[Called By]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Clk_Init
<BR>[Called By]<UL><LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Clk_Init
</UL>
<P><STRONG><a name="[61]"></a>CPM_Write_CoreTestKey</STRONG> (Thumb, 40 bytes, Stack size 0 bytes, cpm_drv.o(i.CPM_Write_CoreTestKey))
@ -335,18 +318,17 @@ Global Symbols
<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Set_POR_Reset
</UL>
<P><STRONG><a name="[80]"></a>DCACHE_Init</STRONG> (Thumb, 340 bytes, Stack size 12 bytes, cache_drv.o(i.DCACHE_Init))
<P><STRONG><a name="[72]"></a>DCACHE_Init</STRONG> (Thumb, 340 bytes, Stack size 12 bytes, cache_drv.o(i.DCACHE_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = DCACHE_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Init
<BR>[Called By]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Init
</UL>
<P><STRONG><a name="[12]"></a>DMA1_IRQHandler</STRONG> (Thumb, 114 bytes, Stack size 0 bytes, dmac_drv.o(i.DMA1_IRQHandler))
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[76]"></a>DMA_uart_GetRecvLen</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, ota.o(i.DMA_uart_GetRecvLen))
<P><STRONG><a name="[6b]"></a>DMA_uart_GetRecvLen</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, ota.o(i.DMA_uart_GetRecvLen))
<BR><BR>[Called By]<UL><LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SCI3_IRQHandler
<LI><a href="#[2b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SCI1_IRQHandler
</UL>
<P><STRONG><a name="[8]"></a>DebugMon_Handler</STRONG> (Thumb, 14 bytes, Stack size 8 bytes, system_armcm4.o(i.DebugMon_Handler))
@ -363,190 +345,113 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;APP
</UL>
<P><STRONG><a name="[62]"></a>EFLASH_ClrWritePermission</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, eflash_drv.o(i.EFLASH_ClrWritePermission))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = EFLASH_ClrWritePermission
</UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFlash_Set_Main_Permission
</UL>
<BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ota_lt7689
</UL>
<P><STRONG><a name="[64]"></a>EFLASH_Init</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, eflash_drv.o(i.EFLASH_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = EFLASH_Init &rArr; EFM_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFM_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ota_lt7689
</UL>
<P><STRONG><a name="[66]"></a>EFLASH_PageErase</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, eflash_drv.o(i.EFLASH_PageErase))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = EFLASH_PageErase &rArr; EFlash_Page_Erase
</UL>
<BR>[Calls]<UL><LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFlash_Page_Erase
</UL>
<BR>[Called By]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFLASH_Write
</UL>
<P><STRONG><a name="[68]"></a>EFLASH_SetWritePermission</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, eflash_drv.o(i.EFLASH_SetWritePermission))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = EFLASH_SetWritePermission
</UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFlash_Set_Main_Permission
</UL>
<BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ota_lt7689
</UL>
<P><STRONG><a name="[5e]"></a>EFLASH_Set_RWSC</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, eflash_drv.o(i.EFLASH_Set_RWSC))
<BR><BR>[Called By]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CPM_SysClkSelect
</UL>
<P><STRONG><a name="[69]"></a>EFLASH_WordsProg</STRONG> (Thumb, 28 bytes, Stack size 16 bytes, eflash_drv.o(i.EFLASH_WordsProg))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = EFLASH_WordsProg &rArr; EFlash_Bulk_Program
</UL>
<BR>[Calls]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFlash_Bulk_Program
</UL>
<BR>[Called By]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFLASH_Write
</UL>
<P><STRONG><a name="[6b]"></a>EFLASH_Write</STRONG> (Thumb, 236 bytes, Stack size 40 bytes, eflash_drv.o(i.EFLASH_Write))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = EFLASH_Write &rArr; EFLASH_WordsProg &rArr; EFlash_Bulk_Program
</UL>
<BR>[Calls]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFLASH_WordsProg
<LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFLASH_PageErase
<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_checkAddr
<LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
</UL>
<BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ota_lt7689
</UL>
<P><STRONG><a name="[65]"></a>EFM_Init</STRONG> (Thumb, 72 bytes, Stack size 16 bytes, eflash.o(i.EFM_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = EFM_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;eflash_set_verify_cnt
<LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;eflash_set_rwsc
</UL>
<BR>[Called By]<UL><LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFLASH_Init
</UL>
<P><STRONG><a name="[6a]"></a>EFlash_Bulk_Program</STRONG> (Thumb, 64 bytes, Stack size 24 bytes, eflash.o(i.EFlash_Bulk_Program))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = EFlash_Bulk_Program
</UL>
<BR>[Called By]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFLASH_WordsProg
</UL>
<P><STRONG><a name="[67]"></a>EFlash_Page_Erase</STRONG> (Thumb, 74 bytes, Stack size 16 bytes, eflash.o(i.EFlash_Page_Erase))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = EFlash_Page_Erase
</UL>
<BR>[Called By]<UL><LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFLASH_PageErase
</UL>
<P><STRONG><a name="[63]"></a>EFlash_Set_Main_Permission</STRONG> (Thumb, 72 bytes, Stack size 0 bytes, eflash.o(i.EFlash_Set_Main_Permission))
<BR><BR>[Called By]<UL><LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFLASH_SetWritePermission
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFLASH_ClrWritePermission
</UL>
<P><STRONG><a name="[10]"></a>ENCR_IRQHandler</STRONG> (Thumb, 58 bytes, Stack size 0 bytes, edma_drv.o(i.ENCR_IRQHandler))
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[34]"></a>EPORT0_0_IRQHandler</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT0_0_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = EPORT0_0_IRQHandler &rArr; EPORT_IRQHandler &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[35]"></a>EPORT0_1_IRQHandler</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT0_1_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = EPORT0_1_IRQHandler &rArr; EPORT_IRQHandler &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[37]"></a>EPORT0_3_IRQHandler</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT0_3_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = EPORT0_3_IRQHandler &rArr; EPORT_IRQHandler &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[39]"></a>EPORT0_5_IRQHandler</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT0_5_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = EPORT0_5_IRQHandler &rArr; EPORT_IRQHandler &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[3a]"></a>EPORT0_6_IRQHandler</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT0_6_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = EPORT0_6_IRQHandler &rArr; EPORT_IRQHandler &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[3b]"></a>EPORT0_7_IRQHandler</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT0_7_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = EPORT0_7_IRQHandler &rArr; EPORT_IRQHandler &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[3c]"></a>EPORT1_0_IRQHandler</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT1_0_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = EPORT1_0_IRQHandler &rArr; EPORT_IRQHandler &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[3d]"></a>EPORT1_1_IRQHandler</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT1_1_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = EPORT1_1_IRQHandler &rArr; EPORT_IRQHandler &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[3e]"></a>EPORT1_2_IRQHandler</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT1_2_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = EPORT1_2_IRQHandler &rArr; EPORT_IRQHandler &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[3f]"></a>EPORT1_3_IRQHandler</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT1_3_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = EPORT1_3_IRQHandler &rArr; EPORT_IRQHandler &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[40]"></a>EPORT1_4_IRQHandler</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT1_4_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = EPORT1_4_IRQHandler &rArr; EPORT_IRQHandler &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[41]"></a>EPORT1_5_IRQHandler</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT1_5_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = EPORT1_5_IRQHandler &rArr; EPORT_IRQHandler &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[42]"></a>EPORT1_6_IRQHandler</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT1_6_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = EPORT1_6_IRQHandler &rArr; EPORT_IRQHandler &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[43]"></a>EPORT1_7_IRQHandler</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, eport_drv.o(i.EPORT1_7_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = EPORT1_7_IRQHandler &rArr; EPORT_IRQHandler &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[7b]"></a>Get_Sys_Clock</STRONG> (Thumb, 100 bytes, Stack size 0 bytes, cpm_drv.o(i.Get_Sys_Clock))
<BR><BR>[Called By]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Clk_Init
<P><STRONG><a name="[6d]"></a>Get_Sys_Clock</STRONG> (Thumb, 100 bytes, Stack size 0 bytes, cpm_drv.o(i.Get_Sys_Clock))
<BR><BR>[Called By]<UL><LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Clk_Init
</UL>
<P><STRONG><a name="[3]"></a>HardFault_Handler</STRONG> (Thumb, 14 bytes, Stack size 8 bytes, system_armcm4.o(i.HardFault_Handler))
@ -560,44 +465,44 @@ Global Symbols
<P><STRONG><a name="[46]"></a>I2C2_IRQHandler</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, i2c_drv.o(i.I2C2_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = I2C2_IRQHandler &rArr; I2C_ISR
</UL>
<BR>[Calls]<UL><LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;I2C_ISR
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;I2C_ISR
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[47]"></a>I2C3_IRQHandler</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, i2c_drv.o(i.I2C3_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = I2C3_IRQHandler &rArr; I2C_ISR
</UL>
<BR>[Calls]<UL><LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;I2C_ISR
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;I2C_ISR
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[81]"></a>ICACHE_Init</STRONG> (Thumb, 340 bytes, Stack size 12 bytes, cache_drv.o(i.ICACHE_Init))
<P><STRONG><a name="[73]"></a>ICACHE_Init</STRONG> (Thumb, 340 bytes, Stack size 12 bytes, cache_drv.o(i.ICACHE_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = ICACHE_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Init
<BR>[Called By]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Init
</UL>
<P><STRONG><a name="[4d]"></a>IO_Latch_Clr</STRONG> (Thumb, 32 bytes, Stack size 8 bytes, system_armcm4.o(i.IO_Latch_Clr))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = IO_Latch_Clr &rArr; CPM_PWRCR_OptBits
</UL>
<BR>[Calls]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CPM_PWRCR_OptBits
<BR>[Calls]<UL><LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CPM_PWRCR_OptBits
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(.text)
</UL>
<P><STRONG><a name="[7c]"></a>IPS_Clk_Op</STRONG> (Thumb, 116 bytes, Stack size 8 bytes, cpm_drv.o(i.IPS_Clk_Op))
<P><STRONG><a name="[6e]"></a>IPS_Clk_Op</STRONG> (Thumb, 116 bytes, Stack size 8 bytes, cpm_drv.o(i.IPS_Clk_Op))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = IPS_Clk_Op
</UL>
<BR>[Called By]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Clk_Init
<BR>[Called By]<UL><LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Clk_Init
</UL>
<P><STRONG><a name="[4c]"></a>LVD_EN</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, system_armcm4.o(i.LVD_EN))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = LVD_EN &rArr; CPM_PWRCR_OptBits
</UL>
<BR>[Calls]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CPM_PWRCR_OptBits
<BR>[Calls]<UL><LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CPM_PWRCR_OptBits
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(.text)
</UL>
<P><STRONG><a name="[88]"></a>Make_CRC32_Table</STRONG> (Thumb, 50 bytes, Stack size 0 bytes, crc.o(i.Make_CRC32_Table))
<P><STRONG><a name="[7a]"></a>Make_CRC32_Table</STRONG> (Thumb, 50 bytes, Stack size 0 bytes, crc.o(i.Make_CRC32_Table))
<BR><BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
@ -617,20 +522,20 @@ Global Symbols
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[73]"></a>NVIC_Init</STRONG> (Thumb, 116 bytes, Stack size 24 bytes, sys.o(i.NVIC_Init))
<P><STRONG><a name="[65]"></a>NVIC_Init</STRONG> (Thumb, 116 bytes, Stack size 24 bytes, sys.o(i.NVIC_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = NVIC_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NVIC_PriorityGroupConfig
<BR>[Calls]<UL><LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NVIC_PriorityGroupConfig
</UL>
<BR>[Called By]<UL><LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SCI3_DMA_Init
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SCI1_Init
<BR>[Called By]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SCI3_DMA_Init
<LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SCI1_Init
</UL>
<P><STRONG><a name="[74]"></a>NVIC_PriorityGroupConfig</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, sys.o(i.NVIC_PriorityGroupConfig))
<BR><BR>[Called By]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NVIC_Init
<P><STRONG><a name="[66]"></a>NVIC_PriorityGroupConfig</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, sys.o(i.NVIC_PriorityGroupConfig))
<BR><BR>[Called By]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NVIC_Init
</UL>
<P><STRONG><a name="[87]"></a>NVIC_SetVectorTable</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, sys.o(i.NVIC_SetVectorTable))
<P><STRONG><a name="[79]"></a>NVIC_SetVectorTable</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, sys.o(i.NVIC_SetVectorTable))
<BR><BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
@ -653,32 +558,32 @@ Global Symbols
<P><STRONG><a name="[30]"></a>PWM0_IRQHandler</STRONG> (Thumb, 8 bytes, Stack size 4 bytes, pwm_drv.o(i.PWM0_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = PWM0_IRQHandler
</UL>
<BR>[Calls]<UL><LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PWM_ISR
<BR>[Calls]<UL><LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PWM_ISR
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[31]"></a>PWM1_IRQHandler</STRONG> (Thumb, 8 bytes, Stack size 4 bytes, pwm_drv.o(i.PWM1_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = PWM1_IRQHandler
</UL>
<BR>[Calls]<UL><LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PWM_ISR
<BR>[Calls]<UL><LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PWM_ISR
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[32]"></a>PWM2_IRQHandler</STRONG> (Thumb, 8 bytes, Stack size 4 bytes, pwm_drv.o(i.PWM2_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = PWM2_IRQHandler
</UL>
<BR>[Calls]<UL><LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PWM_ISR
<BR>[Calls]<UL><LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PWM_ISR
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[33]"></a>PWM3_IRQHandler</STRONG> (Thumb, 8 bytes, Stack size 4 bytes, pwm_drv.o(i.PWM3_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = PWM3_IRQHandler
</UL>
<BR>[Calls]<UL><LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PWM_ISR
<BR>[Calls]<UL><LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PWM_ISR
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[75]"></a>PWM_ISR</STRONG> (Thumb, 126 bytes, Stack size 0 bytes, pwm_drv.o(i.PWM_ISR))
<P><STRONG><a name="[67]"></a>PWM_ISR</STRONG> (Thumb, 126 bytes, Stack size 0 bytes, pwm_drv.o(i.PWM_ISR))
<BR><BR>[Called By]<UL><LI><a href="#[33]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PWM3_IRQHandler
<LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PWM2_IRQHandler
<LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PWM1_IRQHandler
@ -693,19 +598,10 @@ Global Symbols
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[2b]"></a>SCI1_IRQHandler</STRONG> (Thumb, 108 bytes, Stack size 16 bytes, ota.o(i.SCI1_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = SCI1_IRQHandler &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;dma_uartRX
<LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DMA_uart_GetRecvLen
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[78]"></a>SCI1_Init</STRONG> (Thumb, 68 bytes, Stack size 24 bytes, main.o(i.SCI1_Init))
<P><STRONG><a name="[68]"></a>SCI1_Init</STRONG> (Thumb, 68 bytes, Stack size 24 bytes, main.o(i.SCI1_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = SCI1_Init &rArr; NVIC_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NVIC_Init
<BR>[Calls]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NVIC_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
@ -713,20 +609,20 @@ Global Symbols
<P><STRONG><a name="[2c]"></a>SCI2_IRQHandler</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, main.o(i.SCI2_IRQHandler))
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[79]"></a>SCI3_DMA_Init</STRONG> (Thumb, 142 bytes, Stack size 16 bytes, ota.o(i.SCI3_DMA_Init))
<P><STRONG><a name="[69]"></a>SCI3_DMA_Init</STRONG> (Thumb, 142 bytes, Stack size 16 bytes, ota.o(i.SCI3_DMA_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = SCI3_DMA_Init &rArr; NVIC_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NVIC_Init
<LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;dma_uartRX
<BR>[Calls]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NVIC_Init
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;dma_uartRX
</UL>
<BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[48]"></a>SCI3_IRQHandler</STRONG> (Thumb, 108 bytes, Stack size 16 bytes, ota.o(i.SCI3_IRQHandler))
<P><STRONG><a name="[48]"></a>SCI3_IRQHandler</STRONG> (Thumb, 136 bytes, Stack size 16 bytes, ota.o(i.SCI3_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = SCI3_IRQHandler &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;dma_uartRX
<LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DMA_uart_GetRecvLen
<BR>[Calls]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;dma_uartRX
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DMA_uart_GetRecvLen
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
@ -757,25 +653,25 @@ Global Symbols
<P><STRONG><a name="[a]"></a>SysTick_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, systick_drv.o(i.SysTick_Handler))
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[7a]"></a>Sys_Clk_Init</STRONG> (Thumb, 222 bytes, Stack size 48 bytes, cpm_drv.o(i.Sys_Clk_Init))
<P><STRONG><a name="[6c]"></a>Sys_Clk_Init</STRONG> (Thumb, 222 bytes, Stack size 48 bytes, cpm_drv.o(i.Sys_Clk_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = Sys_Clk_Init &rArr; CPM_SysClkSelect
</UL>
<BR>[Calls]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CPM_OSC_Switch
<LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IPS_Clk_Op
<LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Get_Sys_Clock
<BR>[Calls]<UL><LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CPM_OSC_Switch
<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IPS_Clk_Op
<LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Get_Sys_Clock
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CPM_Vref_Trim
<LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CPM_SysClkSelect
</UL>
<BR>[Called By]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Init
<BR>[Called By]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Init
</UL>
<P><STRONG><a name="[7e]"></a>Sys_Init</STRONG> (Thumb, 44 bytes, Stack size 8 bytes, sys.o(i.Sys_Init))
<P><STRONG><a name="[70]"></a>Sys_Init</STRONG> (Thumb, 44 bytes, Stack size 8 bytes, sys.o(i.Sys_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = Sys_Init &rArr; Sys_Clk_Init &rArr; CPM_SysClkSelect
</UL>
<BR>[Calls]<UL><LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay
<LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Clk_Init
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ICACHE_Init
<LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DCACHE_Init
<BR>[Calls]<UL><LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay
<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Clk_Init
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ICACHE_Init
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DCACHE_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
@ -786,11 +682,11 @@ Global Symbols
<P><STRONG><a name="[d]"></a>TC_IRQHandler</STRONG> (Thumb, 8 bytes, Stack size 4 bytes, tc_drv.o(i.TC_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = TC_IRQHandler
</UL>
<BR>[Calls]<UL><LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TC_ISR
<BR>[Calls]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TC_ISR
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_armcm4.o(RESET)
</UL>
<P><STRONG><a name="[82]"></a>TC_ISR</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, tc_drv.o(i.TC_ISR))
<P><STRONG><a name="[74]"></a>TC_ISR</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, tc_drv.o(i.TC_ISR))
<BR><BR>[Called By]<UL><LI><a href="#[d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TC_IRQHandler
</UL>
@ -810,11 +706,11 @@ Global Symbols
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;APP
</UL>
<P><STRONG><a name="[83]"></a>__0printf$8</STRONG> (Thumb, 22 bytes, Stack size 24 bytes, printf8.o(i.__0printf$8), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
<P><STRONG><a name="[75]"></a>__0printf$8</STRONG> (Thumb, 22 bytes, Stack size 24 bytes, printf8.o(i.__0printf$8), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[9b]"></a>__1printf$8</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf8.o(i.__0printf$8), UNUSED)
<P><STRONG><a name="[85]"></a>__1printf$8</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf8.o(i.__0printf$8), UNUSED)
<P><STRONG><a name="[5b]"></a>__2printf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf8.o(i.__0printf$8))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = __2printf
@ -829,64 +725,46 @@ Global Symbols
<LI><a href="#[8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DebugMon_Handler
<LI><a href="#[5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BusFault_Handler
<LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SCI3_IRQHandler
<LI><a href="#[2b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SCI1_IRQHandler
<LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT_IRQHandler
<LI><a href="#[17]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PCI_DET_IRQHandler
</UL>
<P><STRONG><a name="[9c]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[86]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[9d]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[87]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[9e]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[88]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[7f]"></a>delay</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, delay.o(i.delay))
<P><STRONG><a name="[71]"></a>delay</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, delay.o(i.delay))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = delay
</UL>
<BR>[Called By]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Init
<BR>[Called By]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Init
</UL>
<P><STRONG><a name="[77]"></a>dma_uartRX</STRONG> (Thumb, 278 bytes, Stack size 20 bytes, ota.o(i.dma_uartRX))
<P><STRONG><a name="[6a]"></a>dma_uartRX</STRONG> (Thumb, 278 bytes, Stack size 20 bytes, ota.o(i.dma_uartRX))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = dma_uartRX
</UL>
<BR>[Called By]<UL><LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SCI3_DMA_Init
<BR>[Called By]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SCI3_DMA_Init
<LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SCI3_IRQHandler
<LI><a href="#[2b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SCI1_IRQHandler
</UL>
<P><STRONG><a name="[6e]"></a>eflash_set_verify_cnt</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, eflash.o(i.eflash_set_verify_cnt))
<BR><BR>[Called By]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFM_Init
</UL>
<P><STRONG><a name="[50]"></a>fputc</STRONG> (Thumb, 24 bytes, Stack size 0 bytes, main.o(i.fputc))
<BR>[Address Reference Count : 1]<UL><LI> printf8.o(i.__0printf$8)
</UL>
<P><STRONG><a name="[4b]"></a>main</STRONG> (Thumb, 328 bytes, Stack size 0 bytes, main.o(i.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 104<LI>Call Chain = main &rArr; ota_lt7689 &rArr; EFLASH_Write &rArr; EFLASH_WordsProg &rArr; EFlash_Bulk_Program
<P><STRONG><a name="[4b]"></a>main</STRONG> (Thumb, 298 bytes, Stack size 0 bytes, main.o(i.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = main &rArr; Sys_Init &rArr; Sys_Clk_Init &rArr; CPM_SysClkSelect
</UL>
<BR>[Calls]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ota_lt7689
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;WDT_FeedDog
<LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Init
<LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SCI3_DMA_Init
<LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NVIC_SetVectorTable
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Make_CRC32_Table
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SCI1_Init
<BR>[Calls]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;WDT_FeedDog
<LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Sys_Init
<LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SCI3_DMA_Init
<LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NVIC_SetVectorTable
<LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Make_CRC32_Table
<LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SCI1_Init
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;APP
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL>
<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
</UL>
<P><STRONG><a name="[89]"></a>ota_lt7689</STRONG> (Thumb, 52 bytes, Stack size 24 bytes, ota.o(i.ota_lt7689))
<BR><BR>[Stack]<UL><LI>Max Depth = 104<LI>Call Chain = ota_lt7689 &rArr; EFLASH_Write &rArr; EFLASH_WordsProg &rArr; EFlash_Bulk_Program
</UL>
<BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFLASH_Write
<LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFLASH_SetWritePermission
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFLASH_Init
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFLASH_ClrWritePermission
</UL>
<BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P>
</UL><P>
<H3>
Local Symbols
</H3>
@ -894,18 +772,14 @@ Local Symbols
<BR><BR>[Called By]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CPM_SysClkSelect
</UL>
<P><STRONG><a name="[6c]"></a>FLASH_checkAddr</STRONG> (Thumb, 34 bytes, Stack size 0 bytes, eflash_drv.o(i.FLASH_checkAddr))
<BR><BR>[Called By]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFLASH_Write
</UL>
<P><STRONG><a name="[71]"></a>I2C_ISR</STRONG> (Thumb, 248 bytes, Stack size 8 bytes, i2c_drv.o(i.I2C_ISR))
<P><STRONG><a name="[63]"></a>I2C_ISR</STRONG> (Thumb, 248 bytes, Stack size 8 bytes, i2c_drv.o(i.I2C_ISR))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = I2C_ISR
</UL>
<BR>[Called By]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;I2C3_IRQHandler
<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;I2C2_IRQHandler
</UL>
<P><STRONG><a name="[70]"></a>EPORT_IRQHandler</STRONG> (Thumb, 118 bytes, Stack size 16 bytes, eport_drv.o(i.EPORT_IRQHandler))
<P><STRONG><a name="[62]"></a>EPORT_IRQHandler</STRONG> (Thumb, 118 bytes, Stack size 16 bytes, eport_drv.o(i.EPORT_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = EPORT_IRQHandler &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
@ -926,24 +800,20 @@ Local Symbols
<LI><a href="#[34]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPORT0_0_IRQHandler
</UL>
<P><STRONG><a name="[6f]"></a>eflash_set_rwsc</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, eflash.o(i.eflash_set_rwsc))
<BR><BR>[Called By]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EFM_Init
</UL>
<P><STRONG><a name="[84]"></a>_printf_core</STRONG> (Thumb, 984 bytes, Stack size 104 bytes, printf8.o(i._printf_core), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_pre_padding
<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_post_padding
<P><STRONG><a name="[76]"></a>_printf_core</STRONG> (Thumb, 984 bytes, Stack size 104 bytes, printf8.o(i._printf_core), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_pre_padding
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_post_padding
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0printf$8
<BR>[Called By]<UL><LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0printf$8
</UL>
<P><STRONG><a name="[86]"></a>_printf_post_padding</STRONG> (Thumb, 36 bytes, Stack size 24 bytes, printf8.o(i._printf_post_padding), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
<P><STRONG><a name="[78]"></a>_printf_post_padding</STRONG> (Thumb, 36 bytes, Stack size 24 bytes, printf8.o(i._printf_post_padding), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[85]"></a>_printf_pre_padding</STRONG> (Thumb, 46 bytes, Stack size 24 bytes, printf8.o(i._printf_pre_padding), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
<P><STRONG><a name="[77]"></a>_printf_pre_padding</STRONG> (Thumb, 46 bytes, Stack size 24 bytes, printf8.o(i._printf_pre_padding), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P>
<H3>

+ 19
- 12
OBJ/obj_debug_efm/LT7689_LT7689.dep Просмотреть файл

@ -1,6 +1,6 @@
Dependencies for Project 'LT7689', Target 'LT7689': (DO NOT MODIFY !)
CompilerVersion: 5060960::V5.06 update 7 (build 960)::.\ARMCC
F (.\User\main.c)(0x6819C996)(--c99 --gnu -c --cpu Cortex-M4.fp.sp -D__MICROLIB --li -g -O0 --apcs=interwork --split_sections -I .\ccore\common -I .\ccore -I .\Function -I .\Function_drv -I .\Levetoplib -I .\MCU_drv\drv\inc -I .\MCU_drv\drv\src -I .\MCU_drv\lib -I .\QRCODE -I .\User -I .\MCU_drv\drv\src\usb -ID:\keil5Mdk\Keil5_MDK\Packs\ARM\CMSIS\5.7.0\Device\ARM\ARMCM4\Include -D__UVISION_VERSION="534" -DARMCM4_FP -DARM_MATH_CM4 -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__CC_ARM -o .\obj\obj_debug_efm\main.o --omf_browse .\obj\obj_debug_efm\main.crf --depend .\obj\obj_debug_efm\main.d)
F (.\User\main.c)(0x6822AA4F)(--c99 --gnu -c --cpu Cortex-M4.fp.sp -D__MICROLIB --li -g -O0 --apcs=interwork --split_sections -I .\ccore\common -I .\ccore -I .\Function -I .\Function_drv -I .\Levetoplib -I .\MCU_drv\drv\inc -I .\MCU_drv\drv\src -I .\MCU_drv\lib -I .\QRCODE -I .\User -I .\MCU_drv\drv\src\usb -ID:\keil5Mdk\Keil5_MDK\Packs\ARM\CMSIS\5.7.0\Device\ARM\ARMCM4\Include -D__UVISION_VERSION="534" -DARMCM4_FP -DARM_MATH_CM4 -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__CC_ARM -o .\obj\obj_debug_efm\main.o --omf_browse .\obj\obj_debug_efm\main.crf --depend .\obj\obj_debug_efm\main.d)
I (.\ccore\common\sys.h)(0x67B2F52B)
I (.\ccore\LT7689_C.h)(0x67B2F52B)
I (.\ccore\core_cm4.h)(0x67B2F52B)
@ -45,7 +45,7 @@ I (.\Function_drv\pit.h)(0x67B2F52B)
I (.\Function_drv\dac.h)(0x681072DE)
I (.\MCU_drv\drv\inc\dac_drv.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\dac_reg.h)(0x67B2F52B)
I (User\flash.h)(0x67E37FF1)
I (User\flash.h)(0x681C5BED)
I (.\Function\ctp.h)(0x67B2F52B)
I (.\Function\rtp.h)(0x67B2F52B)
I (D:\keil5Mdk\Keil5_MDK\ARM\ARMCC\include\math.h)(0x5E8E3CC2)
@ -56,7 +56,7 @@ I (.\MCU_drv\drv\inc\wdt_reg.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\usb_drv.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\usb_reg.h)(0x67B2F52B)
I (User\UI_H.h)(0x681072CC)
I (User\OTA_H.h)(0x6819C356)
I (User\OTA_H.h)(0x6821A18F)
I (User\meg.h)(0x681072DA)
I (User\CRC.h)(0x62FCA25A)
I (User\cpm_drv.h)(0x5DF1B6F4)
@ -71,7 +71,7 @@ I (.\MCU_drv\drv\inc\reset_drv.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\reset_reg.h)(0x67B2F52B)
F (.\User\module_select.h)(0x67CFA11F)()
F (.\User\UI_H.h)(0x681072CC)()
F (.\User\OTA_H.h)(0x6819C356)()
F (.\User\OTA_H.h)(0x6821A18F)()
F (.\User\meg.h)(0x681072DA)()
F (.\User\cpm_drv.h)(0x5DF1B6F4)()
F (.\User\Updata.h)(0x680F2D55)()
@ -79,9 +79,9 @@ F (.\User\ff.h)(0x6367B56C)()
F (.\User\ffconf.h)(0x63E610EE)()
F (.\User\SPI_SD.h)(0x681072D7)()
F (.\User\diskio.h)(0x6367B56C)()
F (.\User\Flash.c)(0x67E38579)(--c99 --gnu -c --cpu Cortex-M4.fp.sp -D__MICROLIB --li -g -O0 --apcs=interwork --split_sections -I .\ccore\common -I .\ccore -I .\Function -I .\Function_drv -I .\Levetoplib -I .\MCU_drv\drv\inc -I .\MCU_drv\drv\src -I .\MCU_drv\lib -I .\QRCODE -I .\User -I .\MCU_drv\drv\src\usb -ID:\keil5Mdk\Keil5_MDK\Packs\ARM\CMSIS\5.7.0\Device\ARM\ARMCM4\Include -D__UVISION_VERSION="534" -DARMCM4_FP -DARM_MATH_CM4 -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__CC_ARM -o .\obj\obj_debug_efm\flash.o --omf_browse .\obj\obj_debug_efm\flash.crf --depend .\obj\obj_debug_efm\flash.d)
F (.\User\Flash.c)(0x681DC102)(--c99 --gnu -c --cpu Cortex-M4.fp.sp -D__MICROLIB --li -g -O0 --apcs=interwork --split_sections -I .\ccore\common -I .\ccore -I .\Function -I .\Function_drv -I .\Levetoplib -I .\MCU_drv\drv\inc -I .\MCU_drv\drv\src -I .\MCU_drv\lib -I .\QRCODE -I .\User -I .\MCU_drv\drv\src\usb -ID:\keil5Mdk\Keil5_MDK\Packs\ARM\CMSIS\5.7.0\Device\ARM\ARMCM4\Include -D__UVISION_VERSION="534" -DARMCM4_FP -DARM_MATH_CM4 -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__CC_ARM -o .\obj\obj_debug_efm\flash.o --omf_browse .\obj\obj_debug_efm\flash.crf --depend .\obj\obj_debug_efm\flash.d)
I (D:\keil5Mdk\Keil5_MDK\ARM\ARMCC\include\string.h)(0x5E8E3CC2)
I (User\Flash.h)(0x67E37FF1)
I (User\Flash.h)(0x681C5BED)
I (.\ccore\common\sys.h)(0x67B2F52B)
I (.\ccore\LT7689_C.h)(0x67B2F52B)
I (.\ccore\core_cm4.h)(0x67B2F52B)
@ -107,8 +107,10 @@ I (.\MCU_drv\drv\inc\eport_drv.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\eport_reg.h)(0x67CA61CC)
I (.\MCU_drv\drv\inc\dmac_drv.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\dmac_reg.h)(0x67B2F52B)
F (.\User\Flash.h)(0x67E37FF1)()
F (.\User\Updata.c)(0x67E3B142)(--c99 --gnu -c --cpu Cortex-M4.fp.sp -D__MICROLIB --li -g -O0 --apcs=interwork --split_sections -I .\ccore\common -I .\ccore -I .\Function -I .\Function_drv -I .\Levetoplib -I .\MCU_drv\drv\inc -I .\MCU_drv\drv\src -I .\MCU_drv\lib -I .\QRCODE -I .\User -I .\MCU_drv\drv\src\usb -ID:\keil5Mdk\Keil5_MDK\Packs\ARM\CMSIS\5.7.0\Device\ARM\ARMCM4\Include -D__UVISION_VERSION="534" -DARMCM4_FP -DARM_MATH_CM4 -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__CC_ARM -o .\obj\obj_debug_efm\updata.o --omf_browse .\obj\obj_debug_efm\updata.crf --depend .\obj\obj_debug_efm\updata.d)
I (.\MCU_drv\drv\inc\wdt_drv.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\wdt_reg.h)(0x67B2F52B)
F (.\User\Flash.h)(0x681C5BED)()
F (.\User\Updata.c)(0x681C5D7E)(--c99 --gnu -c --cpu Cortex-M4.fp.sp -D__MICROLIB --li -g -O0 --apcs=interwork --split_sections -I .\ccore\common -I .\ccore -I .\Function -I .\Function_drv -I .\Levetoplib -I .\MCU_drv\drv\inc -I .\MCU_drv\drv\src -I .\MCU_drv\lib -I .\QRCODE -I .\User -I .\MCU_drv\drv\src\usb -ID:\keil5Mdk\Keil5_MDK\Packs\ARM\CMSIS\5.7.0\Device\ARM\ARMCM4\Include -D__UVISION_VERSION="534" -DARMCM4_FP -DARM_MATH_CM4 -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__CC_ARM -o .\obj\obj_debug_efm\updata.o --omf_browse .\obj\obj_debug_efm\updata.crf --depend .\obj\obj_debug_efm\updata.d)
I (User\Updata.h)(0x680F2D55)
I (User\ff.h)(0x6367B56C)
I (User\ffconf.h)(0x63E610EE)
@ -131,7 +133,7 @@ I (.\MCU_drv\drv\inc\uart_drv.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\uart_reg.h)(0x67B2F52B)
I (.\User\module_select.h)(0x67CFA11F)
I (User\diskio.h)(0x6367B56C)
I (User\Flash.h)(0x67E37FF1)
I (User\Flash.h)(0x681C5BED)
I (.\Function\LT768.h)(0x67B2F52B)
I (.\Function_drv\if_port.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\spi_drv.h)(0x67B2F52B)
@ -151,6 +153,8 @@ I (.\MCU_drv\drv\inc\ioctrl_reg.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\pit32_drv.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\pit32_reg.h)(0x67B2F52B)
I (.\ccore\common\iomacros.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\wdt_drv.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\wdt_reg.h)(0x67B2F52B)
F (.\User\CRC.c)(0x630433BA)(--c99 --gnu -c --cpu Cortex-M4.fp.sp -D__MICROLIB --li -g -O0 --apcs=interwork --split_sections -I .\ccore\common -I .\ccore -I .\Function -I .\Function_drv -I .\Levetoplib -I .\MCU_drv\drv\inc -I .\MCU_drv\drv\src -I .\MCU_drv\lib -I .\QRCODE -I .\User -I .\MCU_drv\drv\src\usb -ID:\keil5Mdk\Keil5_MDK\Packs\ARM\CMSIS\5.7.0\Device\ARM\ARMCM4\Include -D__UVISION_VERSION="534" -DARMCM4_FP -DARM_MATH_CM4 -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__CC_ARM -o .\obj\obj_debug_efm\crc.o --omf_browse .\obj\obj_debug_efm\crc.crf --depend .\obj\obj_debug_efm\crc.d)
I (User\CRC.h)(0x62FCA25A)
I (.\ccore\common\sys.h)(0x67B2F52B)
@ -283,7 +287,7 @@ I (.\MCU_drv\drv\inc\spi_drv.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\spi_reg.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\eport_drv.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\eport_reg.h)(0x67CA61CC)
I (User\flash.h)(0x67E37FF1)
I (User\flash.h)(0x681C5BED)
I (.\MCU_drv\drv\inc\usb_reg.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\reset_drv.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\reset_reg.h)(0x67B2F52B)
@ -300,8 +304,8 @@ I (User\ffconf.h)(0x63E610EE)
I (User\SPI_SD.h)(0x681072D7)
I (User\diskio.h)(0x6367B56C)
I (User\CRC.h)(0x62FCA25A)
F (.\User\ota.c)(0x6819C54F)(--c99 --gnu -c --cpu Cortex-M4.fp.sp -D__MICROLIB --li -g -O0 --apcs=interwork --split_sections -I .\ccore\common -I .\ccore -I .\Function -I .\Function_drv -I .\Levetoplib -I .\MCU_drv\drv\inc -I .\MCU_drv\drv\src -I .\MCU_drv\lib -I .\QRCODE -I .\User -I .\MCU_drv\drv\src\usb -ID:\keil5Mdk\Keil5_MDK\Packs\ARM\CMSIS\5.7.0\Device\ARM\ARMCM4\Include -D__UVISION_VERSION="534" -DARMCM4_FP -DARM_MATH_CM4 -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__CC_ARM -o .\obj\obj_debug_efm\ota.o --omf_browse .\obj\obj_debug_efm\ota.crf --depend .\obj\obj_debug_efm\ota.d)
I (User\OTA_H.h)(0x6819C356)
F (.\User\ota.c)(0x6822AAB5)(--c99 --gnu -c --cpu Cortex-M4.fp.sp -D__MICROLIB --li -g -O0 --apcs=interwork --split_sections -I .\ccore\common -I .\ccore -I .\Function -I .\Function_drv -I .\Levetoplib -I .\MCU_drv\drv\inc -I .\MCU_drv\drv\src -I .\MCU_drv\lib -I .\QRCODE -I .\User -I .\MCU_drv\drv\src\usb -ID:\keil5Mdk\Keil5_MDK\Packs\ARM\CMSIS\5.7.0\Device\ARM\ARMCM4\Include -D__UVISION_VERSION="534" -DARMCM4_FP -DARM_MATH_CM4 -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__CC_ARM -o .\obj\obj_debug_efm\ota.o --omf_browse .\obj\obj_debug_efm\ota.crf --depend .\obj\obj_debug_efm\ota.d)
I (User\OTA_H.h)(0x6821A18F)
I (.\MCU_drv\drv\inc\eflash_drv.h)(0x67B2F52B)
I (.\ccore\common\type.h)(0x67B2F52B)
I (.\ccore\LT7689_C.h)(0x67B2F52B)
@ -349,6 +353,9 @@ I (.\MCU_drv\drv\inc\usb_drv.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\usb_reg.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\usb_const.h)(0x67B2F52B)
I (User\meg.h)(0x681072DA)
I (User\Flash.h)(0x681C5BED)
I (.\MCU_drv\drv\inc\wdt_drv.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\wdt_reg.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\dmac_drv.h)(0x67B2F52B)
I (.\MCU_drv\drv\inc\dmac_reg.h)(0x67B2F52B)
F (.\ccore\common\common.c)(0x67CA61CC)(--c99 --gnu -c --cpu Cortex-M4.fp.sp -D__MICROLIB --li -g -O0 --apcs=interwork --split_sections -I .\ccore\common -I .\ccore -I .\Function -I .\Function_drv -I .\Levetoplib -I .\MCU_drv\drv\inc -I .\MCU_drv\drv\src -I .\MCU_drv\lib -I .\QRCODE -I .\User -I .\MCU_drv\drv\src\usb -ID:\keil5Mdk\Keil5_MDK\Packs\ARM\CMSIS\5.7.0\Device\ARM\ARMCM4\Include -D__UVISION_VERSION="534" -DARMCM4_FP -DARM_MATH_CM4 -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__CC_ARM -o .\obj\obj_debug_efm\common.o --omf_browse .\obj\obj_debug_efm\common.crf --depend .\obj\obj_debug_efm\common.d)

Двоичные данные
OBJ/obj_debug_efm/adc_dma.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/adc_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/alg_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/bitstream.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/cache_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/ccm_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/common.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/cpm_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/crc.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/crc_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/dac_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/data.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/delay.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/diskio.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/dma.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/dmac_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/edma_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/eflash_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/eport_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/ff.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/ffunicode.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/flash.crf Просмотреть файл


+ 2
- 0
OBJ/obj_debug_efm/flash.d Просмотреть файл

@ -28,3 +28,5 @@
.\obj\obj_debug_efm\flash.o: .\MCU_drv\drv\inc\eport_reg.h
.\obj\obj_debug_efm\flash.o: .\MCU_drv\drv\inc\dmac_drv.h
.\obj\obj_debug_efm\flash.o: .\MCU_drv\drv\inc\dmac_reg.h
.\obj\obj_debug_efm\flash.o: .\MCU_drv\drv\inc\wdt_drv.h
.\obj\obj_debug_efm\flash.o: .\MCU_drv\drv\inc\wdt_reg.h

Двоичные данные
OBJ/obj_debug_efm/flash.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/i2c_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/if_port.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/iic.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/ioctrl_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/lt768.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/lt768_lib.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/main.crf Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/main.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/mask.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/mmask.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/mqrspec.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/ota.crf Просмотреть файл


+ 3
- 0
OBJ/obj_debug_efm/ota.d Просмотреть файл

@ -49,5 +49,8 @@
.\obj\obj_debug_efm\ota.o: .\MCU_drv\drv\inc\usb_reg.h
.\obj\obj_debug_efm\ota.o: .\MCU_drv\drv\inc\usb_const.h
.\obj\obj_debug_efm\ota.o: User\meg.h
.\obj\obj_debug_efm\ota.o: User\Flash.h
.\obj\obj_debug_efm\ota.o: .\MCU_drv\drv\inc\wdt_drv.h
.\obj\obj_debug_efm\ota.o: .\MCU_drv\drv\inc\wdt_reg.h
.\obj\obj_debug_efm\ota.o: .\MCU_drv\drv\inc\dmac_drv.h
.\obj\obj_debug_efm\ota.o: .\MCU_drv\drv\inc\dmac_reg.h

Двоичные данные
OBJ/obj_debug_efm/ota.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/pci_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/pit.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/pit32_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/pwm_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/qr_encode.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/qrencode.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/qrinput.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/qrspec.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/reset_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/rscode.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/rtc_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/sincostable.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/spi_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/spi_sd.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/split.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/ssi_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/sys.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/system_armcm4.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/systick_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/tc_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/tp_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/trng_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/uart.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/uart_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/uart_vcom.crf Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/uart_vcom.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/updata.crf Просмотреть файл


+ 2
- 0
OBJ/obj_debug_efm/updata.d Просмотреть файл

@ -43,3 +43,5 @@
.\obj\obj_debug_efm\updata.o: .\MCU_drv\drv\inc\pit32_drv.h
.\obj\obj_debug_efm\updata.o: .\MCU_drv\drv\inc\pit32_reg.h
.\obj\obj_debug_efm\updata.o: .\ccore\common\iomacros.h
.\obj\obj_debug_efm\updata.o: .\MCU_drv\drv\inc\wdt_drv.h
.\obj\obj_debug_efm\updata.o: .\MCU_drv\drv\inc\wdt_reg.h

Двоичные данные
OBJ/obj_debug_efm/updata.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/usb_ccid_config.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/usb_ccid_contril.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/usb_cdc_config.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/usb_cdc_control.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/usb_drv.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/usb_hid_control.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/usb_hid_isr.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/usb_ms_config.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/usb_ms_control.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/usbdev_control.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/usbdev_isr.o Просмотреть файл


Двоичные данные
OBJ/obj_debug_efm/wdt_drv.o Просмотреть файл


+ 44
- 16
User/Flash.c Просмотреть файл

@ -3,7 +3,7 @@
#include "spi_drv.h"
#include "dmac_drv.h"
#include "eport_drv.h"
#include "wdt_drv.h"
u8 W25Q256 = 0; //256 NorFlash的标志 ,用于识别到256的时候开启4Byte 地址
u8 Flash_type = 0; //用于判断 是NorFlash(0) 或者 NandFlash(1)
//u32 Flash_size =0; //用于记录Flash的容量
@ -61,11 +61,14 @@ UINT8 SPI1_ReadWriteByte(UINT8 Send)
{
while(((SPI1->SPISRHW)&(SPISR_TXFFULL_MASK)));
// printf("while1\r\n");
SPI1->SPIDR = Send;
// while(!(0x80 & SPI1->SPISR));
// printf("SPI1->SPISRHW=%d\r\n",SPI1->SPISRHW);
while(((SPI1->SPISRHW) & (SPISR_RXFEMP_MASK)));
// printf("SPI10->SPISRHW=%d\r\n",SPI1->SPISRHW);
// printf("while2\r\n");
return SPI1->SPIDR;
}
@ -101,7 +104,10 @@ void SPI1_DMA_Tran(UINT8* Tx_Addr, UINT8* Rx_Addr, UINT32 length)
void SPI1_DMA_Wait(void)
{
while((m_dma_control->DMA_RAWTFR & (CHANNEL_STAT(0) | CHANNEL_STAT(1))) != (CHANNEL_STAT(0) | CHANNEL_STAT(1)));
while((m_dma_control->DMA_RAWTFR & (CHANNEL_STAT(0) | CHANNEL_STAT(1))) != (CHANNEL_STAT(0) | CHANNEL_STAT(1)))
{
//WDT_FeedDog();
}
m_dma_control->DMA_CLRTFR = (CHANNEL_STAT(0) | CHANNEL_STAT(1));
@ -428,21 +434,27 @@ uint8_t W25N01GV_ReadSR(uint8_t reg) //
void W25N01GV_Write_SR(uint8_t reg, uint8_t val)
{
W25N01GV_Write_Enable();
// printf("aaa\r\n");
Flash_SS_RESET; //使能器件
// printf("bbb\r\n");
SPIWR(0x1F); //发送写取状态寄存器命令
SPIWR(reg); //寄存器地址
SPIWR(val); //写入一个字节
// printf("ccc\r\n");
Flash_SS_SET; //取消片选
// printf("ddd\r\n");
W25N01GV_Write_Disable();
}
//将WEL置位
void W25N01GV_Write_Enable(void) //W25QXX写使能
{
// printf("!!!\r\n");
Flash_SS_RESET; //使能器件
// printf("@@@\r\n");
SPIWR(0x06); //发送写使能
Flash_SS_SET; //取消片选
// printf("###\r\n");
Flash_SS_SET; //取消片选
// printf("$$$\r\n");
}
//将WEL清零
@ -489,22 +501,29 @@ void W25N01GV_Erase_Block(uint16_t block)
{
uint32_t addr = 0;
addr = 64 * block; //输入的是页地址,一个块有64页。
W25N01GV_Write_SR(0xA0, 0x00); // flash保护功能
// WDT_FeedDog();
// printf("----\r\n");
W25N01GV_Write_SR(0xA0, 0x00); // flash保护功能
// printf("+++++\r\n");
W25N01GV_Write_Enable(); //SET WEL
W25N01GV_Wait_Busy();
// printf("0000\r\n");
// WDT_FeedDog();
W25N01GV_Wait_Busy();
// printf("1111\r\n");
Flash_SS_RESET; //使能器件
SPIWR(0xD8); //发送片擦除命令
// SPIWR((uint8_t)(addr>>16)); //发送片擦除命令
SPIWR(0xFF); //发送片擦除命令
SPIWR((uint8_t)(addr>>8));
SPIWR((uint8_t)(addr));
Flash_SS_SET; //取消片选
// printf("222\r\n");
// WDT_FeedDog();
W25N01GV_Wait_Busy(); //等待芯片擦除结束
W25N01GV_Write_SR(0xA0,0x7C); // 开flash保护功能
}
void W25N01GV_EraseFlash(void) //一共有1024个block
@ -535,16 +554,22 @@ void W25N01GV_WritePageAddr_Data(uint8_t* pBuffer,uint16_t ColumnAddr,uint32_t P
W25N01GV_Write_SR(0xa0, 0x00); // 关flash保护功能
//------写BUFF------
WDT_FeedDog();
W25N01GV_Write_Enable(); //SET WEL
// printf("3333\r\n");
Flash_SS_RESET; //使能器件
SPIWR(0x02); //发送写BUFF命令
SPIWR(ColumnAddr>>8); //BUFF地址
SPIWR(ColumnAddr);
// printf("44444\r\n");
#if MCU_SPI
#if DMA_flag
WDT_FeedDog();
SPI1_DMA_Tran(pBuffer,wrbuff,NumByteToWrite);
// printf("55555\r\n");
WDT_FeedDog();
SPI1_DMA_Wait();
// printf("6666\r\n");
#else
for(i=0;i<NumByteToWrite;i++)SPIWR(pBuffer[i]);//循环写数
@ -560,7 +585,8 @@ void W25N01GV_WritePageAddr_Data(uint8_t* pBuffer,uint16_t ColumnAddr,uint32_t P
#endif
Flash_SS_SET; //取消片选
// WDT_FeedDog();
W25N01GV_Wait_Busy(); //等待写入结束
//-------BUFF数据写入flash--------
@ -572,10 +598,12 @@ void W25N01GV_WritePageAddr_Data(uint8_t* pBuffer,uint16_t ColumnAddr,uint32_t P
SPIWR(PageAddr>>8); //发送16it地址
SPIWR(PageAddr);
Flash_SS_SET;
// WDT_FeedDog();
W25N01GV_Wait_Busy(); //等待写入结束
W25N01GV_Write_SR(0xa0, 0x7c); // 开flash保护功能
// printf("777\r\n");
}
//无检验写SPI FLASH

+ 4
- 0
User/OTA_H.h Просмотреть файл

@ -16,8 +16,12 @@ extern unsigned char GetAdjdata(unsigned int addr); // 512B 0.5KB
extern unsigned int ota_lt7689(unsigned char * updata_p,unsigned int length , unsigned int flash_addr);
extern void SCI1_DMA_Init(unsigned int pclk,unsigned int bound);
extern void SCI3_DMA_Init(unsigned int pclk,unsigned int bound);
extern unsigned int ota_ui(unsigned int addr , unsigned char * ota_lt_buf , unsigned int length,unsigned short offset);
extern unsigned int g_sys_clk;
extern unsigned char ota_lt7689_flag;
extern unsigned char ota_lt7689_buf[512];
extern unsigned int ota_lt7689_length ;
extern unsigned char ui_buf[2050] ;
extern unsigned int ui_buf_length;
#endif

+ 1
- 0
User/Updata.c Просмотреть файл

@ -4,6 +4,7 @@
#include "CRC.h"
#include "eflash_drv.h"
#include "Uart_Vcom.h"
#include "wdt_drv.h"
//extern u8 W25Q256;
extern u8 Flash_type;
//extern u32 Flash_size;

+ 218
- 22
User/main.c Просмотреть файл

@ -46,6 +46,7 @@
#include "flash.h"
#include "LT768_Lib.h"
#include "Uart_Vcom.h"
#include "OTA_H.h"
extern unsigned int gBaudrate;
extern void my_APP(u32 appxaddr);
uint8_t hid_rec_index;
@ -212,7 +213,16 @@ void SCI2_Init(uint32_t pclk, uint32_t bound,uint8_t parity)
NVIC_Init(0, 0, SCI2_IRQn, 2);
}
void SCI3_Init(uint32_t pclk, uint32_t bound,uint8_t parity)
{
u32 band_rate=0;
SCI3->SCIBRDF=(((pclk*8/bound)+1)/2)&0x003f;
band_rate =(pclk*4/bound)>>6;
SCI3->SCIBDH=(u8)((band_rate>>8)&0x00ff);
SCI3->SCIBDL=(u8)(band_rate&0x00ff);
SCI3->SCICR2 |= (1<<2)|(1<<3)|(1<<5)|(1 << 4);
NVIC_Init(0, 0, SCI3_IRQn, 2);
}
int fputc(int ch, FILE *f)
{
while ((SCI1->SCISR1 & 0x40) == 0x00)
@ -313,10 +323,18 @@ void SCI1_IRQHandler(void)
extern unsigned char app_flag;
/******************************************************************/
extern uint8_t Rx_Buffer_short[256] ;
extern uint8_t Rx_Buffer_short[512] ;
extern uint16_t Rx_Count_short ;
unsigned int page = 0;
unsigned int ui_offset=0;
unsigned char last_flag=0;
unsigned short block = 0;
unsigned int number1 =0;
unsigned int number =0;
//unsigned int time = 0;
unsigned char flash[2050] = {0};
int main(void)
{
// printf("***app!!**\r\n");
@ -334,16 +352,20 @@ int main(void)
Sys_Init();
Enable_Interrupts;
SCI1_Init(g_ips_clk,921600 ,0); //115200
SCI1_Init(g_ips_clk,921600 ,0); //115200 921600
// SCI2_Init(g_ips_clk, 115200,0);
// SCI3_Init(g_ips_clk,921600 ,0);
/********************升级*******************/
ota_address = LT_APP;
// APP(APP_ADDR); //21KB
Make_CRC32_Table();
ota_address = 0x08010000;
printf("***bootloader!!**\r\n");
SCI3_DMA_Init(g_ips_clk,921600);
printf("***bootloader1!!**\r\n");
// APP(APP_ADDR); //21KB
// SCI3_DMA_Init(g_ips_clk,115200);
SCI3_DMA_Init(g_ips_clk,921600);//921600
unsigned short i = 0;
// APP(APP2_ADDR);
#if 0
@ -1000,6 +1022,76 @@ int main(void)
// }
#endif
#if 0
unsigned char flash[256]={0};
unsigned char flash1[256]={0};
unsigned char flash2[256]={0};
unsigned char flash3[512]={0};
unsigned char flash4[512]={0};
for(unsigned int i = 0 ; i < 256 ; i++)
{
flash[i] = 6;
}
// W25N01GV_Erase_Block(0);//W25N01GV_Erase_Block(0x200000/131072);
for(unsigned int i = 0 ; i < 256 ; i++)
{
printf(" %x" , flash1[i]);
}
W25N01GV_ReadPageAddr_Data(flash1,0,0,256); //W25N01GV_ReadPageAddr_Data(flash1,0,0x200000/2048,256);
printf("\r\n--------Erase---------------\r\n");
for(unsigned int i = 0 ; i < 256 ; i++)
{
printf(" %x" , flash1[i]);
}
W25N01GV_ReadPageAddr_Data(flash1,256,0,256); //W25N01GV_ReadPageAddr_Data(flash1,256,0x200000/2048,256);
printf("\r\n--------Erase---------------\r\n");
for(unsigned int i = 0 ; i < 256 ; i++)
{
printf(" %x" , flash1[i]);
}
W25N01GV_ReadPageAddr_Data(flash3,0,0,512); //W25N01GV_ReadPageAddr_Data(flash3,0,0x200000/2048,512);
printf("\r\n--------Erase---------------\r\n");
for(unsigned int i = 0 ; i < 512 ; i++)
{
printf(" %x" , flash3[i]);
}
//写入
W25N01GV_WritePageAddr_Data(flash,0,0,256); //W25N01GV_WritePageAddr_Data(flash,0,0x200000/2048,256);
//读取
W25N01GV_ReadPageAddr_Data(flash1,0,0,256); //W25N01GV_ReadPageAddr_Data(flash1,0,0x200000/2048,256);
printf("\r\n-----------write--flash1----------\r\n");
for(unsigned int i = 0 ; i < 256 ; i++)
{
printf(" %x" , flash1[i]);
}
printf("\r\n-----------write---flash2---------\r\n");
W25N01GV_WritePageAddr_Data(flash,256,0,256); // W25N01GV_WritePageAddr_Data(flash,256,0x200000/2048,256);
W25N01GV_ReadPageAddr_Data(flash2,256,0,256); // W25N01GV_ReadPageAddr_Data(flash2,256,0x200000/2048,256);
for(unsigned int i = 0 ; i < 256 ; i++)
{
printf(" %x" , flash2[i]);
}
printf("\r\n-----------write---flash3---------\r\n");
W25N01GV_ReadPageAddr_Data(flash3,0,0,512);//W25N01GV_ReadPageAddr_Data(flash3,0,0x200000/2048,512);
for(unsigned int i = 0 ; i < 512 ; i++)
{
printf(" %x" , flash3[i]);
}
printf("\r\n-----------write---flash4---------\r\n");
W25N01GV_ReadPageAddr_Data(flash4,512,0,512);//W25N01GV_ReadPageAddr_Data(flash4,512,0x200000/2048,512);
for(unsigned int i = 0 ; i < 512 ; i++)
{
printf(" %x" , flash4[i]);
}
#endif
//W25N01GV_Erase_Block(0);
while(1)
{
@ -1008,6 +1100,8 @@ int main(void)
// DelayMS(500);
if(ota_lt7689_flag==1)
{
WDT_FeedDog();
if((Rx_Buffer_short[0]==0xA5)&&
(Rx_Buffer_short[1]==0x5A)&&
(Rx_Buffer_short[2]==0x08)&&
@ -1034,41 +1128,143 @@ int main(void)
printf("enter APP2_ADDR!\r\n");
APP(APP2_ADDR);
}
#if 0
// printf("length:%d\r\n",ui_buf_length);
for(unsigned int i = 0 ; i < Rx_Count_short; i++)
{
ui_buf[i+ui_buf_length]=Rx_Buffer_short[i];
}
ui_buf_length += Rx_Count_short;
printf("ui=%d\r\n",ui_buf_length);
if(ui_buf_length==2048)//||(ui_buf_length==662)
{
#if 0
W25N01GV_Erase_Block(0);
printf("erase0\r\n");
W25N01GV_Erase_Block(1);
printf("erase1\r\n");
WDT_FeedDog();
W25N01GV_WritePageAddr_Data(ui_buf,0,0,ui_buf_length);
printf("Write\r\n");
WDT_FeedDog();
W25N01GV_ReadPageAddr_Data(flash,0,0,ui_buf_length);
printf("Read\r\n");
WDT_FeedDog();
for(unsigned int i = 0 ; i < ui_buf_length; i++)
{
printf(" %x",flash[i]);
}
printf("\r\n");
#endif
if(page%64==0)
{
printf("erase:%d\r\n",block);
W25N01GV_Erase_Block(block);
block++;
}
printf("page:%d length:%d\r\n",page,ui_buf_length);
W25N01GV_WritePageAddr_Data(ui_buf,0,page,ui_buf_length);
// for(unsigned int i = 0 ; i < ui_buf_length ; i++)
// {
// printf(" %x",ui_buf[i]);
// }
// printf("\r\n");
ui_buf_length=0;
page++;
}
#endif
#if 0
// 块擦除 每64页(128KB)的时候擦除下一块
if(page%64==0)
{
printf("block=%d\r\n",block);
W25N01GV_Erase_Block(1);
block++;
}
//写入 到2048(2KB)的时候 换页
// W25N01GV_Erase_Block(0);
// if(ui_offset%2048==0)
// {
//
// W25N01GV_Erase_Block(page);
// printf("erase\r\n");
// }
printf("%d %d %d\r\n",ui_offset,Rx_Count_short,page);
// ota_ui(page , Rx_Buffer_short ,Rx_Count_short,ui_offset);
// W25N01GV_WritePageAddr_Data(Rx_Buffer_short,ui_offset,page,Rx_Count_short);
// W25N01GV_ReadPageAddr_Data(flash,ui_offset,page,Rx_Count_short);
printf("OTA\r\n");
for(unsigned short i = 0 ; i < Rx_Count_short ; i++)
{
printf(" %x",Rx_Buffer_short[i]);//Rx_Buffer_short flash
}
printf("\r\n");
if(ui_offset==2048)
{
printf("enter 2048 \r\n");
page++;
ui_offset=0;
}
ui_offset+=Rx_Count_short;
Rx_Count_short=0;
printf("end %d %d %d\r\n",ui_offset,Rx_Count_short,page);
#endif
// for(i=0 ; i<256 ;i++)
// {
// printf("%x ",Rx_Buffer_short[i]);
// }
// printf("\r\n");
// if(Rx_Count_short<256)
// {
// printf("end number=%d Rx_Count_short=%d\r\n",number1,Rx_Count_short);
// }
#if 0 //OTA BIN-core
ota_offset = Rx_Count_short;
// printf("ota_address %x\r\n",ota_address);// 256 0x8010000
// printf("Rx_Count_short %d\r\n",Rx_Count_short);
// ota_lt7689(Rx_Buffer_short,Rx_Count_short,ota_address);
printf("\r\n");
printf("start:%x length:%d \r\n",ota_address,Rx_Count_short);
ota_lt7689(Rx_Buffer_short,Rx_Count_short,ota_address);
// for(unsigned int i =0 ; i < Rx_Count_short; i++)// Rx_Count_short ota_lt7689_length1
// {
// ota_lt7689_buf[ota_lt7689_length++]=0;
// printf(" %x",ota_lt7689_buf1[i]);
// printf("%x ",Rx_Buffer_short[i]);
// Rx_Buffer_short[i] = 0;
// }
printf("\r\n");
// printf("number:%d",number);
// ota_address += ota_offset;
// printf("end:%x\r\n",ota_address);
// printf("----------\r\n");
// ota_lt7689_length1=0;
ota_address += ota_offset;
if(ota_offset<256)
{
printf("\r\n");
printf("end number:%d\r\n",number);
// printf("end number:%d\r\n",number);
APP(APP_ADDR);
}
#endif
number+=Rx_Count_short;
for(unsigned short i = 0 ; i < Rx_Count_short; i++)
{
printf(" %x",Rx_Buffer_short[i]);
}
printf("\r\n");
Rx_Count_short=0;
ota_lt7689_flag=0;
printf("number=%d\r\n",number);
}

+ 88
- 44
User/ota.c Просмотреть файл

@ -8,9 +8,11 @@
#include "usb_drv.h"
#include "usb_const.h"
#include "meg.h"
#include "Flash.h"
#include "wdt_drv.h"
/****************test************************/
extern unsigned int number ;
extern unsigned int number1 ;
unsigned int ota_lt7689(unsigned char * updata_p,unsigned int length , unsigned int flash_addr)
{
@ -23,14 +25,14 @@ unsigned int ota_lt7689(unsigned char * updata_p,unsigned int length , unsigned
}
unsigned int ota_ui(unsigned int addr , unsigned char * ota_lt_buf , unsigned int length)
unsigned int ota_ui(unsigned int addr , unsigned char * ota_lt_buf , unsigned int length,unsigned short offset)//2048
{
for(unsigned char i=0;i<1;i++)
{
// for(unsigned char i=0;i<1;i++)
// {
// pWrBuf = &(vcom_buf[id][i*2048]);
// pageAddr = (vcom_rp[id].wrAddr+i*2048)/2048;
// W25N01GV_WritePageAddr_Data(pWrBuf,0,pageAddr,2048);
}
W25N01GV_WritePageAddr_Data(ota_lt_buf,offset,addr,length);
// }
return 0;
}
@ -40,6 +42,8 @@ unsigned int ota_ui(unsigned int addr , unsigned char * ota_lt_buf , unsigned in
/*For debug */
uint8_t Rx_Buffer_short[512] = {0}; //256
uint16_t Rx_Count_short = 0;
unsigned char ui_buf[2050] = {0};
unsigned int ui_buf_length = 0 ;
#include "dmac_drv.h"
#define Uart_Channel 2 //DMA channel
@ -163,11 +167,54 @@ void SCI3_DMA_Init(unsigned int pclk,unsigned int bound)
dma_uartRX(SCI3,Uart_Channel, Rx_Buffer_short,256);
}
void SCI1_IRQHandler(void)
//void SCI1_IRQHandler(void)
//{
// uint16_t tmp,ret;
// uint8_t clear_idle_flag;
// UART_TypeDef *UARTx=SCI1;
// //UART_Enter idle interrupt
// if(UARTx->SCISR1 & SCISR1_IDLE_MASK) //The receiver is idle
// {
// //清除标志位
// while((UARTx->SCIFSR&SCIFSR_REMPTY_MASK) == 0) //FIFO not empty, Wait for the received data to be transmitted to DMA
// {
// if( UARTx->SCIFSR& (SCIFSR_RFULL_MASK|SCIFSR_RTOS_MASK) ) //FIFO overflow??receive time-out
// {
// break;
// }
// }
// tmp = UARTx->SCIDRL;
// UARTx->SCIFCR2 |= SCIFCR2_RXFCLR;
// Rx_Count_short = DMA_uart_GetRecvLen(UARTx,Uart_Channel);
//// gUsartRx.Flag = 1;
// printf("len:%d\r\n",Rx_Count_short);
// // SCI3->SCICR2 |= SCICR2_RE_MASK;
// // SCI3->SCIDCR |= SCIDCR_RXDMAE_MASK; //Uart_DMA enable
//// for(unsigned char i = 0 ; i < Rx_Count_short;i++ )
//// {
//// printf(" %x ",Rx_Buffer_short[i]);
//// }
//// number1++;
// dma_uartRX(UARTx,Uart_Channel, Rx_Buffer_short,256);
// ota_lt7689_flag=1;
//
// clear_idle_flag = SCI1->SCIDRL;
// clear_idle_flag = SCI1->SCISR1;
// }
//}
// SCI3 DMA
void SCI3_IRQHandler(void)
{
uint16_t tmp,ret;
uint8_t clear_idle_flag;
UART_TypeDef *UARTx=SCI1;
UART_TypeDef *UARTx=SCI3;
//UART_Enter idle interrupt
if(UARTx->SCISR1 & SCISR1_IDLE_MASK) //The receiver is idle
@ -186,7 +233,7 @@ void SCI1_IRQHandler(void)
UARTx->SCIFCR2 |= SCIFCR2_RXFCLR;
Rx_Count_short = DMA_uart_GetRecvLen(UARTx,Uart_Channel);
// gUsartRx.Flag = 1;
gUsartRx.Flag = 1;
printf("len:%d\r\n",Rx_Count_short);
// SCI3->SCICR2 |= SCICR2_RE_MASK;
// SCI3->SCIDCR |= SCIDCR_RXDMAE_MASK; //Uart_DMA enable
@ -194,53 +241,50 @@ void SCI1_IRQHandler(void)
// {
// printf(" %x ",Rx_Buffer_short[i]);
// }
number++;
number1+=Rx_Count_short;
// Rx_Count_short=0;
dma_uartRX(UARTx,Uart_Channel, Rx_Buffer_short,256);
ota_lt7689_flag=1;
clear_idle_flag = SCI1->SCIDRL;
clear_idle_flag = SCI1->SCISR1;
if(Rx_Count_short<256)
printf("number1=%d\r\n",number1);
}
}
#if 0
// SCI3 接收/空闲中断
void SCI3_IRQHandler(void)
{
uint16_t tmp,ret;
uint8_t clear_idle_flag;
UART_TypeDef *UARTx=SCI3;
// uint8_t ch = 0;
// printf("SCI3!\r\n");
WDT_FeedDog();
if ((SCI3->SCISR1 & 0x20) == 0x20)
{
// Rx_Buffer_short[Rx_Count_short++]=SCI3->SCIDRL;
ui_buf[ui_buf_length++]=SCI3->SCIDRL;
// ch = SCI3->SCIDRL;
number1++;
}
if((SCI3->SCISR1 & 0x10) == 0x10) //空闲中断
{
//UART_Enter idle interrupt
if(UARTx->SCISR1 & SCISR1_IDLE_MASK) //The receiver is idle
{
//清除标志位
unsigned char clear_idle_flag;
clear_idle_flag = SCI3->SCIDRL;
clear_idle_flag = SCI3->SCISR1;
if(ui_buf_length==2048)
{
ui_buf_length=0;
}
// ota_lt7689_flag=1;
printf("number1=%d\r\n",number1);
while((UARTx->SCIFSR&SCIFSR_REMPTY_MASK) == 0) //FIFO not empty, Wait for the received data to be transmitted to DMA
{
if( UARTx->SCIFSR& (SCIFSR_RFULL_MASK|SCIFSR_RTOS_MASK) ) //FIFO overflow??receive time-out
{
break;
}
}
tmp = UARTx->SCIDRL;
UARTx->SCIFCR2 |= SCIFCR2_RXFCLR;
Rx_Count_short = DMA_uart_GetRecvLen(UARTx,Uart_Channel);
// gUsartRx.Flag = 1;
printf("len:%d\r\n",Rx_Count_short);
// SCI3->SCICR2 |= SCICR2_RE_MASK;
// SCI3->SCIDCR |= SCIDCR_RXDMAE_MASK; //Uart_DMA enable
// for(unsigned char i = 0 ; i < Rx_Count_short;i++ )
// {
// printf(" %x ",Rx_Buffer_short[i]);
// }
number++;
dma_uartRX(UARTx,Uart_Channel, Rx_Buffer_short,256);
ota_lt7689_flag=1;
clear_idle_flag = SCI1->SCIDRL;
clear_idle_flag = SCI1->SCISR1;
}
}
#endif
}

Загрузка…
Отмена
Сохранить