Browse Source

Настройка USART

TelenkovDmitry 1 week ago
parent
commit
514e6a9ee3

File diff suppressed because it is too large
+ 499 - 489
project/ewarm/desk/desk.dep


BIN
project/ewarm/robot/Debug/Exe/robot.out


BIN
project/ewarm/robot/Debug/Exe/robot.sim


+ 247 - 163
project/ewarm/robot/Debug/List/robot.map

@@ -1,6 +1,6 @@
 ###############################################################################
 #
-# IAR ELF Linker V8.40.1.212/W32 for ARM                  28/Jul/2025  18:29:11
+# IAR ELF Linker V8.40.1.212/W32 for ARM                  28/Jul/2025  18:56:26
 # Copyright 2007-2019 IAR Systems AB.
 #
 #    Output file  =
@@ -8,7 +8,7 @@
 #    Map file     =
 #        D:\FlyElectronics\tuber\project\ewarm\robot\Debug\List\robot.map
 #    Command line =
-#        -f C:\Temp\EWAE43.tmp
+#        -f C:\Temp\EWA5EE.tmp
 #        (D:\FlyElectronics\tuber\project\ewarm\robot\Debug\Obj\main.o
 #        D:\FlyElectronics\tuber\project\ewarm\robot\Debug\Obj\startup_stm32g030xx.o
 #        D:\FlyElectronics\tuber\project\ewarm\robot\Debug\Obj\stm32g0xx_hal.o
@@ -68,7 +68,8 @@
 #        --map D:\FlyElectronics\tuber\project\ewarm\robot\Debug\List\robot.map
 #        --config
 #        D:\FlyElectronics\tuber\project\ewarm\robot/stm32g030xx_flash.icf
-#        --semihosting --entry __iar_program_start --vfe --text_out locale)
+#        --debug_heap --bounds_table_size 1000 --semihosting --entry
+#        __iar_program_start --vfe --text_out locale)
 #
 ###############################################################################
 
@@ -76,21 +77,21 @@
 *** RUNTIME MODEL ATTRIBUTES
 ***
 
-CppFlavor        = *
-__CPP_Exceptions = Disabled
-__CPP_Language   = C++14
-__SystemLibrary  = DLib
-__dlib_version   = 6
+CppFlavor         = *
+__CPP_Exceptions  = Disabled
+__CPP_Language    = C++14
+__Heap_Handler    = DLMalloc
+__SystemLibrary   = DLib
+__dlib_version    = 6
+__iar_rtc_bounds  = 1
+__iar_rtc_support = 1
 
 
 *******************************************************************************
 *** HEAP SELECTION
 ***
 
-The basic heap was selected because no calls to memory allocation
-functions were found in the application outside of system library
-functions, and there are calls to deallocation functions in the
-application.
+The debug heap was selected because of --debug_heap.
 
 
 *******************************************************************************
@@ -105,86 +106,99 @@ define block HEAP with size = 256, alignment = 8 { };
           rw, block CSTACK, block HEAP };
 initialize by copy { rw };
 
