ryankurte / efm32-base

Base project for Silicon Labs EFM32 microcontrollers
89 stars 33 forks source link

EFM32HG Dev Kit #4

Closed Brando753 closed 7 years ago

Brando753 commented 7 years ago

I seem to be having some problems getting the sample blinky program to run on this board I created a new repo and added efm32-base as the submodule, copied the CMakeList file and updated it to use the EFM32HG322F64 device and updated it to point to the new efm32-base location. I copied over the source directory and only modified the macros to look like:

#ifndef LED_PIN
#define LED_PIN     4
#endif
#ifndef LED_PORT
#define LED_PORT    gpioPortF
#endif

which should be the EFM32HG kits correct port and pin for one of the two led's. I then created a build directory ran cmake .. followed by make and make flash (using the Jlink configuration) and it uploads to the board; the problem is however is the board will not blink the light as expected. Cmake:

➜  build git:(master) ✗ cmake ..
CMake Deprecation Warning at /usr/share/cmake-3.7/Modules/CMakeForceCompiler.cmake:69 (message):
  The CMAKE_FORCE_C_COMPILER macro is deprecated.  Instead just set
  CMAKE_C_COMPILER and allow CMake to identify the compiler.
Call Stack (most recent call first):
  efm32-base/toolchain/arm-gcc.cmake:15 (CMAKE_FORCE_C_COMPILER)
  CMakeLists.txt:20 (include)

CMake Deprecation Warning at /usr/share/cmake-3.7/Modules/CMakeForceCompiler.cmake:83 (message):
  The CMAKE_FORCE_CXX_COMPILER macro is deprecated.  Instead just set
  CMAKE_CXX_COMPILER and allow CMake to identify the compiler.
Call Stack (most recent call first):
  efm32-base/toolchain/arm-gcc.cmake:16 (CMAKE_FORCE_CXX_COMPILER)
  CMakeLists.txt:20 (include)

-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/arm-none-eabi-g++
Device: EFM32HG322F64
Processor: EFM32HG322F64
Family: EFM32HG
No FLASH_START defined. Using default: 0x00000000
-- Configuring done
-- Generating done
-- Build files have been written to: /home/brandon/workspace/temp_tracker/build

make:

