MQX + Multiplexed bus

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

MQX + Multiplexed bus

1,612 次查看
ThiagoE
Contributor I

Hi,

 

I have read the document AN3854 and I did mounted my Hardware with a multiplexed memory like Item 3.3. The problem is that in this mode read/write byte is not supported. In this case, can I implement tasks and dynamic memory with this MRAM?

 

In pratice, this function works fine:

 

_RTCS_mem_pool = _mem_create_pool((pointer)DEMOCFG_RTCS_POOL_ADDR, DEMOCFG_RTCS_POOL_SIZE);

 

But after RTCS_create() and its configuration, i can see that "ping" stops work. When I don't configure for MRAM, the code works fine.

 

My conclusion is: MQX + Multiplexed MRAM doesn't work for tasks/pools of tasks, only for allocation memory, is that correct?

 

Att

Thiago Esteves

0 项奖励
回复
3 回复数

908 次查看
DavidS
NXP Employee
NXP Employee

Hi ThiagoE,

I've seen timing issues with respect to Ethernet (like DHCP'ing) when Ethernet data and stack are in MRAM.  I believe that since the external memory is 8 times slower than internal memory (or that is what my memory recalls).  So when I've run the web_hvac demo and used MRAM for data/stack space, the application runs but DHCP fails.

To solve this I place MRAM after the internal SRAM address space so that RTCS data/stack are accessed out of internal (fast)SRAM.

Alternatively try to use your _mem_create_pool() and point it to internal SRAM to see if it works.  I haven't tried that method yet as fyi.

Regards,

David

0 项奖励
回复

908 次查看
madifazio
Contributor III

Hi David

How do you place MRAM after the internal SRAM address space? modifying linker command file and redefinin CS base address for mini flex bus?. Are you capable to extend the kernel data space with MRAM using this method?.

 

Im using MRAM in the default address space (0x10000000), created a pool in that space and using _task _create_at, _mem_alloc_from to decompress my SRAM usage. But Ethernet and web server are ram demanding and i get an OUT_OF_MEMORY task message from TCPIP task under certain circunstances.

 

Do you have any documentation about memory management in MQX?.

 

Regards

0 项奖励
回复

908 次查看
JuroV
NXP Employee
NXP Employee

As you were said in another thread, you can use _task_create_at, where you can specify a pool in which the stack for a task is allocated.

There is no difference between allocated stack and allocated memory, both are allocated the same way.

0 项奖励
回复