-  Section            Kind         Address   Size  Object
-  -------            ----         -------   ----  ------
-"A0":                                       0xc0
-  .intvec            ro code   0x800'0000   0xc0  startup_stm32g030xx.o [1]
-                             - 0x800'00c0   0xc0
-
-"P1":                                      0xbfa
-  .text              ro code   0x800'00c0  0x6e0  stm32g0xx_hal_rcc.o [1]
-  .text              ro code   0x800'07a0    0xc  stm32g0xx_hal.o [1]
-  .text              ro code   0x800'07ac   0xae  I32DivModFast.o [3]
-  .text              ro code   0x800'085a    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'085c   0x5c  stm32g0xx_hal.o [1]
-  .text              ro code   0x800'08b8    0x2  IntDivZer.o [3]
-  .text              ro code   0x800'08ba    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'08bc   0xe0  stm32g0xx_hal_cortex.o [1]
-  .text              ro code   0x800'099c   0x90  main.o [1]
-  .text              ro code   0x800'0a2c   0x2c  stm32g0xx_hal.o [1]
-  .text              ro code   0x800'0a58   0x14  memset.o [3]
-  .text              ro code   0x800'0a6c   0x54  stm32g0xx_hal_pwr_ex.o [1]
-  .text              ro code   0x800'0ac0   0x34  stm32g0xx_hal_msp.o [1]
-  .text              ro code   0x800'0af4   0x4e  ABImemset.o [3]
-  .text              ro code   0x800'0b42    0x2  startup_stm32g030xx.o [1]
-  .rodata            const     0x800'0b44   0x40  system_stm32g0xx.o [1]
-  .text              ro code   0x800'0b84   0x30  copy_init3.o [3]
-  .text              ro code   0x800'0bb4   0x28  data_init.o [3]
-  .iar.init_table    const     0x800'0bdc   0x14  - Linker created -
-  .text              ro code   0x800'0bf0   0x1e  cmain.o [3]
-  .text              ro code   0x800'0c0e    0x4  low_level_init.o [2]
-  .text              ro code   0x800'0c12    0x8  exit.o [2]
-  .text              ro code   0x800'0c1a    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0c1c    0xa  cexit.o [3]
-  .text              ro code   0x800'0c26    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0c28   0x14  exit.o [4]
-  .text              ro code   0x800'0c3c   0x18  stm32g0xx_hal.o [1]
-  .text              ro code   0x800'0c54   0x12  stm32g0xx_it.o [1]
-  .text              ro code   0x800'0c66    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0c68   0x10  startup_stm32g030xx.o [1]
-  Initializer bytes  const     0x800'0c78   0x10  <for P2-1>
-  .rodata            const     0x800'0c88    0x1  unwind_debug.o [4]
-  .text              ro code   0x800'0c8a    0xc  cstartup_M.o [3]
-  .text              ro code   0x800'0c96    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0c98    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0c9a    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0c9c    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0c9e    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0ca0    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0ca2    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0ca4    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0ca6    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0ca8    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0caa    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0cac    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0cae    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0cb0    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0cb2    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0cb4    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0cb6    0x2  startup_stm32g030xx.o [1]
-  .text              ro code   0x800'0cb8    0x2  system_stm32g0xx.o [1]
-  .rodata            const     0x800'0cba    0x0  copy_init3.o [3]
-                             - 0x800'0cba  0xbfa
-
-"P2", part 1 of 2:                          0x10
-  P2-1                        0x2000'0000    0xd  <Init block>
-    .data            inited   0x2000'0000    0x4  stm32g0xx_hal.o [1]
-    .data            inited   0x2000'0004    0x4  system_stm32g0xx.o [1]
-    .bss             inited   0x2000'0008    0x4  stm32g0xx_hal.o [1]
-    .data            inited   0x2000'000c    0x1  stm32g0xx_hal.o [1]
-                            - 0x2000'000d    0xd
-
-"P2", part 2 of 2:                         0x400
-  CSTACK                      0x2000'0010  0x400  <Block>
-    CSTACK           uninit   0x2000'0010  0x400  <Block tail>
-                            - 0x2000'0410  0x400
+  Section                 Kind         Address    Size  Object
+  -------                 ----         -------    ----  ------
+"A0":                                             0xc0
+  .intvec                 ro code   0x800'0000    0xc0  startup_stm32g030xx.o [1]
+                                  - 0x800'00c0    0xc0
+
+"P1":                                           0x1273
+  .text                   ro code   0x800'00c0   0x9fc  stm32g0xx_hal_rcc.o [1]
+  .text                   ro code   0x800'0abc    0x76  as_check.o [2]
+  .text                   ro code   0x800'0b32     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'0b34     0xc  stm32g0xx_hal.o [1]
+  .text                   ro code   0x800'0b40    0xae  I32DivModFast.o [5]
+  .text                   ro code   0x800'0bee     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'0bf0    0x64  stm32g0xx_hal.o [1]
+  .text                   ro code   0x800'0c54    0x82  debug_dlmalloc.o [2]
+  .text                   ro code   0x800'0cd6     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'0cd8    0x10  rtc_report.o [6]
+  .text                   ro code   0x800'0ce8     0x2  IntDivZer.o [5]
+  .text                   ro code   0x800'0cea     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'0cec    0xe0  stm32g0xx_hal_cortex.o [1]
+  .text                   ro code   0x800'0dcc   0x15c  debug_heap_helpers.o [2]
+  .text                   ro code   0x800'0f28    0xb0  main.o [1]
+  .text                   ro code   0x800'0fd8    0x30  stm32g0xx_hal.o [1]
+  .text                   ro code   0x800'1008    0x40  memset.as.o [3]
+  .text                   ro code   0x800'1048    0x58  stm32g0xx_hal_pwr_ex.o [1]
+  .text                   ro code   0x800'10a0    0x34  stm32g0xx_hal_msp.o [1]
+  .text                   ro code   0x800'10d4    0x14  memset.o [5]
+  .text                   ro code   0x800'10e8    0x4e  ABImemset.o [5]
+  .text                   ro code   0x800'1136     0x2  startup_stm32g030xx.o [1]
+  .rodata                 const     0x800'1138    0x40  system_stm32g0xx.o [1]
+  .text                   ro code   0x800'1178    0x3c  zero_init3.o [5]
+  .text                   ro code   0x800'11b4    0x30  copy_init3.o [5]
+  Initializer bytes       const     0x800'11e4    0x2c  <for P2-1>
+  .text                   ro code   0x800'1210     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'1214    0x28  data_init.o [5]
+  .iar.init_table         const     0x800'123c    0x24  - Linker created -
+  .text                   const     0x800'1260    0x20  debug_heap_helpers.o [2]
+  .text                   ro code   0x800'1280    0x1e  cmain.o [5]
+  .text                   ro code   0x800'129e     0x4  low_level_init.o [4]
+  .text                   ro code   0x800'12a2     0x8  exit.o [4]
+  .text                   ro code   0x800'12aa     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'12ac     0xa  cexit.o [5]
+  .text                   ro code   0x800'12b6     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'12b8    0x14  exit.o [6]
+  .text                   ro code   0x800'12cc    0x18  stm32g0xx_hal.o [1]
+  .text                   ro code   0x800'12e4    0x12  stm32g0xx_it.o [1]
+  .text                   ro code   0x800'12f6     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'12f8    0x10  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'1308     0xc  cstartup_M.o [5]
+  .text                   ro code   0x800'1314     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'1316     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'1318     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'131a     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'131c     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'131e     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'1320     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'1322     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'1324     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'1326     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'1328     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'132a     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'132c     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'132e     0x2  startup_stm32g030xx.o [1]
+  .text                   ro code   0x800'1330     0x2  system_stm32g0xx.o [1]
+  .rodata                 const     0x800'1332     0x1  unwind_debug.o [6]
+  .rodata                 const     0x800'1333     0x0  zero_init3.o [5]
+  .rodata                 const     0x800'1333     0x0  copy_init3.o [5]
+                                  - 0x800'1333  0x1273
+
+"P2", part 1 of 3:                                0x2c
+  P2-1                             0x2000'0000    0x29  <Init block>
+    .data                 inited   0x2000'0000     0x4  stm32g0xx_hal.o [1]
+    .data                 inited   0x2000'0004     0x4  system_stm32g0xx.o [1]
+    .data                 inited   0x2000'0008    0x20  debug_dlmalloc.o [2]
+    .data                 inited   0x2000'0028     0x1  stm32g0xx_hal.o [1]
+                                 - 0x2000'0029    0x29
+
+"P2", part 2 of 3:                               0x1dc
+  .iar.debug_malloc_data  zero     0x2000'002c   0x1d8  debug_dlmalloc.o [2]
+  .bss                    zero     0x2000'0204     0x4  stm32g0xx_hal.o [1]
+                                 - 0x2000'0208   0x1dc
+
+"P2", part 3 of 3:                               0x400
+  CSTACK                           0x2000'0208   0x400  <Block>
+    CSTACK                uninit   0x2000'0208   0x400  <Block tail>
+                                 - 0x2000'0608   0x400
 
 Unused ranges:
 
          From           To    Size
          ----           --    ----