➜  build git:(master) ✗ make
Scanning dependencies of target emlib
[  2%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_acmp.c.obj
[  4%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_adc.c.obj
[  7%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_aes.c.obj
[  9%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_assert.c.obj
[ 11%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_burtc.c.obj
[ 14%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_cmu.c.obj
[ 16%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_crc.c.obj
[ 19%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_cryotimer.c.obj
[ 21%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_crypto.c.obj
[ 23%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_dac.c.obj
[ 26%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_dbg.c.obj
[ 28%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_dma.c.obj
[ 30%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_ebi.c.obj
[ 33%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_emu.c.obj
[ 35%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_gpio.c.obj
[ 38%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_i2c.c.obj
[ 40%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_idac.c.obj
[ 42%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_int.c.obj
[ 45%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_lcd.c.obj
[ 47%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_ldma.c.obj
[ 50%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_lesense.c.obj
[ 52%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_letimer.c.obj
[ 54%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_leuart.c.obj
[ 57%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_mpu.c.obj
[ 59%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_msc.c.obj
[ 61%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_opamp.c.obj
[ 64%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_pcnt.c.obj
[ 66%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_prs.c.obj
[ 69%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_rmu.c.obj
[ 71%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_rtc.c.obj
[ 73%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_rtcc.c.obj
[ 76%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_system.c.obj
[ 78%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_timer.c.obj
[ 80%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_usart.c.obj
[ 83%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_vcmp.c.obj
[ 85%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_wdog.c.obj
[ 88%] Linking C static library libemlib.a
[ 88%] Built target emlib
Scanning dependencies of target device
[ 90%] Building ASM object CMakeFiles/device.dir/efm32-base/device/EFM32HG/Source/GCC/startup_efm32hg.S.obj
[ 92%] Building C object CMakeFiles/device.dir/efm32-base/device/EFM32HG/Source/system_efm32hg.c.obj
[ 95%] Linking C static library libdevice.a
[ 95%] Built target device
Scanning dependencies of target temp_tracker
[ 97%] Building C object CMakeFiles/temp_tracker.dir/source/main.c.obj
[100%] Linking C executable temp_tracker
collect2 version 5.4.1 20160919
/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld -plugin /usr/lib/gcc/arm-none-eabi/5.4.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/arm-none-eabi/5.4.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cc2w5dHs.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lg_nano -plugin-opt=-pass-through=-lc_nano -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc_nano -X -o temp_tracker /usr/lib/gcc/arm-none-eabi/5.4.1/armv7-m/crti.o /usr/lib/gcc/arm-none-eabi/5.4.1/armv7-m/crtbegin.o /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/lib/armv7-m/crt0.o -L/usr/lib/gcc/arm-none-eabi/5.4.1/armv7-m -L/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/lib/armv7-m -L/usr/lib/gcc/arm-none-eabi/5.4.1 -L/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/lib -T/home/brandon/workspace/temp_tracker/build/efm32hg.ld -Map=temp_tracker.map --gc-sections -v CMakeFiles/temp_tracker.dir/source/main.c.obj libdevice.a libemlib.a -lgcc -lc_nano -lnosys -lgcc -lc_nano -lnosys --start-group -lgcc -lg_nano -lc_nano --end-group --start-group -lgcc -lc_nano --end-group /usr/lib/gcc/arm-none-eabi/5.4.1/armv7-m/crtend.o /usr/lib/gcc/arm-none-eabi/5.4.1/armv7-m/crtn.o
GNU ld (2.27-9+9) 2.27
   text    data     bss     dec     hex filename
  10476     120     196   10792    2a28 temp_tracker
[100%] Built target temp_tracker

and make flash:

➜  build git:(master) ✗ make flash
[  7%] Built target device
[ 95%] Built target emlib
[100%] Built target temp_tracker
Scanning dependencies of target flash
SEGGER J-Link Commander V6.14h (Compiled May 10 2017 18:39:45)
DLL version V6.14h, compiled May 10 2017 18:39:37

Script file read successfully.
Processing script file...

J-Link connection not established yet but required for command.
Connecting to J-Link via USB...O.K.
Firmware: Silicon Labs J-Link OB compiled Apr  6 2017 16:11:45
Hardware version: V1.00
S/N: 440047451
VTref = 3.297V

Target connection not established yet but required for command.
Device "EFM32HG322F64" selected.

Found SW-DP with ID 0x0BC11477
Found SW-DP with ID 0x0BC11477
No AP preselected. Assuming that AP[0] is the AHB-AP
AP-IDR: 0x04770031, Type: AHB-AP
AHB-AP ROM: 0xF00FF000 (Base addr. of first ROM table)
Found Cortex-M0 r0p1, Little endian.
FPUnit: 4 code (BP) slots and 0 literal slots
CoreSight components:
ROMTbl[0] @ F00FF000
ROMTbl[0][0]: E00FF000, CID: B105100D, PID: 000BB4C0 ROM Table
ROMTbl[1] @ E00FF000
ROMTbl[1][0]: E000E000, CID: B105E00D, PID: 000BB008 SCS
ROMTbl[1][1]: E0001000, CID: B105E00D, PID: 000BB00A DWT
ROMTbl[1][2]: E0002000, CID: B105E00D, PID: 000BB00B FPB
ROMTbl[0][1]: F0040000, CID: B105900D, PID: 001BB932 MTB-M0+
Cortex-M0 identified.
PC = 00002090, CycleCnt = 00000000
R0 = 00000000, R1 = E000ED00, R2 = 200009C8, R3 = 00000004
R4 = 00000004, R5 = 40002000, R6 = 20001FBC, R7 = 00000D39
R8 = 00000000, R9 = 02000000, R10= 1FFF2000, R11= 00000000
R12= 4000A000
SP(R13)= 20001FA0, MSP= 20001FA0, PSP= 00000000, R14(LR) = 00002A9F
XPSR = 61000000: APSR = nZCvq, EPSR = 01000000, IPSR = 000 (NoException)
CFBP = 00000000, CONTROL = 00, FAULTMASK = 00, BASEPRI = 00, PRIMASK = 00

Downloading file [temp_tracker.bin]...
Comparing flash   [100%] Done.
Erasing flash     [100%] Done.
Programming flash [100%] Done.
Verifying flash   [100%] Done.
J-Link: Flash download: Flash programming performed for 1 range (11264 bytes)
J-Link: Flash download: Total time needed: 0.602s (Prepare: 0.071s, Compare: 0.009s, Erase: 0.271s, Program: 0.237s, Verify: 0.001s, Restore: 0.011s)
O.K.

Loading binary file temp_tracker.bin
Reading 10596 bytes data from target memory @ 0x00000000.
Verify successful.

Reset delay: 0 ms
Reset type NORMAL: Resets core & peripherals via SYSRESETREQ & VECTRESET bit.

Script processing completed.

[100%] Built target flash

So the first thing I think to do is alright spin up the debugger so I create two shells, one I run cmake debug-server and the other I run make debug in GDB I run monitor reset halt followed by break main followed by continue however it never breaks.

Output of make debug-server:

 ➜  build git:(master) ✗ make debug-server 
[  7%] Built target device
[ 95%] Built target emlib
[100%] Built target temp_tracker
Scanning dependencies of target debug-server
SEGGER J-Link GDB Server V6.14h Command Line Version

JLinkARM.dll V6.14h (DLL compiled May 10 2017 18:39:37)

-----GDB Server start settings-----
GDBInit file:                  none
GDB Server Listening port:     2331
SWO raw output listening port: 2332
Terminal I/O port:             2333
Accept remote connection:      yes
Generate logfile:              off
Verify download:               off
Init regs on start:            off
Silent mode:                   off
Single run mode:               off
Target connection timeout:     0 ms
------J-Link related settings------
J-Link Host interface:         USB
J-Link script:                 none
J-Link settings file:          none
------Target related settings------
Target device:                 EFM32HG322F64
Target interface:              SWD
Target interface speed:        4000kHz
Target endian:                 little

Connecting to J-Link...
J-Link is connected.
Firmware: Silicon Labs J-Link OB compiled Apr  6 2017 16:11:45
Hardware: V1.00
S/N: 440047451
Checking target voltage...
Target voltage: 3.30 V
Listening on TCP/IP port 2331
Connecting to target...Connected to target
Waiting for GDB connection...Connected to 127.0.0.1
Reading all registers
Read 2 bytes @ address 0x000003D6 (Data = 0xF7FF)
Read 2 bytes @ address 0x000003D6 (Data = 0xF7FF)
Read 2 bytes @ address 0x000003D6 (Data = 0xF7FF)
Read 4 bytes @ address 0x00000460 (Data = 0x46C0E7FE)
Setting breakpoint @ address 0x000003D6, Size = 2, BPHandle = 0x0001
Starting target CPU...

I also tried deleting build and recreating it with both the commands cmake -DCMAKE_BUILD_TYPE=Debug .. and cmake -DCMAKE_CXX_FLAGS_DEBUG=-g3 -DCMAKE_BUILD_TYPE=Debug .. followed by rebuilding and reflashing however that made no difference. Any ideas or would be great cause I am not sure where to go from here...

ryankurte commented 7 years ago

The HG is a Cortex-M0, which I don't have / haven't tested. I suspect the compiler / linker options are not configured correctly for the target. It might be that something in the startup script is accessing unaligned memory or using an invalid instruction and causing a hardfault, though usually you would be able to break (or interrupt) the debugger and see that IIRC.

Weird that you're not getting /anything/ from the debugger. Can you dump a line from the output of a make VERBOSE=1 so we can have a look at the command that's actually being called?

Brando753 commented 7 years ago

Yea no problem, I removed build, recreated cmake file and then run make VERBOSE=1:

➜  build git:(master) ✗ make VERBOSE=1                 
/usr/bin/cmake -H/home/brandon/workspace/temp_tracker -B/home/brandon/workspace/temp_tracker/build --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/brandon/workspace/temp_tracker/build/CMakeFiles /home/brandon/workspace/temp_tracker/build/CMakeFiles/progress.marks
make -f CMakeFiles/Makefile2 all
make[1]: Entering directory '/home/brandon/workspace/temp_tracker/build'
make -f CMakeFiles/emlib.dir/build.make CMakeFiles/emlib.dir/depend
make[2]: Entering directory '/home/brandon/workspace/temp_tracker/build'
cd /home/brandon/workspace/temp_tracker/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/brandon/workspace/temp_tracker /home/brandon/workspace/temp_tracker /home/brandon/workspace/temp_tracker/build /home/brandon/workspace/temp_tracker/build /home/brandon/workspace/temp_tracker/build/CMakeFiles/emlib.dir/DependInfo.cmake --color=
Dependee "/home/brandon/workspace/temp_tracker/build/CMakeFiles/emlib.dir/DependInfo.cmake" is newer than depender "/home/brandon/workspace/temp_tracker/build/CMakeFiles/emlib.dir/depend.internal".
Dependee "/home/brandon/workspace/temp_tracker/build/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/home/brandon/workspace/temp_tracker/build/CMakeFiles/emlib.dir/depend.internal".
Scanning dependencies of target emlib
make[2]: Leaving directory '/home/brandon/workspace/temp_tracker/build'
make -f CMakeFiles/emlib.dir/build.make CMakeFiles/emlib.dir/build
make[2]: Entering directory '/home/brandon/workspace/temp_tracker/build'
[  2%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_acmp.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_acmp.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_acmp.c
[  4%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_adc.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_adc.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_adc.c
[  7%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_aes.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_aes.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_aes.c
[  9%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_assert.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_assert.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_assert.c
[ 11%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_burtc.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_burtc.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_burtc.c
[ 14%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_cmu.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_cmu.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_cmu.c
[ 16%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_crc.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_crc.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_crc.c
[ 19%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_cryotimer.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_cryotimer.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_cryotimer.c
[ 21%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_crypto.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_crypto.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_crypto.c
[ 23%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_dac.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_dac.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_dac.c
[ 26%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_dbg.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_dbg.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_dbg.c
[ 28%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_dma.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_dma.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_dma.c
[ 30%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_ebi.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_ebi.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_ebi.c
[ 33%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_emu.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_emu.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_emu.c
[ 35%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_gpio.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_gpio.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_gpio.c
[ 38%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_i2c.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_i2c.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_i2c.c
[ 40%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_idac.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_idac.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_idac.c
[ 42%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_int.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_int.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_int.c
[ 45%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_lcd.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_lcd.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_lcd.c
[ 47%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_ldma.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_ldma.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_ldma.c
[ 50%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_lesense.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_lesense.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_lesense.c
[ 52%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_letimer.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_letimer.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_letimer.c
[ 54%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_leuart.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_leuart.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_leuart.c
[ 57%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_mpu.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_mpu.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_mpu.c
[ 59%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_msc.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_msc.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_msc.c
[ 61%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_opamp.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_opamp.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_opamp.c
[ 64%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_pcnt.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_pcnt.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_pcnt.c
[ 66%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_prs.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_prs.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_prs.c
[ 69%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_rmu.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_rmu.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_rmu.c
[ 71%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_rtc.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_rtc.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_rtc.c
[ 73%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_rtcc.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_rtcc.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_rtcc.c
[ 76%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_system.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_system.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_system.c
[ 78%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_timer.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_timer.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_timer.c
[ 80%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_usart.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_usart.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_usart.c
[ 83%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_vcmp.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_vcmp.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_vcmp.c
[ 85%] Building C object CMakeFiles/emlib.dir/efm32-base/emlib/src/em_wdog.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/emlib.dir/efm32-base/emlib/src/em_wdog.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/emlib/src/em_wdog.c
[ 88%] Linking C static library libemlib.a
/usr/bin/cmake -P CMakeFiles/emlib.dir/cmake_clean_target.cmake
/usr/bin/cmake -E cmake_link_script CMakeFiles/emlib.dir/link.txt --verbose=1
/usr/bin/arm-none-eabi-ar qc libemlib.a  CMakeFiles/emlib.dir/efm32-base/emlib/src/em_acmp.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_adc.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_aes.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_assert.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_burtc.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_cmu.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_crc.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_cryotimer.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_crypto.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_dac.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_dbg.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_dma.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_ebi.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_emu.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_gpio.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_i2c.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_idac.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_int.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_lcd.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_ldma.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_lesense.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_letimer.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_leuart.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_mpu.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_msc.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_opamp.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_pcnt.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_prs.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_rmu.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_rtc.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_rtcc.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_system.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_timer.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_usart.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_vcmp.c.obj CMakeFiles/emlib.dir/efm32-base/emlib/src/em_wdog.c.obj
/usr/bin/arm-none-eabi-ranlib libemlib.a
make[2]: Leaving directory '/home/brandon/workspace/temp_tracker/build'
[ 88%] Built target emlib
make -f CMakeFiles/device.dir/build.make CMakeFiles/device.dir/depend
make[2]: Entering directory '/home/brandon/workspace/temp_tracker/build'
cd /home/brandon/workspace/temp_tracker/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/brandon/workspace/temp_tracker /home/brandon/workspace/temp_tracker /home/brandon/workspace/temp_tracker/build /home/brandon/workspace/temp_tracker/build /home/brandon/workspace/temp_tracker/build/CMakeFiles/device.dir/DependInfo.cmake --color=
Dependee "/home/brandon/workspace/temp_tracker/build/CMakeFiles/device.dir/DependInfo.cmake" is newer than depender "/home/brandon/workspace/temp_tracker/build/CMakeFiles/device.dir/depend.internal".
Dependee "/home/brandon/workspace/temp_tracker/build/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/home/brandon/workspace/temp_tracker/build/CMakeFiles/device.dir/depend.internal".
Scanning dependencies of target device
make[2]: Leaving directory '/home/brandon/workspace/temp_tracker/build'
make -f CMakeFiles/device.dir/build.make CMakeFiles/device.dir/build
make[2]: Entering directory '/home/brandon/workspace/temp_tracker/build'
[ 90%] Building ASM object CMakeFiles/device.dir/efm32-base/device/EFM32HG/Source/GCC/startup_efm32hg.S.obj
/usr/bin/arm-none-eabi-g++  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -x assembler-with-cpp -DLOOP_ADDR=0x8000 -O0 -g -gdwarf-2   -o CMakeFiles/device.dir/efm32-base/device/EFM32HG/Source/GCC/startup_efm32hg.S.obj -c /home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Source/GCC/startup_efm32hg.S
[ 92%] Building C object CMakeFiles/device.dir/efm32-base/device/EFM32HG/Source/system_efm32hg.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/device.dir/efm32-base/device/EFM32HG/Source/system_efm32hg.c.obj   -c /home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Source/system_efm32hg.c
[ 95%] Linking C static library libdevice.a
/usr/bin/cmake -P CMakeFiles/device.dir/cmake_clean_target.cmake
/usr/bin/cmake -E cmake_link_script CMakeFiles/device.dir/link.txt --verbose=1
/usr/bin/arm-none-eabi-ar qc libdevice.a  CMakeFiles/device.dir/efm32-base/device/EFM32HG/Source/GCC/startup_efm32hg.S.obj CMakeFiles/device.dir/efm32-base/device/EFM32HG/Source/system_efm32hg.c.obj
/usr/bin/arm-none-eabi-ranlib libdevice.a
make[2]: Leaving directory '/home/brandon/workspace/temp_tracker/build'
[ 95%] Built target device
make -f CMakeFiles/temp_tracker.dir/build.make CMakeFiles/temp_tracker.dir/depend
make[2]: Entering directory '/home/brandon/workspace/temp_tracker/build'
cd /home/brandon/workspace/temp_tracker/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/brandon/workspace/temp_tracker /home/brandon/workspace/temp_tracker /home/brandon/workspace/temp_tracker/build /home/brandon/workspace/temp_tracker/build /home/brandon/workspace/temp_tracker/build/CMakeFiles/temp_tracker.dir/DependInfo.cmake --color=
Dependee "/home/brandon/workspace/temp_tracker/build/CMakeFiles/temp_tracker.dir/DependInfo.cmake" is newer than depender "/home/brandon/workspace/temp_tracker/build/CMakeFiles/temp_tracker.dir/depend.internal".
Dependee "/home/brandon/workspace/temp_tracker/build/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/home/brandon/workspace/temp_tracker/build/CMakeFiles/temp_tracker.dir/depend.internal".
Scanning dependencies of target temp_tracker
make[2]: Leaving directory '/home/brandon/workspace/temp_tracker/build'
make -f CMakeFiles/temp_tracker.dir/build.make CMakeFiles/temp_tracker.dir/build
make[2]: Entering directory '/home/brandon/workspace/temp_tracker/build'
[ 97%] Building C object CMakeFiles/temp_tracker.dir/source/main.c.obj
/usr/bin/arm-none-eabi-gcc  -DEFM32HG322F64 -I/home/brandon/workspace/temp_tracker/efm32-base/device/EFM32HG/Include -I/home/brandon/workspace/temp_tracker/efm32-base/cmsis/Include -I/home/brandon/workspace/temp_tracker/efm32-base/emlib/inc -I/home/brandon/workspace/temp_tracker/efm32-base/include  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2   -o CMakeFiles/temp_tracker.dir/source/main.c.obj   -c /home/brandon/workspace/temp_tracker/source/main.c
[100%] Linking C executable temp_tracker
/usr/bin/cmake -E cmake_link_script CMakeFiles/temp_tracker.dir/link.txt --verbose=1
/usr/bin/arm-none-eabi-gcc  -std=gnu99 -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -mfix-cortex-m3-ldrd --specs=nano.specs -MMD -MP -O0 -g -gdwarf-2  -Wextra -Wall -Wno-unused-parameter -mcpu=cortex-m3 -mthumb -fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer  -Xlinker -T/home/brandon/workspace/temp_tracker/build/efm32hg.ld -Wl,-Map=temp_tracker.map -Wl,--gc-sections -Wl,-v CMakeFiles/temp_tracker.dir/source/main.c.obj  -o temp_tracker libdevice.a libemlib.a -lgcc -lc -lnosys -lgcc -lc -lnosys 
collect2 version 5.4.1 20160919
/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/bin/ld -plugin /usr/lib/gcc/arm-none-eabi/5.4.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/arm-none-eabi/5.4.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccTQx855.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lg_nano -plugin-opt=-pass-through=-lc_nano -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc_nano -X -o temp_tracker /usr/lib/gcc/arm-none-eabi/5.4.1/armv7-m/crti.o /usr/lib/gcc/arm-none-eabi/5.4.1/armv7-m/crtbegin.o /usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/lib/armv7-m/crt0.o -L/usr/lib/gcc/arm-none-eabi/5.4.1/armv7-m -L/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/lib/armv7-m -L/usr/lib/gcc/arm-none-eabi/5.4.1 -L/usr/lib/gcc/arm-none-eabi/5.4.1/../../../arm-none-eabi/lib -T/home/brandon/workspace/temp_tracker/build/efm32hg.ld -Map=temp_tracker.map --gc-sections -v CMakeFiles/temp_tracker.dir/source/main.c.obj libdevice.a libemlib.a -lgcc -lc_nano -lnosys -lgcc -lc_nano -lnosys --start-group -lgcc -lg_nano -lc_nano --end-group --start-group -lgcc -lc_nano --end-group /usr/lib/gcc/arm-none-eabi/5.4.1/armv7-m/crtend.o /usr/lib/gcc/arm-none-eabi/5.4.1/armv7-m/crtn.o
GNU ld (2.27-9+9) 2.27
arm-none-eabi-objcopy -O binary temp_tracker temp_tracker.bin
arm-none-eabi-objcopy -O ihex temp_tracker temp_tracker.hex
arm-none-eabi-objdump -d -S temp_tracker > temp_tracker.dmp
arm-none-eabi-size temp_tracker
   text    data     bss     dec     hex filename
  10476     120     196   10792    2a28 temp_tracker
make[2]: Leaving directory '/home/brandon/workspace/temp_tracker/build'
[100%] Built target temp_tracker
make[1]: Leaving directory '/home/brandon/workspace/temp_tracker/build'
/usr/bin/cmake -E cmake_progress_start /home/brandon/workspace/temp_tracker/build/CMakeFiles 0
ryankurte commented 7 years ago

So these are the important bits for the compile step.

-DEFM32HG322F64 
-std=gnu99 -Wextra -Wall -Wno-unused-parameter 
-mcpu=cortex-m3 -mthumb -mfix-cortex-m3-ldrd
-fno-builtin -ffunction-sections -fdata-sections -fomit-frame-pointer 
--specs=nano.specs -MMD -MP 
-O0 -g -gdwarf-2

The cpu configuration is -mcpu=cortex-m3 -mthumb -mfix-cortex-m3-ldrd but should be (something like) -mcpu=cortex-m0 -mthumb

CPUs are identified here based on the device family name. If you add the following case to that block (then remove all build cache and re-run everything) you should see that change, and if nothing else is broken it will hopefully boot.

elseif(CPU_FAMILY_U STREQUAL "EFM32HG")
set(CPU_TYPE "m0")
set(CPU_FIX "")

See how that goes and let me know?

Brando753 commented 7 years ago

Yea that did it, seems to now program and flash correctly, however the debugger still wont break at anything on main when I set break points there followed by monitor reset halt and continue is it being optimized out? I applied a camke cmake -DCMAKE_CXX_FLAGS_DEBUG=-g3 -DCMAKE_BUILD_TYPE=Debug .. but it made no difference...

Brando753 commented 7 years ago

Worth noting that I can set a break point and successfully break at the SysTick Handler and the Delay Function, but I cannot break before the Delay function, which is why I was thinking it might be being optimized out. I can also get a back trace so I can interact with the debugger, just not break anywhere in main.

ryankurte commented 7 years ago

So the led flashes, but you don't get hit the breakpoint at main?

You can see the debug options are being passed through in the paste above (-O0 -g -gdwarf-2 is no-optimisation, include debug, and use dwarf2 debug symbols which should be all).

IIRC there is some weirdness with the ways that some debuggers handle monitor reset halt, but I can't remember what the solution is :-/ You might be able to jump to Reset_Handler to fake a restart / see if it hits main there.

Brando753 commented 7 years ago

yea that seemed to do it, interesting to note, never had to fake a restart like that before, but with that it seems to work. Should I put a pull request for the one line fix or are you going to push it through?

ryankurte commented 7 years ago

Thanks for the PR!

I have had it with some debug adaptors / drivers / devices and not others. One day I will have to follow it up / solve it properly.

Brando753 commented 7 years ago

Hey thanks for being so helpful with all of this! Once I get some time to follow up I will hope to get openocd working and I can see if the issue follows through with openocd or not. Once I finish up this project, I will start my next one which uses the EFR32 family.