Tool/software:
Hello,
I also encounter the same problem as
My SDK is mcu_plus_sdk_j722s_11_00_00_12.
If I only do DebugP_log("hello! \r\n"); like this in main(), it works well. I can reload the program and debug it.
But if I create a task,At first run in the debug session, everything went perfectly smooth without any error. However, once I stop debugging and rebuidling the code, I got an unexpected error regarding High Priority Interrupt
The previous email said educing the memory section to 63 bytes as suggested.I don't unstersatnd how to do it.
Either we shoud modify the linker.cmd or do something? Could you give me more details. Thanks
Follow is my linker.cmd from the task_switch examples of the SDK
--ram_model
-heap 0x20000
-stack 0x20000
--args 0x1000
--diag_suppress=10068 /* to suppress no matching section error */
--cinit_compression=off
-e _c_int00_secure
#define DDR0_ALLOCATED_START 0xA3000000
#define C7X_ALLOCATED_START DDR0_ALLOCATED_START
#define C7X_RESOURCE_TABLE_BASE (C7X_ALLOCATED_START + 0x00100000)
#define C7X_IPC_TRACE_BUFFER (C7X_ALLOCATED_START + 0x00100400)
#define C7X_BOOT_BASE (C7X_ALLOCATED_START + 0x00200000)
#define C7X_VECTOR_BASE (C7X_ALLOCATED_START + 0x00400000)
#define C7X_DDR_SPACE_BASE (C7X_ALLOCATED_START + 0x00410000)
MEMORY
{
L2SRAM (RWX): org = 0x7E000000, len = 0x200000
DDR0_RESERVED: org = 0x80000000, len = 0x19800000 /* Reserved for A53 OS */
C7X_IPC_D: org = C7X_ALLOCATED_START, len = 0x00100000 /* 1MB DDR */
C7X_BOOT_D: org = C7X_BOOT_BASE, len = 0x400 /* 1024B DDR */
C7X_VECS_D: org = C7X_VECTOR_BASE, len = 0x4000 /* 16KB DDR */
C7X_CIO_MEM: org = C7X_DDR_SPACE_BASE, len = 0x1000 /* 4KB */
C7X_DDR_SPACE: org = C7X_DDR_SPACE_BASE+0x1000, len = 0x00BF0000-0x1000 /* 11.9MB - 4KB DDR */
}
SECTIONS
{
boot:
{
boot.*<boot.oe71>(.text)
} load > C7X_BOOT_D
.vecs > C7X_VECS_D
.secure_vecs > C7X_DDR_SPACE ALIGN(0x100000)
.text:_c_int00_secure > C7X_DDR_SPACE ALIGN(0x200000)
.text > C7X_DDR_SPACE ALIGN(0x100000)
.bss > C7X_DDR_SPACE /* Zero-initialized data */
RUN_START(__BSS_START)
RUN_END(__BSS_END)
.data > C7X_DDR_SPACE /* Initialized data */
.cinit > C7X_DDR_SPACE /* could be part of const */
.init_array > C7X_DDR_SPACE /* C++ initializations */
.stack > C7X_DDR_SPACE ALIGN(0x2000)
.args > C7X_DDR_SPACE
.cio > C7X_CIO_MEM
.const > C7X_DDR_SPACE
.switch > C7X_DDR_SPACE /* For exception handling. */
.sysmem > C7X_DDR_SPACE /* heap */
GROUP: > C7X_DDR_SPACE
{
.data.Mmu_tableArray : type=NOINIT
.data.Mmu_tableArraySlot : type=NOINIT
.data.Mmu_level1Table : type=NOINIT
.data.gMmu_tableArray_NS : type=NOINIT
.data.Mmu_tableArraySlot_NS : type=NOINIT
.data.Mmu_level1Table_NS : type=NOINIT
}
.benchmark_buffer: > C7X_DDR_SPACE ALIGN (32)
}