-   0x800'0cba   0x800'7fff  0x7346
-  0x2000'0410  0x2000'1fff  0x1bf0
+   0x800'1333   0x800'7fff  0x6ccd
+  0x2000'0608  0x2000'1fff  0x19f8
 
 
 *******************************************************************************
@@ -193,11 +207,15 @@ Unused ranges:
 
           Address      Size
           -------      ----
+Zero (__iar_zero_init3)
+    1 destination range, total size 0x1dc:
+          0x2000'002c  0x1dc
+
 Copy (__iar_copy_init3)
-    1 source range, total size 0x10 (123% of destination):
-           0x800'0c78  0x10
-    1 destination range, total size 0xd:
-          0x2000'0000   0xd
+    1 source range, total size 0x2c (107% of destination):
+           0x800'11e4   0x2c
+    1 destination range, total size 0x29:
+          0x2000'0000   0x29
 
 
 
@@ -212,25 +230,37 @@ command line/config:
     Total:
 
 D:\FlyElectronics\tuber\project\ewarm\robot\Debug\Obj: [1]
-    main.o                      144
+    main.o                      176
     startup_stm32g030xx.o       254
-    stm32g0xx_hal.o             172        9        9
+    stm32g0xx_hal.o             184        5        9
     stm32g0xx_hal_cortex.o      224
     stm32g0xx_hal_msp.o          52
-    stm32g0xx_hal_pwr_ex.o       84
-    stm32g0xx_hal_rcc.o       1'760
+    stm32g0xx_hal_pwr_ex.o       88
+    stm32g0xx_hal_rcc.o       2'556
     stm32g0xx_it.o               18
     system_stm32g0xx.o            2       68        4
     -------------------------------------------------
-    Total:                    2'710       77       13
+    Total:                    3'554       73       13
+
+as4l.a: [2]
+    as_check.o                  118
+    debug_dlmalloc.o            130       32      504
+    debug_heap_helpers.o        348       32
+    -------------------------------------------------
+    Total:                      596       64      504
 
-dl6M_tln.a: [2]
+as_wp4l.a: [3]
+    memset.as.o                  64
+    -------------------------------------------------
+    Total:                       64
+
+dl6M_tln.a: [4]
     exit.o                        8
     low_level_init.o              4
     -------------------------------------------------
     Total:                       12
 
-rt6M_tl.a: [3]
+rt6M_tl.a: [5]
     ABImemset.o                  78
     I32DivModFast.o             174
     IntDivZer.o                   2
@@ -240,19 +270,21 @@ rt6M_tl.a: [3]
     cstartup_M.o                 12
     data_init.o                  40
     memset.o                     20
+    zero_init3.o                 60
     -------------------------------------------------
-    Total:                      414
+    Total:                      474
 
-shb_l.a: [4]
+shb_l.a: [6]
     exit.o                       20
