I am using uV2 V2.40a with the Silicon Labs C8051F120 processor ... I can't make a program larger that 64K and the chip will take 128K ... the device description has 128K but the project options only seem to allow 64K
what do I need to do to get access to the full 128K?
read up in the manual on BANKING
Erik
The 8051 has a 64KB program store address space. You need to build a load that uses code banking to have program code in excess of 64KB.
See section 16 of the C8051F120 manual, where it discusses the SFLE and COBANK registers. This chip uses the scheme where the 64KB address space is divided into two 32KB banks, and the upper bannk is swapped to different physical locations.
Also, read the Keil documentation and app notes on banking, particularly
http://www.keil.com/support/man/docs/lx51/lx51_codebanking.htm http://www.keil.com/support/docs/158.htm http://www.keil.com/support/docs/1059.htm
The 8051 architecture has only 64K of CODE space.
The C8051F120 has 128K of Flash - not 128K of 8051 CODE space.
As Erik says, if you want to use all 128K of the Flash for 8051 CODE storage, you will have to adopt some sort of Code Banking scheme.
I wouldn't be at all surprised to find that SiLabs have some Application Notes on this.
As an alternative to Code Banking, you might be able to move constants from CODE into XDATA space mapped to the other 64K of Flash, thereby removing the need to Bank your code...