Tool/software:
I am using SDK8.3.0 with custom OS ThreadX.
There have been many changes in both the SDK and the OS.
When I use the FreeRTOS included in the SDK, the DDR read and write functions works fine.
However, when I changed the operating system to ThreadX, the read and write of DDR became abnormal.
My test results are as follows
case 1.Write/Read 32byte to/from DDR address 0x80000000 OK
case 2.Write/Read 32byte to/from DDR address 0x80000010 NG
Write: Only 16 bytes of data were written between addresses 0x80000010 and 0x80000020
Read: The program crashed in the Func HwiP_data_abort_handler() function
When i change the DDR MPU setting .isSharable from 0 to 1 , the test in case 2 worked normally.
{
.baseAddr = 0x80000000u,
.size = MpuP_RegionSize_2G,
.attrs = {
.isEnable = 1,
.isCacheable = 1,
.isBufferable = 1,
.isSharable = 1,
.isExecuteNever = 0,
.tex = 1,
.accessPerm = MpuP_AP_ALL_RW,
.subregionDisableMask = 0x0u
},
Can you give some advice about why the ddr work incorrectly when i change the OS.