+    rtc_report.o                 16
     unwind_debug.o                         1
     -------------------------------------------------
-    Total:                       20        1
+    Total:                       36        1
 
-    Gaps                          1
-    Linker created                        23    1'024
+    Gaps                          2
+    Linker created                        39    1'024
 -----------------------------------------------------
-    Grand Total:              3'157      101    1'037
+    Grand Total:              4'738      177    1'541
 
 
 *******************************************************************************
@@ -261,77 +293,129 @@ shb_l.a: [4]
 
 Entry                       Address   Size  Type      Object
 -----                       -------   ----  ----      ------
-.iar.init_table$$Base    0x800'0bdc          --   Gb  - Linker created -
-.iar.init_table$$Limit   0x800'0bf0          --   Gb  - Linker created -
-?main                    0x800'0bf1         Code  Gb  cmain.o [3]
-AHBPrescTable            0x800'0b44   0x40  Data  Gb  system_stm32g0xx.o [1]
-CSTACK$$Base            0x2000'0010          --   Gb  - Linker created -
-CSTACK$$Limit           0x2000'0410          --   Gb  - Linker created -
-Error_Handler()          0x800'0a27    0x6  Code  Gb  main.o [1]
-HAL_GetTick              0x800'07a1    0xc  Code  Wk  stm32g0xx_hal.o [1]
-HAL_IncTick              0x800'0c3d   0x18  Code  Wk  stm32g0xx_hal.o [1]
-HAL_Init                 0x800'0a2d   0x28  Code  Gb  stm32g0xx_hal.o [1]
-HAL_InitTick             0x800'085d   0x5c  Code  Wk  stm32g0xx_hal.o [1]
-HAL_MspInit              0x800'0ac1   0x34  Code  Gb  stm32g0xx_hal_msp.o [1]
-HAL_NVIC_SetPriority     0x800'0977    0xa  Code  Gb  stm32g0xx_hal_cortex.o [1]
+.iar.init_table$$Base    0x800'123c          --   Gb  - Linker created -
+.iar.init_table$$Limit   0x800'1260          --   Gb  - Linker created -
+?main                    0x800'1281         Code  Gb  cmain.o [5]
+AHBPrescTable            0x800'1138   0x40  Data  Gb  system_stm32g0xx.o [1]
+CSTACK$$Base            0x2000'0208          --   Gb  - Linker created -
+CSTACK$$Limit           0x2000'0608          --   Gb  - Linker created -
+DHC_allocated_fill      0x2000'0014    0x4  Data  Lc  debug_dlmalloc.o [2]
+DHC_block_guard         0x2000'0008    0x4  Data  Lc  debug_dlmalloc.o [2]
+DHC_block_id_counter    0x2000'000c    0x4  Data  Lc  debug_dlmalloc.o [2]
+DHC_freed_fill          0x2000'0018    0x4  Data  Lc  debug_dlmalloc.o [2]
+DHC_initial_fill        0x2000'001c    0x4  Data  Lc  debug_dlmalloc.o [2]
+DHC_integrity_error_limit
+                        0x2000'0024    0x4  Data  Lc  debug_dlmalloc.o [2]
+DHC_request_limit       0x2000'0020    0x4  Data  Lc  debug_dlmalloc.o [2]
+DHC_unallocated_fill    0x2000'0010    0x4  Data  Lc  debug_dlmalloc.o [2]
+Error_Handler()          0x800'0fd3    0x6  Code  Gb  main.o [1]
+HAL_GetTick              0x800'0b35    0xc  Code  Wk  stm32g0xx_hal.o [1]
+HAL_IncTick              0x800'12cd   0x18  Code  Wk  stm32g0xx_hal.o [1]
+HAL_Init                 0x800'0fd9   0x2a  Code  Gb  stm32g0xx_hal.o [1]
+HAL_InitTick             0x800'0bf1   0x64  Code  Wk  stm32g0xx_hal.o [1]
+HAL_MspInit              0x800'10a1   0x34  Code  Gb  stm32g0xx_hal_msp.o [1]
+HAL_NVIC_SetPriority     0x800'0d97   0x14  Code  Gb  stm32g0xx_hal_cortex.o [1]
 HAL_PWREx_ControlVoltageScaling
-                         0x800'0a6d   0x3e  Code  Gb  stm32g0xx_hal_pwr_ex.o [1]
-HAL_RCC_ClockConfig      0x800'053d  0x178  Code  Gb  stm32g0xx_hal_rcc.o [1]
+                         0x800'1049   0x42  Code  Gb  stm32g0xx_hal_pwr_ex.o [1]
+HAL_RCC_ClockConfig [with bounds]
+                         0x800'07b1         Code  Gb  stm32g0xx_hal_rcc.o [1]
 HAL_RCC_GetSysClockFreq
-                         0x800'06cd   0x9c  Code  Gb  stm32g0xx_hal_rcc.o [1]
-HAL_RCC_OscConfig        0x800'00c1  0x460  Code  Gb  stm32g0xx_hal_rcc.o [1]
-HAL_SYSTICK_Config       0x800'0981    0x8  Code  Gb  stm32g0xx_hal_cortex.o [1]
-HardFault_Handler        0x800'0c57    0x4  Code  Gb  stm32g0xx_it.o [1]
-NMI_Handler              0x800'0c55    0x2  Code  Gb  stm32g0xx_it.o [1]
-PendSV_Handler           0x800'0c5d    0x2  Code  Gb  stm32g0xx_it.o [1]
-Region$$Table$$Base      0x800'0bdc          --   Gb  - Linker created -
-Region$$Table$$Limit     0x800'0bf0          --   Gb  - Linker created -
-SVC_Handler              0x800'0c5b    0x2  Code  Gb  stm32g0xx_it.o [1]
-SysTick_Handler          0x800'0c5f    0x8  Code  Gb  stm32g0xx_it.o [1]
-SystemClock_Config()     0x800'09b3   0x74  Code  Gb  main.o [1]
+                         0x800'09d9   0xb2  Code  Gb  stm32g0xx_hal_rcc.o [1]
+HAL_RCC_OscConfig [with bounds]
+                         0x800'00c1         Code  Gb  stm32g0xx_hal_rcc.o [1]
+HAL_SYSTICK_Config       0x800'0dab    0xc  Code  Gb  stm32g0xx_hal_cortex.o [1]
+HardFault_Handler        0x800'12e7    0x4  Code  Gb  stm32g0xx_it.o [1]
+NMI_Handler              0x800'12e5    0x2  Code  Gb  stm32g0xx_it.o [1]
+PendSV_Handler           0x800'12ed    0x2  Code  Gb  stm32g0xx_it.o [1]
+Region$$Table$$Base      0x800'123c          --   Gb  - Linker created -
+Region$$Table$$Limit     0x800'1260          --   Gb  - Linker created -
+SVC_Handler              0x800'12eb    0x2  Code  Gb  stm32g0xx_it.o [1]
+SysTick_Config           0x800'0d65   0x32  Code  Lc  stm32g0xx_hal_cortex.o [1]
+SysTick_Handler          0x800'12ef    0x8  Code  Gb  stm32g0xx_it.o [1]
+SystemClock_Config()     0x800'0f3f   0x94  Code  Gb  main.o [1]
 SystemCoreClock         0x2000'0004    0x4  Data  Gb  system_stm32g0xx.o [1]
-SystemInit               0x800'0cb9    0x2  Code  Gb  system_stm32g0xx.o [1]
-[local to stm32g0xx_hal_cortex_c]::SysTick_Config(unsigned int)
-                         0x800'0947   0x30  Code  Lc  stm32g0xx_hal_cortex.o [1]
-[local to stm32g0xx_hal_cortex_c]::__NVIC_SetPriority(IRQn_Type, unsigned int)
-                         0x800'08bd   0x8a  Code  Lc  stm32g0xx_hal_cortex.o [1]
+SystemInit               0x800'1331    0x2  Code  Gb  system_stm32g0xx.o [1]
 __ICFEDIT_region_RAM_end__ {Abs}
                         0x2000'1fff         Data  Gb  <internal module>
 __ICFEDIT_region_RAM_start__ {Abs}
                         0x2000'0000         Data  Gb  <internal module>
