Run Code from RAM in LPC55XX

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

Run Code from RAM in LPC55XX

570 次查看
pejo
Contributor III

Hello everyone,

due to the need to be able to keep using interruptions (like non blocking CAN communication) while we write in the flash block, I understand that the right solution is to run certain code from RAM.

As I understand I need to copy to ram the interruptions table, the interruption function with ALL the dependencies, functions and code used in the interruption function.

 

Can you confirm this? Do you have an example of this function?

 

Thank you!

标签 (1)
0 项奖励
回复
3 回复数

543 次查看
Alice_Yang
NXP TechSupport
NXP TechSupport

Hello @pejo 

Here are some references for your convenience:

  1. MCUXpresso IDE User Guide → Section 20.13.5: Placing specific functions into RAM blocks Alice_Yang_0-1770103501156.png

     

  2.  Community Article:
    https://community.nxp.com/t5/LPC-Microcontrollers-Knowledge/LPC-How-to-place-data-function-file-in-s... 

Please make sure to place the vector table and related ISR functions in RAM.

 

BR

Alice

0 项奖励
回复

529 次查看
pejo
Contributor III
Hello Alice,

thank you very much for your answer but my question is not how to do this (run a function from RAM) but which functions to place in RAM in the mentioned scenario. 

We need to grant the execution of the interruption callbacks during flash write operation.

In order to do this, which functions should be executed from RAM? Only the interruption vector and the Interruption function which we want to keep using during flash write or every dependency of the interruption function?
0 项奖励
回复

493 次查看
Alice_Yang
NXP TechSupport
NXP TechSupport

Hello @pejo 

This is case‑by‑case. Any code that may be executed during a Flash write operation must run from RAM. This mainly includes the vector table, the interrupt callback functions, the drivers that will be invoked, and any other components your application may require. It depends on your specific application.
 
Thank you.
 
