Dear Sir/Madam I am using uvision to plan a software project which SDA555X TVText Pro from Infineon has been used in it. Now the volume of the program has been reached larger than 64KBytes and uvision messages me the error. So, would you please advise me how i can manage the settings of the uvision to handle this situation. Thanks and best regards Faranak Mahjoobi
There are a number of ways to reduce program size: 1. Use the SMALL memory model and manually locate all large buffers in PDATA or XDATA. 2. Use the highest compiler optimizer level (11). 3. Use Linker Code Packing (available only in PK51) to optimize jumps and calls into AJMPs and ACALLs where possible and to create functions from common code sequences. 4. Look at the algorithms you use to do things. In most of the applications that I get paid to shrink, the algorithms used are POORLY thought out and can easily be optimized. 5. Learn how the compiler works and what it does to optimize and take advantage of these things. For example, the compiler passes up to 3 function arguments in registers. So, if you consistently create functions with 6 or 7 registers, you are making your program bigger than it must be. Jon
Thank you very much for your advise. But i'm really going to use 128KBytes as code memory to program SDA555XFL flash type microcontroller. So it seems that i should first bank the resulted code memory and after it link them. But unfortunately my tries untill now has had any result. Would you please advise me again for this new matter such that finally i can configure memory settings of uVision to be successful in making the hex file. Thanks for your cooperation and best regards Faranak Mahjoobi
Take a look at the L51_BANK.A51 file and also at the manuals. This concept is explained in a lot of detail. Jon
View all questions in Keil forum