Hi,
I'm using a re-flashed STM32F3Discovery board to do my freertos debugging on a F205RCT target.
My IDE is Eclipse Oxygen with GNU ARM Eclipse plugin.
In about 90% of all cases when I set a breakpoint, J-Link GDB Server crashes with the following error output:
Display All
I am programming in C++, using FreeRTOS 9.0.0.
The project has been created using CubeMX and then manually converted to a C++ project.
This is the majority of my FreeRTOSConfig.h:
Display All
I'm running JLinkGDBServer.exe -rtos GDBServer\RTOSPlugin_FreeRTOS.
It seems to be same issue as: [ABANDONED] "Mis-aligned memory read" error when running GDB server with Freertos enabled and using a JLink base debugger
I'm using a re-flashed STM32F3Discovery board to do my freertos debugging on a F205RCT target.
My IDE is Eclipse Oxygen with GNU ARM Eclipse plugin.
In about 90% of all cases when I set a breakpoint, J-Link GDB Server crashes with the following error output:
Source Code
- Setting breakpoint @ address 0x0800941E, Size = 2, BPHandle = 0x0004
- Starting target CPU...
- ...Breakpoint reached @ address 0x0800941E
- WARNING: Mis-aligned memory read: Address: 0x0000000B, NumBytes: 4, Alignment: 4 (Word-aligned)
- WARNING: Failed to read memory @ address 0x00CC493C
- ERROR: Error reading thread name in FreeRTOS task control block.
- Reading all registers
- Read 4 bytes @ address 0x0800941E (Data = 0x68DB6823)
- Removing breakpoint @ address 0x0800941E, Size = 2
- Reading 64 bytes @ address 0x20005F40
- Read 4 bytes @ address 0x0800AEE2 (Data = 0x68DB6823)
- Reading all registers
- Read 4 bytes @ address 0x0800F562 (Data = 0xB313681B)
- Read 4 bytes @ address 0x0800941E (Data = 0x68DB6823)
- Read 4 bytes @ address 0x0800AEE2 (Data = 0x68DB6823)
- Reading all registers
- ERROR: Error reading stack frame from FreeRTOS task.
I am programming in C++, using FreeRTOS 9.0.0.
The project has been created using CubeMX and then manually converted to a C++ project.
This is the majority of my FreeRTOSConfig.h:
Source Code
- /* Ensure stdint is only used by the compiler, and not the assembler. */
- #if defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__)
- #include <stdint.h>
- #include "main.h"
- extern uint32_t SystemCoreClock;
- /* USER CODE BEGIN 0 */
- extern void configureTimerForRunTimeStats(void);
- extern unsigned long getRunTimeCounterValue(void);
- /* USER CODE END 0 */
- #endif
- #define configUSE_PREEMPTION 1
- #define configSUPPORT_STATIC_ALLOCATION 0
- #define configSUPPORT_DYNAMIC_ALLOCATION 1
- #define configUSE_IDLE_HOOK 0
- #define configUSE_TICK_HOOK 0
- #define configCPU_CLOCK_HZ ( SystemCoreClock )
- #define configTICK_RATE_HZ ((TickType_t)1000)
- #define configMAX_PRIORITIES ( 10 )
- #define configMINIMAL_STACK_SIZE ((uint16_t)64)
- #define configTOTAL_HEAP_SIZE ((size_t)70*1024)
- #define configMAX_TASK_NAME_LEN ( 20 )
- #define configGENERATE_RUN_TIME_STATS 1
- #define configUSE_TRACE_FACILITY 1
- #define configUSE_16_BIT_TICKS 0
- #define configIDLE_SHOULD_YIELD 0
- #define configUSE_MUTEXES 1
- #define configQUEUE_REGISTRY_SIZE 10
- #define configCHECK_FOR_STACK_OVERFLOW 2
- #define configUSE_MALLOC_FAILED_HOOK 1
- #define configENABLE_BACKWARD_COMPATIBILITY 0
- #define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
- /* Co-routine definitions. */
- #define configUSE_CO_ROUTINES 0
- #define configMAX_CO_ROUTINE_PRIORITIES ( 0 )
- /* Set the following definitions to 1 to include the API function, or zero
- to exclude the API function. */
- #define INCLUDE_vTaskPrioritySet 1
- #define INCLUDE_uxTaskPriorityGet 1
- #define INCLUDE_vTaskDelete 1
- #define INCLUDE_vTaskCleanUpResources 0
- #define INCLUDE_vTaskSuspend 1
- #define INCLUDE_vTaskDelayUntil 1
- #define INCLUDE_vTaskDelay 1
- #define INCLUDE_xTaskGetSchedulerState 1
- #define INCLUDE_xSemaphoreGetMutexHolder 1
- #define INCLUDE_uxTaskGetStackHighWaterMark 1
- #define INCLUDE_eTaskGetState 1
- /* Cortex-M specific definitions. */
- #ifdef __NVIC_PRIO_BITS
- /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */
- #define configPRIO_BITS __NVIC_PRIO_BITS
- #else
- #define configPRIO_BITS 4
- #endif
- /* The lowest interrupt priority that can be used in a call to a "set priority"
- function. */
- #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15
- /* The highest interrupt priority that can be used by any interrupt service
- routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL
- INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER
- PRIORITY THAN THIS! (higher priorities are lower numeric values. */
- #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5
I'm running JLinkGDBServer.exe -rtos GDBServer\RTOSPlugin_FreeRTOS.
It seems to be same issue as: [ABANDONED] "Mis-aligned memory read" error when running GDB server with Freertos enabled and using a JLink base debugger
The post was edited 1 time, last by vfel ().