Browse Source

BootLoader CRC Index 추가 / Header 파일에 CRC 관련 Lib 추가 / Uart1 Lib Header 추가 / Signal 담당 지역변수 전역변수로 변경 / Uart Timer Delay 30ms 변경

YJ 6 years ago
parent
commit
fe193ae646

BIN
Debug/STM32F103_ATTEN_PLL_Zig.elf


File diff suppressed because it is too large
+ 469 - 473
Debug/STM32F103_ATTEN_PLL_Zig.hex


File diff suppressed because it is too large
+ 2817 - 2843
Debug/STM32F103_ATTEN_PLL_Zig.list


File diff suppressed because it is too large
+ 449 - 444
Debug/STM32F103_ATTEN_PLL_Zig.map


+ 1 - 0
Inc/Bootloader.h

@@ -50,6 +50,7 @@ typedef enum{
50 50
     bluecell_stx = 0,
51 51
     bluecell_type = 1,
52 52
     bluecell_length,
53
+	bluecell_CrcIndex,
53 54
     bluecell_crc,
54 55
     bluecell_ext,   
55 56
 }FirmwareUpdate_t;

+ 2 - 0
Inc/CRC16.h

@@ -18,4 +18,6 @@ typedef enum{
18 18
 
19 19
 uint16_t CRC16_Generate(uint8_t *buf_ptr, int32_t len);
20 20
 etError CRC16_Check(uint8_t *buf_ptr, int32_t len,uint16_t checksum);
21
+uint8_t STH30_CreateCrc(uint8_t *data, uint8_t nbrOfBytes);
22
+uint8_t STH30_CreateCrc(uint8_t *data, uint8_t nbrOfBytes);
21 23
 #endif /* CRC16_H_ */

+ 1 - 1
Inc/uart.h

@@ -31,5 +31,5 @@ void InitUartQueue(pUARTQUEUE pQueue);
31 31
 void GetDataFromUartQueue(UART_HandleTypeDef *huart);
32 32
 bool Get_UartRcv(void);
33 33
 void Set_UartRcv(bool);
34
-
34
+void Uart1_Data_Send(uint8_t* data,uint8_t size);
35 35
 #endif /* UART_H_ */

+ 9 - 9
Src/Bootloader.c

@@ -13,31 +13,31 @@ uint16_t updatecnt = 0;
13 13
 #define Bluecell_BootStart 0x0b
14 14
 
15 15
 
16
+uint8_t BootStartdata[6] = {0xbe,Bluecell_BootStart,0x03,4,0,0xeb};
16 17
 void Firmware_BootStart_Signal(){
17
-    uint8_t bootdata[5] = {0xbe,Bluecell_BootStart,0x02,0,0xeb};
18
-    bootdata[bluecell_crc] = STH30_CreateCrc(&bootdata[bluecell_type],bootdata[bluecell_length]);
19
-    Uart1_Data_Send(&bootdata[bluecell_stx],bootdata[bluecell_length] + 3); 
18
+	BootStartdata[bluecell_crc] = STH30_CreateCrc(&BootStartdata[bluecell_type],BootStartdata[bluecell_length]);
19
+    Uart1_Data_Send(&BootStartdata[bluecell_stx],BootStartdata[bluecell_length] + 3);
20 20
 }
21 21
 
22
+    uint8_t AckData_Buf[6] = {0xbe,FirmwareUpdataAck,0x03,5,0,0xbe};
22 23
 void FirmwareUpdateStart(uint8_t* data){
23 24
     uint8_t ret = 0,crccheck = 0;
24
-    uint8_t tempdata[5] = {0xbe,FirmwareUpdataAck,0x02,0,0xbe};
25 25
     crccheck = STH30_CheckCrc(&data[bluecell_type],data[bluecell_length],data[data[bluecell_length] + 1]);
26 26
     if(crccheck == NO_ERROR){
27
-        tempdata[bluecell_type] = FirmwareUpdataAck;
27
+        AckData_Buf[bluecell_type] = FirmwareUpdataAck;
28 28
         if(data[bluecell_type] == 0xDD || data[bluecell_type] == 0xEE)//Start Firmware byte
29 29
             ret = Flash_write(&data[0]);
30 30
         if(ret == 1)
31
-            tempdata[bluecell_type] = FirmwareUpdataNak;
31
+            AckData_Buf[bluecell_type] = FirmwareUpdataNak;
32 32
     }else{
33 33
         for(uint8_t i = 0; i < data[bluecell_length] + 3; i++)
34 34
             printf("%02x ",data[i]);
35 35
         printf("Check Sum error \n");
36
-        tempdata[bluecell_type] = FirmwareUpdataNak;
36
+        AckData_Buf[bluecell_type] = FirmwareUpdataNak;
37 37
     }
38
-    tempdata[bluecell_crc] = STH30_CreateCrc(&tempdata[bluecell_type],tempdata[bluecell_length]);
38
+    AckData_Buf[bluecell_crc] = STH30_CreateCrc(&AckData_Buf[bluecell_type],AckData_Buf[bluecell_length]);
39 39
     if(data[bluecell_type] != 0xEE && data[bluecell_type] != Bluecell_Reset){
40
-        Uart1_Data_Send(&tempdata[bluecell_stx],tempdata[bluecell_length] + 3); 
40
+        Uart1_Data_Send(&AckData_Buf[bluecell_stx],AckData_Buf[bluecell_length] + 3);
41 41
     }
42 42
     if(data[bluecell_type] == 0xEE)
43 43
         printf("update Complete \n");

+ 1 - 1
Src/main.c

@@ -135,7 +135,7 @@ int main(void)
135 135
   {
136 136
 	 // printf("Uart Start \r\n");
137 137
 	  if(LedTimerCnt > 500){HAL_GPIO_TogglePin(BOOT_LED_GPIO_Port,GPIO_PIN_14);LedTimerCnt = 0;}
138
-	  while (TerminalQueue.data > 0 && UartTimerCnt > 10) GetDataFromUartQueue(&hTerminal);
138
+	  while (TerminalQueue.data > 0 && UartTimerCnt > 30) GetDataFromUartQueue(&hTerminal);
139 139
       while(FirmwareTimerCnt > 3000)  Jump_App();
140 140
 
141 141
 	  //HAL_Delay(500);

+ 2 - 2
Src/uart.c

@@ -67,7 +67,7 @@ void GetDataFromUartQueue(UART_HandleTypeDef *huart)
67 67
     pQueue->data--;
68 68
     
69 69
     if(pQueue->data == 0){
70
-        HAL_UART_Transmit_DMA(dst, &temp_buf[BLUECELL_HEADER00], 11);
70
+        //HAL_UART_Transmit_DMA(dst, &temp_buf[BLUECELL_HEADER00], 11);
71 71
 #if 0 // PYJ.2019.07.15_BEGIN -- 
72 72
 //            for(int i = 0; i < cnt; i++){
73 73
 //                printf("%02x",update_data_buf[i]);
@@ -86,6 +86,6 @@ void GetDataFromUartQueue(UART_HandleTypeDef *huart)
86 86
 }
87 87
 
88 88
 void Uart1_Data_Send(uint8_t* data,uint8_t size){
89
-    HAL_UART_Transmit(&huart1, data,size, 10); 
89
+	HAL_UART_Transmit_DMA(&huart1, data,size);
90 90
 }
91 91
 

BIN
insight/STM32F103_ATTEN_PLL_Zig.si4project/STM32F103_ATTEN_PLL_Zig.sip_xm


BIN
insight/STM32F103_ATTEN_PLL_Zig.si4project/cache/parse/.._.._Inc_main.h.sisc


BIN
insight/STM32F103_ATTEN_PLL_Zig.si4project/cache/parse/.._.._Inc_stm32f1xx_hal_conf.h.sisc


BIN
insight/STM32F103_ATTEN_PLL_Zig.si4project/cache/parse/.._.._Inc_stm32f1xx_it.h.sisc


BIN
insight/STM32F103_ATTEN_PLL_Zig.si4project/cache/parse/.._.._Src_main.c.sisc


BIN
insight/STM32F103_ATTEN_PLL_Zig.si4project/cache/parse/.._.._Src_stm32f1xx_hal_msp.c.sisc


BIN
insight/STM32F103_ATTEN_PLL_Zig.si4project/cache/parse/.._.._Src_stm32f1xx_it.c.sisc


BIN
insight/STM32F103_ATTEN_PLL_Zig.si4project/cache/parse/.._.._Src_system_stm32f1xx.c.sisc