I am using the current msp430X branch and find it quite useful. The overhead
associated with making all function calls 20 bits (for chips that support
it) is very small and probably the way to go. The main functions that fail
at this are ISRs which are 16 bits but these are only called by the
hardware. 

The main problem with 20 bit function calls is that it forces function
pointers to 20 bits, which means storing them in registers requires saving
20 bit registers. Since C normally have the callee save state that means
just allowing 20 bit function pointers will force all callees to save all
registers that might store a function as 20 bits.

I avoided this problem by including a function proxy in 16 bit address space
for each indirectly addressed function that branches to the 20 bit address.
Then each indirectly addressed function has an address in 16-bit space for
indirect access and 20 bit space for direct access.  This works very well
except that my implementation is manual (macro based) and does not do type
checking so it is error prone. A compiler based method would be much better.

Robert

-- 
View this message in context: 
http://old.nabble.com/Draft-20-Bit-Design-Interface-Specification-available-for-review-tp33755836p33763398.html
Sent from the MSP430 gcc - Users mailing list archive at Nabble.com.


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Reply via email to