-__aeabi_idiv0            0x800'08b9         Code  Gb  IntDivZer.o [3]
-__aeabi_memset           0x800'0af5         Code  Gb  ABImemset.o [3]
-__aeabi_uidiv            0x800'07ad         Code  Gb  I32DivModFast.o [3]
-__aeabi_uidivmod         0x800'07ad         Code  Gb  I32DivModFast.o [3]
-__cmain                  0x800'0bf1         Code  Gb  cmain.o [3]
-__exit                   0x800'0c29   0x14  Code  Gb  exit.o [4]
-__iar_Memset4_word       0x800'0b15         Code  Gb  ABImemset.o [3]
-__iar_Memset_word        0x800'0b01         Code  Gb  ABImemset.o [3]
-__iar_copy_init3         0x800'0b85   0x30  Code  Gb  copy_init3.o [3]
-__iar_data_init3         0x800'0bb5   0x28  Code  Gb  data_init.o [3]
-__iar_debug_exceptions   0x800'0c88    0x1  Data  Gb  unwind_debug.o [4]
-__iar_program_start      0x800'0c8b         Code  Gb  cstartup_M.o [3]
-__low_level_init         0x800'0c0f    0x4  Code  Gb  low_level_init.o [2]
+__NVIC_SetPriority       0x800'0ced   0x78  Code  Lc  stm32g0xx_hal_cortex.o [1]
+__aeabi_idiv0            0x800'0ce9         Code  Gb  IntDivZer.o [5]
+__aeabi_memset           0x800'10e9         Code  Gb  ABImemset.o [5]
+__aeabi_uidiv            0x800'0b41         Code  Gb  I32DivModFast.o [5]
+__aeabi_uidivmod         0x800'0b41         Code  Gb  I32DivModFast.o [5]
+__as_check_fail          0x800'0b19    0x6  Code  Gb  as_check.o [2]
+__as_check_fail_pc_2     0x800'0b05    0xc  Code  Gb  as_check.o [2]
+__as_check_fail_pc_impl
+                         0x800'0abd   0x48  Code  Lc  as_check.o [2]
+__cmain                  0x800'1281         Code  Gb  cmain.o [5]
+__exit                   0x800'12b9   0x14  Code  Gb  exit.o [6]
+__iar_DHC_allocated_fill {Abs}
+                        0x4fbc'8397         Data  Gb  <internal module>
+__iar_DHC_block_guard {Abs}
+                        0x960f'7e4b         Data  Gb  <internal module>
+__iar_DHC_check_frequency {Abs}
+                                0x0         Data  Gb  <internal module>
+__iar_DHC_delayed_free_limit {Abs}
+                                0x0         Data  Gb  <internal module>
+__iar_DHC_freed_fill {Abs}
+                        0xfc44'223f         Data  Gb  <internal module>
+__iar_DHC_initial_fill {Abs}
+                        0x31ef'29e5         Data  Gb  <internal module>
+__iar_DHC_integrity_error_limit {Abs}
+                                0xa         Data  Gb  <internal module>
+__iar_DHC_request_limit {Abs}
+                        0x4000'0000         Data  Gb  <internal module>
+__iar_DHC_unallocated_fill {Abs}
+                        0x1784'322b         Data  Gb  <internal module>
+__iar_Memset4_word       0x800'1109         Code  Gb  ABImemset.o [5]
+__iar_Memset_word        0x800'10f5         Code  Gb  ABImemset.o [5]
+__iar_ReportCheckFailed
+                         0x800'0cd9    0xa  Code  Gb  rtc_report.o [6]
+__iar_copy_init3         0x800'11b5   0x30  Code  Gb  copy_init3.o [5]
+__iar_data_init3         0x800'1215   0x28  Code  Gb  data_init.o [5]
+__iar_debug_exceptions   0x800'1332    0x1  Data  Gb  unwind_debug.o [6]
+__iar_debug_heap_check_guard_offset
+                         0x800'0dcd   0x2a  Code  Gb  debug_heap_helpers.o [2]
+__iar_debug_heap_check_header_guard
+                         0x800'0df7   0x30  Code  Gb  debug_heap_helpers.o [2]
+__iar_debug_heap_verify_block_integrity
+                         0x800'0e27   0x96  Code  Gb  debug_heap_helpers.o [2]
+__iar_debug_is_heap_block
+                         0x800'0c79   0x4e  Code  Gb  debug_dlmalloc.o [2]
+__iar_dh_crc             0x800'0ebd   0x40  Code  Gb  debug_heap_helpers.o [2]
+__iar_dh_subtract_header_offset
+                         0x800'0f1d    0x4  Code  Gb  debug_heap_helpers.o [2]
+__iar_dh_verify_crc      0x800'0efd   0x20  Code  Gb  debug_heap_helpers.o [2]
+__iar_program_start      0x800'1309         Code  Gb  cstartup_M.o [5]
+__iar_zero_init3         0x800'1179   0x3c  Code  Gb  zero_init3.o [5]
+__low_level_init         0x800'129f    0x4  Code  Gb  low_level_init.o [4]
 __vector_table           0x800'0000         Data  Gb  startup_stm32g030xx.o [1]
-_call_main               0x800'0bfd         Code  Gb  cmain.o [3]
-_exit                    0x800'0c1d         Code  Gb  cexit.o [3]
-_main                    0x800'0c0b         Code  Gb  cmain.o [3]
-exit                     0x800'0c13    0x8  Code  Gb  exit.o [2]
-main                     0x800'099d   0x16  Code  Gb  main.o [1]
-memset                   0x800'0a59   0x14  Code  Gb  memset.o [3]
-uwTick                  0x2000'0008    0x4  Data  Gb  stm32g0xx_hal.o [1]
-uwTickFreq              0x2000'000c    0x1  Data  Gb  stm32g0xx_hal.o [1]
+_call_main               0x800'128d         Code  Gb  cmain.o [5]
+_exit                    0x800'12ad         Code  Gb  cexit.o [5]
+_gm_                    0x2000'002c  0x1d8  Data  Lc  debug_dlmalloc.o [2]
+_main                    0x800'129b         Code  Gb  cmain.o [5]
+address_in_heap          0x800'0c55   0x24  Code  Lc  debug_dlmalloc.o [2]
+crc16_table              0x800'1260   0x20  Data  Lc  debug_heap_helpers.o [2]
+exit                     0x800'12a3    0x8  Code  Gb  exit.o [4]
+main                     0x800'0f29   0x16  Code  Gb  main.o [1]
+memset                   0x800'10d5   0x14  Code  Gb  memset.o [5]
+memset [with bounds]     0x800'1009         Code  Gb  memset.as.o [3]
+uwTick                  0x2000'0204    0x4  Data  Gb  stm32g0xx_hal.o [1]
+uwTickFreq              0x2000'0028    0x1  Data  Gb  stm32g0xx_hal.o [1]
 uwTickPrio              0x2000'0000    0x4  Data  Gb  stm32g0xx_hal.o [1]
 
 
 [1] = D:\FlyElectronics\tuber\project\ewarm\robot\Debug\Obj
