Other Parts Discussed in Thread: C2000WARE
My application needs a large data buffer for computation. We have a 1MB external RAM. The code has 2 parts, one is for control which is written in C, the other is for computation/algorithm, which is written in C++. The C++ uses template, virtual function and operator overloading ... I can build the ok, but run time always trapped into illegal_isr(). After a few weeks of troubleshooting, I realized that the problem has to do with the external memory and C++ virtual function table. I guess the compiler doesn't know that external memory was not available during bootstrap and uses it to store some virtual tables, but after my code started and config the external memory, it is filled with random data.
I think there might be 2 possible solutions.
1. Re-write the C++ code, so that the external RAM is only used as data buffer, not program. I am not exactly sure how to achieve it.
2. If we can modify the bootstrap to config and enable the external memory before initialization, it may solve our problem.
I am not very familiar with C++, that part of the code is written by another programmer. I am integrating it into my C code. I am not using RTOS, my CCS version is 6.0.1.
Again, my question is that is it possible for me to modify the bootstrap to config and enable my external RAM. Or, is there other ways to solve my problem? I can provide more details if needed.
Thank you for your help,
Nelson