This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Tool/software:
Hi,
I ported the freertos HalCoGen project for the TMS570LS0714PGE to TMS570LS0914PGE. It works fine, the example tasks starts and toggles GIOB.3. I also configured the ECLK to be used as GIO. Toggling it before starting the scheduler works. Toggling ECLK within the example task causes a data abort exception. I am wondering what's special about the ECLK as GIO, what am I missing? Can it be caused by the MPU?
This is my modified linker script:
MEMORY
{
VECTORS (X) : origin=0x00000000 length=0x00000020
KERNEL (RX) : origin=0x00000020 length=0x00008000
FLASH0 (RX) : origin=0x00008020 length=(0x00100000 - 0x8000 - 0x20)
STACKS (RW) : origin=0x08000000 length=0x00000800
KRAM (RW) : origin=0x08000800 length=0x00000800
RAM (RW) : origin=0x08001000 length=(0x00020000 - 0x800 - 0x800)
}
SECTIONS
{
. intvecs : {} > VECTORS
.kernelTEXT : {} > KERNEL
.cinit : {} > KERNEL
.pinit : {} > KERNEL
.text : {} > FLASH0
.const : {} > FLASH0
.kernelBSS : {} > KRAM
.kernelHEAP : {} > RAM
.bss : {} > RAM
.data : {} > RAM
}
Hi Ju We,
It is due to the user mode doesn't have privilege to access the system resources. As ECLK port registers comes into the system resources, if we try to write into these registers in user mode then it will create data abort exception.
The solution for this issue is to switch the mode before accessing the system port register of ECLK.
For more details refer below thread and here i also attached example project to solve this issue:
--
Thanks & regards,
Jagadish.
Hi Jagadish,
I did some reading. You can bitwise or the task priority with portPRIVILEGE_BIT upon task creation. This makes the task run in privileged mode.