-
-
Notifications
You must be signed in to change notification settings - Fork 91
Description
I have a confusing issue I'm trying to track down involving the timers on Renesas. This is for a motor control library, and I'm trying to initialise the timers on the MCU in very specific ways.
Renesas support has already been of assistance with some details, and it is now working as expected on the UNO R4 Minima, but not on the R4 WiFi.
UNO R4 WiFi
Arduino IDE 2.2.1
Renesas UNO Board Support 1.0.4
The crash occurs a short time after starting the timers:
00:23:57.475 -> Firmware name: "/private/var/folders/h9/sbdx_175559c9zz0n837lkf80000gn/T/arduino/sketches/9F9D4234ED54425EE8E6FF4F4D7142DC/renesas_pwm_test.ino", compiled on: Sep 18 2023
00:23:57.500 -> Fault on interrupt or bare metal(no OS) environment
00:23:57.500 -> ===== Thread stack information =====
00:23:57.500 -> addr: 20007d88 data: 00000009
00:23:57.500 -> addr: 20007d8c data: 00000000
00:23:57.500 -> addr: 20007d90 data: 00000000
00:23:57.500 -> addr: 20007d94 data: 00000000
00:23:57.500 -> addr: 20007d98 data: 00014ebb
00:23:57.500 -> addr: 20007d9c data: 20002688
00:23:57.500 -> addr: 20007da0 data: 00014f36
00:23:57.532 -> addr: 20007da4 data: 20000f94
00:23:57.532 -> addr: 20007da8 data: 00000005
00:23:57.532 -> addr: 20007dac data: fffffff1
00:23:57.532 -> addr: 20007db0 data: 00000000
00:23:57.532 -> addr: 20007db4 data: 000000c1
00:23:57.532 -> addr: 20007db8 data: 40006000
00:23:57.532 -> addr: 20007dbc data: 00000001
00:23:57.532 -> addr: 20007dc0 data: 03030003
00:23:57.532 -> addr: 20007dc4 data: ffffffe9
etc...
which decodes to:
runger@Richards-Mac-Pro-2 7-2017q4 % bin/arm-none-eabi-addr2line -e "/private/var/folders/h9/sbdx_175559c9zz0n837lkf80000gn/T/arduino/sketches/9F9D4234ED54425EE8E6FF4F4D7142DC/renesas_pwm_test.ino".elf -a -f 000000c0 0000b686 0000cf9c 0000db94 0000cf9c 0001294c 0000cf9c 0000dade 0000db1e 0000588a 00006256 00006302 00005b3a 00004174 0000e604 0000e646
0x000000c0
??
??:0
0x0000b686
agt_int_isr
/ssd/products-Eslov/FW/MainPrograms/hardware/arduino-git/renesas/extras/e2studioProjects/Santiago/Debug/../ra/fsp/src/r_agt/r_agt.c:1081
0x0000cf9c
_ZN4UART5writeEh
/Users/runger/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.0.4/cores/arduino/Serial.cpp:114
0x0000db94
_ZN7arduino5Print11printNumberEmh
/Users/runger/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.0.4/cores/arduino/api/Print.cpp:258
0x0000cf9c
_ZN4UART5writeEh
/Users/runger/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.0.4/cores/arduino/Serial.cpp:114
0x0001294c
_sbrk_r
:?
0x0000cf9c
_ZN4UART5writeEh
/Users/runger/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.0.4/cores/arduino/Serial.cpp:114
0x0000dade
_ZN7arduino5Print5writeEPKhj
/Users/runger/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.0.4/cores/arduino/api/Print.cpp:35
0x0000db1e
_ZN7arduino5Print5printEPKc
/Users/runger/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.0.4/cores/arduino/api/Print.cpp:66
0x0000588a
_ZN14SimpleFOCDebug7printlnEPKci
/Users/runger/Documents/Arduino/libraries/Arduino-FOC/src/communication/SimpleFOCDebug.cpp:58
0x00006256
_Z18startTimerChannelsP27RenesasHardwareDriverParamsi
/Users/runger/Documents/Arduino/libraries/Arduino-FOC/src/drivers/hardware_specific/renesas/renesas.cpp:307 (discriminator 2)
0x00006302
_Z14_configure3PWMliii
/Users/runger/Documents/Arduino/libraries/Arduino-FOC/src/drivers/hardware_specific/renesas/renesas.cpp:383
0x00005b3a
_ZN14BLDCDriver3PWM4initEv
/Users/runger/Documents/Arduino/libraries/Arduino-FOC/src/drivers/BLDCDriver3PWM.cpp:62
0x00004174
setup
/Users/runger/Documents/Arduino/renesas_pwm_test/renesas_pwm_test.ino:19
0x0000e604
_Z12arduino_mainv
/Users/runger/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.0.4/cores/arduino/main.cpp:117 (discriminator 1)
0x0000e646
atexit
/Users/runger/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.0.4/cores/arduino/main.cpp:139
It's quite unclear to me what is causing the crash.
The agt_int_asr is strange, because I'm using only GPT timers, not AGT. It does always show up in the stack traces though. Also it seems the stack traces always contain printlns (to Serial).
How can we narrow down the cause? What's the difference between Minima and WiFi that causes the error to happen only on the R4 WiFi?