-[2] = dl6M_tln.a
-[3] = rt6M_tl.a
-[4] = shb_l.a
-
-  3'157 bytes of readonly  code memory
-    101 bytes of readonly  data memory
-  1'037 bytes of readwrite data memory
+[2] = as4l.a
+[3] = as_wp4l.a
+[4] = dl6M_tln.a
+[5] = rt6M_tl.a
+[6] = shb_l.a
+
+  4'738 bytes of readonly  code memory
+    177 bytes of readonly  data memory
+  1'541 bytes of readwrite data memory
 
 Errors: none
 Warnings: none

File diff suppressed because it is too large
+ 449 - 258
project/ewarm/robot/robot.dep


+ 17 - 10
project/ewarm/robot/robot.ewp

@@ -44,21 +44,21 @@
                 </option>
                 <option>
                     <name>OGCoreOrChip</name>
-                    <state>0</state>
+                    <state>1</state>
                 </option>
                 <option>
                     <name>GRuntimeLibSelect</name>
                     <version>0</version>
-                    <state>1</state>
+                    <state>2</state>
                 </option>
                 <option>
                     <name>GRuntimeLibSelectSlave</name>
                     <version>0</version>
-                    <state>1</state>
+                    <state>2</state>
                 </option>
                 <option>
                     <name>RTDescription</name>
-                    <state>Use the normal configuration of the C/C++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.</state>
+                    <state>Use the full configuration of the C/C++ runtime library. Full locale interface, C locale, file descriptor support, multibytes in printf and scanf, and hex floats in strtod.</state>
                 </option>
                 <option>
                     <name>OGProductVersion</name>
@@ -78,7 +78,7 @@
                 </option>
                 <option>
                     <name>OGChipSelectEditMenu</name>
-                    <state>STM32G070CB	ST STM32G070CB</state>
+                    <state>STM32G070RB	ST STM32G070RB</state>
                 </option>
                 <option>
                     <name>GenLowLevelInterface</name>
@@ -112,7 +112,7 @@
                 </option>
                 <option>
                     <name>RTConfigPath2</name>
-                    <state>$TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h</state>
+                    <state>$TOOLKIT_DIR$\inc\c\DLib_Config_Full.h</state>
                 </option>
                 <option>
                     <name>GBECoreSlave</name>
@@ -138,7 +138,7 @@
                 </option>
                 <option>
                     <name>GFPUDeviceSlave</name>
-                    <state>STM32G070CB	ST STM32G070CB</state>
+                    <state>STM32G070RB	ST STM32G070RB</state>
                 </option>
                 <option>
                     <name>FPU2</name>
@@ -354,6 +354,7 @@
                     <state>$PROJ_DIR$/../../../robot/user</state>
                     <state>$PROJ_DIR$/../../../robot/modules</state>
                     <state>$PROJ_DIR$/../../../robot/modules/configs</state>
+                    <state>$PROJ_DIR$/../../../robot/modules/usart</state>
                     <state>$PROJ_DIR$/../../../robot/libs/stm32/hal/Inc</state>
                     <state>$PROJ_DIR$/../../../robot/libs/stm32/cmsis</state>
                 </option>
@@ -371,7 +372,7 @@
                 </option>
                 <option>
                     <name>CCOptLevel</name>
-                    <state>1</state>
+                    <state>0</state>
                 </option>
                 <option>
                     <name>CCOptStrategy</name>
@@ -380,7 +381,7 @@
                 </option>
                 <option>
                     <name>CCOptLevelSlave</name>
-                    <state>1</state>
+                    <state>0</state>
                 </option>
                 <option>
                     <name>CompilerMisraRules98</name>
@@ -406,7 +407,7 @@
                 </option>
                 <option>
                     <name>IccLang</name>
-                    <state>1</state>
+                    <state>2</state>
                 </option>
                 <option>
                     <name>IccCDialect</name>
@@ -2289,6 +2290,12 @@
     </group>
     <group>
         <name>modules</name>
+        <group>
+            <name>usart</name>
+            <file>
+                <name>$PROJ_DIR$\..\..\..\robot\modules\usart\usart.cpp</name>
+            </file>
+        </group>
     </group>
     <group>
         <name>user</name>

+ 8 - 2
project/ewarm/robot/robot.ewt

@@ -1116,11 +1116,11 @@
                 <debug>1</debug>
                 <option>
                     <name>GenRtcDebugHeap</name>
-                    <state>0</state>
+                    <state>1</state>
                 </option>
                 <option>
                     <name>GenRtcEnableBoundsChecking</name>
-                    <state>0</state>
+                    <state>1</state>
                 </option>
                 <option>
                     <name>GenRtcCheckPtrsNonInstrMem</name>
@@ -2539,6 +2539,12 @@
     </group>
     <group>
         <name>modules</name>
