Skip to content

[R4 WiFi vs Minima, Timers] using timers causing crash on R4 WiFi #139

@runger1101001

Description

@runger1101001

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions