I am using Silabs Simplicity Studio along with Keil C51 COMPILER V9.53.0.0 and LX51 V4.66.30.0.
I am trying to configure a project so that it will produce a .COD file, that is a full assembler listing (with all addresses fixed). I set the optimization to level 8 (Reuse common entry code) and then used the CODE directive in the Miscellaneous / additional flags. No .COD file is produced.
I read that Code Packing must be enabled - yet it is not clear to me if that is set simply by the above optimization level.
Can someone please suggest how I may set my project to produce a .COD file.
Thank you very much.
"Keil C51 COMPILER"
So why have you posted as C251 ?
"Silabs Simplicity Studio"
For questions on how to make configuration settings with that, you will need to ask Silabs.
Keil's documentation is here: http://www.keil.com/support/man_c51.htm
The CODE Compiler Directive, "appends an assembly mnemonics list to the listing file" http://www.keil.com/support/man/docs/c51/c51_code.htm So it does not claim to generate a .COD file.
Perhaps you were thinking of the Linker CODE Directive: http://www.keil.com/support/man/docs/lx51/lx51_code.htm ?
Hello David,
It sounds like you were looking at this KB article. I cleaned up the wording to try to make things more clear:
http://www.keil.com/support/docs/148.htm
That article linked to this one, which explains how to set linker code packing:
http://www.keil.com/support/docs/2214.htm
Setting these options sets the OBJECTADVANCED compiler options. Since you are using the Silicon Labs IDE, you might have to manually add that value. Check with them to make sure.
On the middle C51 tab, in the Code Optimization section, check Linker Code Packing AJMP / ACALL.
just curious, what does that have to do with "obtaining full assembly listing"
See the Note at the end of the Linker CODE Directive manual page:
http://www.keil.com/support/man/docs/lx51/lx51_code.htm