Part Number: TMS320F28377S
Other Parts Discussed in Thread: SYSBIOS
This is where the program dies!
if (xdc_runtime_Startup_rtsDone() != TRUE) {
ti_sysbios_BIOS_linkedWithIncorrectBootLibrary();
}
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.
Part Number: TMS320F28377S
Other Parts Discussed in Thread: SYSBIOS
This is where the program dies!
if (xdc_runtime_Startup_rtsDone() != TRUE) {
ti_sysbios_BIOS_linkedWithIncorrectBootLibrary();
}
Is this happening in an application you've written or a do you have this issue with SYS/BIOS examples as well? If you single step through the code, what item in xdc_runtime_Startup_rtsDone() is not done? Does ROV show any errors?
Whitney
You should be able to put a breakpoint in the function. You may need to look it up in the disassembly to place it though. If you can't look it up by name, you can look up its address in your .map file.
Now that I'm looking at the code, I'm not sure that Startup_rtsDone is the place to look though. The function just does this:
Bool Startup_rtsDone(Void)
{
return (module->rtsDoneFlag);
}
It might be better to step through the code in Startup_startMods() since as far as I can tell that's where rtsDoneFlag gets set.
Can you answer my other questions from my previous post?
Whitney
1. The newly empty BIOS works properly.
2. The operation of my own project was abnormal, and the single step execution could not enter a more internal place, so it returned to the following place.
Bool Startup_rtsDone(Void)
{
Return (the module - & gt; rtsDoneFlag);
}
3. For my own Project, as long as I delete the Project\Debug\lib folder generated by compilation and create a new lib folder in this location, I can skip the function in Step 2 and the program runs normally.
Debug\configPkg\package\lib or is your project generating a Debug\lib folder? What files were in this lib folder? When you delete it and rebuild the project, does it generate new versions of the libs? And how long do those work before you run into this issue again?
How are you BIOS library selection options configured?
Whitney
The lib folder was added to my project and contains library files that I think will be used


The location of the file I deleted


Do the following to recompile and it will work.
1. Rename lib to lib
2. Clear the contents of the Lib folder.
If you don't change the folder name, or if you change it to something else, a recompilation will generate a new lib file, and the Bios will still not work.

The library file configuration is as follows

It's still puzzling me why deleting lib would make a difference. Debug/lib just contains some make files--the actual libraries being used don't change at all, and building the project again should just replace them.
Just a note about your --library settings, libc.a is equivalent to rts2800_fpu32.lib, so you shouldn't need to include both of those. libc.a is basically just an index library that picks the appropriate .lib from CG_TOOL_ROOT/lib based off of your build options. In fact, I don't think you need to add these ${ProjName}/lib/ files to your --library options at all--they'll probably already be included in the build just from being in your project folder.
I wouldn't expect either of these points to be the cause of this issue though. Are you seeing any warnings related to these libraries when you build your project?
Whitney
Thank you very much for your help. It's exactly what you expected. I removed the {ProjName}/lib folder from the project and the program ran fine. I would like to ask you to help confirm whether there is any risk in my operation like this. Like the application running slower? Does floating point operation time get longer? Thank you very much!
You were already using the FPU RTS library, so there's no change there. It's not clear to me what that fixed point library was being used for--is that the DSP library? I guess you could look at the .map file generated by the project before you removed the libraries to see what code from those libraries was actually being used if you want to know how many functions were impacted.
In general, on the F28377S which had both FPU32 and TMU hardware, floating point operations are going to be pretty fast. You can look around and find some discussion on the topic--like this thread here.
Whitney