BR
Alice
0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2304594%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E4%BB%8E%20LPC55XX%20%E7%9A%84%20RAM%20%E8%BF%90%E8%A1%8C%E4%BB%A3%E7%A0%81%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2304594%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%A4%A7%E5%AE%B6%E5%A5%BD%3C%2FP%3E%3CP%3E%E7%94%B1%E4%BA%8E%E9%9C%80%E8%A6%81%E5%9C%A8%E5%86%99%E5%85%A5%E9%97%AA%E5%AD%98%E5%9D%97%E6%97%B6%E7%BB%A7%E7%BB%AD%E4%BD%BF%E7%94%A8%E4%B8%AD%E6%96%AD%EF%BC%88%E5%A6%82%E9%9D%9E%E9%98%BB%E5%A1%9E%20CAN%20%E9%80%9A%E4%BF%A1%EF%BC%89%EF%BC%8C%E6%88%91%E8%AE%A4%E4%B8%BA%E6%AD%A3%E7%A1%AE%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E6%98%AF%E4%BB%8E%20RAM%20%E8%BF%90%E8%A1%8C%E6%9F%90%E4%BA%9B%E4%BB%A3%E7%A0%81%E3%80%82%3C%2FP%3E%3CP%3E%E6%8D%AE%E6%88%91%E6%89%80%E7%9F%A5%EF%BC%8C%E6%88%91%E9%9C%80%E8%A6%81%E5%B0%86%E4%B8%AD%E6%96%AD%E8%A1%A8%E3%80%81%E4%B8%AD%E6%96%AD%E5%87%BD%E6%95%B0%E4%BB%A5%E5%8F%8A%E4%B8%AD%E6%96%AD%E5%87%BD%E6%95%B0%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%9A%84%E6%89%80%E6%9C%89%E4%BE%9D%E8%B5%96%E9%A1%B9%E3%80%81%E5%87%BD%E6%95%B0%E5%92%8C%E4%BB%A3%E7%A0%81%E5%A4%8D%E5%88%B6%E5%88%B0%20ram%20%E4%B8%AD%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E4%BD%A0%E8%83%BD%E8%AF%81%E5%AE%9E%E8%BF%99%E4%B8%80%E7%82%B9%E5%90%97%EF%BC%9F%E6%82%A8%E6%9C%89%E8%AF%A5%E5%8A%9F%E8%83%BD%E7%9A%84%E7%A4%BA%E4%BE%8B%E5%90%97%EF%BC%9F%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E8%B0%A2%E8%B0%A2%EF%BC%81%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2304594%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3ELPC55xx%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2305047%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Run%20Code%20from%20RAM%20in%20LPC55XX%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2305047%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E6%82%A8%E5%A5%BD%EF%BC%8C%E7%88%B1%E4%B8%BD%E4%B8%9D%EF%BC%8C%3CBR%20%2F%3E%3CBR%20%2F%3E%EF%BC%8C%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%9B%9E%E7%AD%94%EF%BC%8C%E4%BD%86%E6%88%91%E7%9A%84%E9%97%AE%E9%A2%98%E4%B8%8D%E6%98%AF%E5%A6%82%E4%BD%95%E5%81%9A%E5%88%B0%E8%BF%99%E4%B8%80%E7%82%B9%EF%BC%88%E4%BB%8E%20RAM%20%E8%BF%90%E8%A1%8C%E5%87%BD%E6%95%B0%EF%BC%89%EF%BC%8C%E8%80%8C%E6%98%AF%E5%9C%A8%E4%B8%8A%E8%BF%B0%E6%83%85%E5%86%B5%E4%B8%8B%E5%B0%86%E5%93%AA%E4%BA%9B%E5%87%BD%E6%95%B0%E6%94%BE%E5%9C%A8%20RAM%20%E4%B8%AD%E3%80%82%20%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%88%91%E4%BB%AC%E9%9C%80%E8%A6%81%E5%85%81%E8%AE%B8%E5%9C%A8%E9%97%AA%E5%AD%98%E5%86%99%E5%85%A5%E6%93%8D%E4%BD%9C%E6%9C%9F%E9%97%B4%E6%89%A7%E8%A1%8C%E4%B8%AD%E6%96%AD%E5%9B%9E%E8%B0%83%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E4%B8%BA%E6%AD%A4%EF%BC%8C%E5%BA%94%E4%BB%8E%20RAM%20%E4%B8%AD%E6%89%A7%E8%A1%8C%E5%93%AA%E4%BA%9B%E5%87%BD%E6%95%B0%EF%BC%9F%E5%9C%A8%E9%97%AA%E5%AD%98%E5%86%99%E5%85%A5%E8%BF%87%E7%A8%8B%E4%B8%AD%EF%BC%8C%E6%88%91%E4%BB%AC%E5%8F%AA%E6%83%B3%E7%BB%A7%E7%BB%AD%E4%BD%BF%E7%94%A8%E4%B8%AD%E6%96%AD%E5%90%91%E9%87%8F%E5%92%8C%E4%B8%AD%E6%96%AD%E5%87%BD%E6%95%B0%EF%BC%8C%E8%BF%98%E6%98%AF%E4%B8%AD%E6%96%AD%E5%87%BD%E6%95%B0%E7%9A%84%E6%AF%8F%E4%B8%AA%E4%BE%9D%E8%B5%96%E9%A1%B9%EF%BC%9F%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2305043%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Run%20Code%20from%20RAM%20in%20LPC55XX%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2305043%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%E7%88%B1%E4%B8%BD%E4%B8%9D%E3%80%81%3C%2FP%3E%3CP%3E%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E4%BD%A0%E7%9A%84%E5%9B%9E%E7%AD%94%EF%BC%8C%E4%BD%86%E6%88%91%E7%9A%84%E9%97%AE%E9%A2%98%E4%B8%8D%E6%98%AF%E5%A6%82%E4%BD%95%E5%81%9A%E5%88%B0%E8%BF%99%E4%B8%80%E7%82%B9%E3%80%82%20%3C%2FP%3E%3CP%3E%E6%88%91%E4%BB%AC%E9%9C%80%E8%A6%81%E5%85%81%E8%AE%B8%E5%9C%A8%E9%97%AA%E5%AD%98%E5%86%99%E5%85%A5%E6%93%8D%E4%BD%9C%E6%9C%9F%E9%97%B4%E6%89%A7%E8%A1%8C%E4%B8%AD%E6%96%AD%E5%9B%9E%E8%B0%83%E3%80%82%3C%2FP%3E%3CP%3E%E4%B8%BA%E6%AD%A4%EF%BC%8C%3CSTRONG%3E%E5%BA%94%E4%BB%8E%20RAM%20%E4%B8%AD%E6%89%A7%E8%A1%8C%E5%93%AA%E4%BA%9B%E5%87%BD%E6%95%B0%EF%BC%9F%3C%2FSTRONG%3E%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2305023%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Run%20Code%20from%20RAM%20in%20LPC55XX%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2305023%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F232719%22%20target%3D%22_blank%22%3E%40pejo%3C%2FA%3E%3C%2FP%3E%0A%3CDIV%3E%0A%3CP%3E%E4%B8%BA%E6%96%B9%E4%BE%BF%E8%B5%B7%E8%A7%81%EF%BC%8C%E4%BB%A5%E4%B8%8B%E6%98%AF%E4%B8%80%E4%BA%9B%E5%8F%82%E8%80%83%EF%BC%9A%3C%2FP%3E%0A%3COL%3E%0A%3CLI%3EMCUXpresso%20IDE%20%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20%E2%86%92%20%E7%AC%AC%2020.13.5%20%E8%8A%82%EF%BC%9A%20%3CEM%3E%3CEM%3E%E5%B0%86%E7%89%B9%E5%AE%9A%E5%8A%9F%E8%83%BD%E6%94%BE%E5%85%A5%20RAM%20%E5%9D%97%20%3C%2FEM%3E%3C%2FEM%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Alice_Yang_0-1770103501156.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Alice_Yang_0-1770103501156.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Alice_Yang_0-1770103501156.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F375250i3F334CA3DC6FE59B%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Alice_Yang_0-1770103501156.png%22%20alt%3D%22Alice_Yang_0-1770103501156.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3C%2FLI%3E%0A%3CLI%3E%E7%A4%BE%E5%8C%BA%E6%96%87%E7%AB%A0%20%EF%BC%9A%3CBR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FLPC-Microcontrollers-Knowledge%2FLPC-How-to-place-data-function-file-in-specified-memory-under%2Fta-p%2F1316392%22%20target%3D%22_blank%22%3E%20https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FLPC-Microcontrollers-Knowledge%2FLPC-How-to-place-data-function-file-in-specified-memory-under%2Fta-p%2F1316392%3C%2FA%3E%3C%2FLI%3E%0A%3C%2FOL%3E%0A%3CP%3E%E8%AF%B7%E7%A1%AE%E4%BF%9D%E5%B0%86%E5%90%91%E9%87%8F%E8%A1%A8%E5%92%8C%E7%9B%B8%E5%85%B3%20ISR%20%E5%87%BD%E6%95%B0%E6%94%BE%E5%9C%A8%20RAM%20%E4%B8%AD%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EBR%3C%2FP%3E%0A%3CP%3E%E7%88%B1%E4%B8%BD%E4%B8%9D%3C%2FP%3E%0A%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2305983%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Run%20Code%20from%20RAM%20in%20LPC55XX%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2305983%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F232719%22%20target%3D%22_blank%22%3E%40pejo%3C%2FA%3E%3C%2FP%3E%0A%3CDIV%3E%E5%85%B7%E4%BD%93%E6%83%85%E5%86%B5%E5%85%B7%E4%BD%93%E5%88%86%E6%9E%90%E3%80%82%E9%97%AA%E5%AD%98%E5%86%99%E5%85%A5%E6%93%8D%E4%BD%9C%E6%9C%9F%E9%97%B4%E5%8F%AF%E8%83%BD%E6%89%A7%E8%A1%8C%E7%9A%84%E4%BB%BB%E4%BD%95%E4%BB%A3%E7%A0%81%E9%83%BD%E5%BF%85%E9%A1%BB%E4%BB%8E%20RAM%20%E8%BF%90%E8%A1%8C%E3%80%82%E8%BF%99%E4%B8%BB%E8%A6%81%E5%8C%85%E6%8B%AC%E5%90%91%E9%87%8F%E8%A1%A8%E3%80%81%E4%B8%AD%E6%96%AD%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0%E3%80%81%E5%B0%86%E8%A6%81%E8%B0%83%E7%94%A8%E7%9A%84%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E4%BB%A5%E5%8F%8A%E6%82%A8%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%8F%AF%E8%83%BD%E9%9C%80%E8%A6%81%E7%9A%84%E4%BB%BB%E4%BD%95%E5%85%B6%E4%BB%96%E5%85%83%E5%99%A8%E4%BB%B6%E3%80%82%E8%BF%99%E5%8F%96%E5%86%B3%E4%BA%8E%E6%82%A8%E7%9A%84%E5%85%B7%E4%BD%93%E5%BA%94%E7%94%A8%E3%80%82%3C%2FDIV%3E%0A%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CDIV%3E%E8%B0%A2%E8%B0%A2%EF%BC%81%3C%2FDIV%3E%0A%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CDIV%3EBR%3C%2FDIV%3E%0A%3CDIV%3E%E7%88%B1%E4%B8%BD%E4%B8%9D%3C%2FDIV%3E%3C%2FLINGO-BODY%3E