+        <group>
+            <name>usart</name>
+            <file>
+                <name>$PROJ_DIR$\..\..\..\robot\modules\usart\usart.cpp</name>
+            </file>
+        </group>
     </group>
     <group>
         <name>user</name>

+ 6 - 0
project/ewarm/robot/settings/robot.Debug.driver.xcl

@@ -4,8 +4,14 @@
 
 "--fpu=None" 
 
+"-p" 
+
+"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.3\arm\CONFIG\debugger\ST\STM32G070RB.ddf" 
+
 "--semihosting" 
 
+"--device=STM32G070RB" 
+
 "--drv_interface=SWD" 
 
 "--stlink_reset_strategy=0,0" 

+ 4 - 0
project/ewarm/robot/settings/robot.Debug.general.xcl

@@ -6,6 +6,10 @@
 
 --plugin="C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.3\arm\bin\armbat.dll" 
 
+--device_macro="C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.3\arm\config\debugger\ST\STM32G0xx.dmac" 
+
+--flash_loader="C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.3\arm\config\flashloader\ST\FlashSTM32G08xxB.board" 
+
 
 
 

File diff suppressed because it is too large
+ 2 - 0
project/ewarm/robot/settings/robot.dbgdt


+ 3 - 2
project/ewarm/robot/settings/robot.dnx

@@ -54,7 +54,7 @@
         <LeaveTargetRunning>_ 0</LeaveTargetRunning>
     </StLinkDriver>
     <DebugChecksum>
-        <Checksum>1673768241</Checksum>
+        <Checksum>669534708</Checksum>
     </DebugChecksum>
     <Exceptions>
         <StopOnUncaught>_ 0</StopOnUncaught>
@@ -86,7 +86,8 @@
     </DisassembleMode>
     <Breakpoints2>
         <Bp0>_ 1 "EMUL_CODE" "{$PROJ_DIR$\..\..\..\robot\libs\stm32\hal\Src\stm32g0xx_hal_rcc.c}.358.13" 0 0 1 "" 0 "" 0</Bp0>
-        <Count>1</Count>
+        <Bp1>_ 1 "EMUL_CODE" "{$PROJ_DIR$\..\..\..\robot\user\main.cpp}.14.5" 0 0 1 "" 0 "" 0</Bp1>
+        <Count>2</Count>
     </Breakpoints2>
     <Aliases>
         <Count>0</Count>

+ 39 - 0
robot/modules/usart/usart.cpp

@@ -0,0 +1,39 @@
+#include "stm32g0xx_hal.h"
+#include "usart.h"
+
+
+void init_usart(void)
+{
+    GPIO_InitTypeDef GPIO_InitStruct;
+    
+    USART_BRIDGE_TX_PORT_CLK_ENABLE
+    USART_BRIDGE_RX_PORT_CLK_ENABLE  
+  
+    GPIO_InitStruct.Pin       = USART_BRIDGE_TX_PIN;
+    GPIO_InitStruct.Mode      = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull      = GPIO_PULLUP;
+    GPIO_InitStruct.Speed     = GPIO_SPEED_HIGH;
+    GPIO_InitStruct.Alternate = USART_BRIDGE_AF;
+    HAL_GPIO_Init(USART_BRIDGE_TX_PORT, &GPIO_InitStruct);
+      
+    GPIO_InitStruct.Pin       = USART_BRIDGE_RX_PIN;
+    HAL_GPIO_Init(USART_BRIDGE_RX_PORT, &GPIO_InitStruct);  
+      
+
+    USART_BRIDGE_CLK_ENABLE
+
+    uart.Instance           = USART_BRIDGE_USART;
+    uart.Init.BaudRate      = USART_BRIDGE_SPEED;
+    uart.Init.WordLength    = UART_WORDLENGTH_8B;
+    uart.Init.StopBits      = UART_STOPBITS_1;
+    uart.Init.Parity        = UART_PARITY_NONE;
+    uart.Init.Mode          = UART_MODE_TX_RX;
+    uart.Init.HwFlowCtl     = UART_HWCONTROL_NONE;
+    uart.Init.OverSampling  = UART_OVERSAMPLING_8;
+    uart.Init.OneBitSampling= UART_ONE_BIT_SAMPLE_DISABLE;
+    HAL_UART_Init(&uart);
+
+    HAL_NVIC_SetPriority(USART_BRIDGE_IRQn, 6, 0);
+    HAL_NVIC_EnableIRQ(USART_BRIDGE_IRQn);
+    HAL_UART_Receive_IT(&uart, (uint8_t*)&m_uartByte, 1);
+}

+ 8 - 0
robot/modules/usart/usart.h

@@ -0,0 +1,8 @@
+#ifndef __USART_H
+#define __USART_H
+
+
+void init_usart(void);
+
+
+#endif // __USART_H

+ 1 - 1
robot/user/main.cpp

@@ -1,5 +1,5 @@
 #include "stm32g0xx_hal.h"
-
+#include "usart.h"
 
 void SystemClock_Config(void);
 void Error_Handler(void);

Some files were not shown because too many files changed in this diff