RE: 16-bit Memory Configuration Files
"Dobbin Allan-r11834" <[email protected]>
| Newsgroups | gmane.comp.hardware.motorola.microcontrollers |
|---|---|
| Message-ID | <4147ED8B92A864498825C07E53594E4A3229EC@az33exm20.fsl.freescale.net> |
A 32-bit memory most likely does not have ADDR[30:31] connected wheras a 16-bit memory system requires ADDR[30]. So when you set PS for 16-bit, what happens is that address bytes 0x00000002 and 0x00000003 get mapped onto 0x00000000 and 0x00000001 respectively. So if you try and write, say, 8-bytes of data where data equals lowest byte of address, you'd get the following: ADDR DATA 0 2 (the original 0 gets overwritten with 2) 1 3 (the original 1 gets overwritten with 3) 2 never accessed 3 never accessed 4 6 (the original 4 gets overwritten with 6) 5 7 (the original 5 gets overwritten with 7) 6 never accessed 7 never accessed So the problem isn't the linker file or config file, it's a basic hardware limitation. I don't think there is a way round it other than doing something (silly?) like swapping the MSB ADDR line to the memory for ADDR[30] which should give you access to half of the available memory. I've not tried this, but if you can cut traces on the board to do this, I think it may work - the data is now physically scattered across the SRAM but you wouldn't see any difference as far as your linker, config or any other software is concerned, just set PS for 16-bit. There was a similar question on this subject last month and the author was told there wasn't a way to get what he wanted i.e. some sort of jumper configuration so his board could use 16 or 32-bit memory. Perhaps a jumper between these two address line s may work. Terry - if you try this, please let me know if it works. Regards, Allan -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Terry Hansen Sent: Friday, September 09, 2005 12:00 PM To: [email protected] Subject: [MPC500] 16-bit Memory Configuration Files MPC500 Group - I would like to test my PhyCore MPC555 module for 16-bit wide memory. It has 32-bit memory, but the next hardware design might use 16-bit memory, so I want to make the PhyCore think it has 16-bit memory. Simply changing the PS bits in the BRx registers in the initialization and config files does not do the trick. Code does not load. Linker files do not appear to care about memory port size. Although, maybe there is a preference panel setting that needs to be changed? Does anyone have configuration and/or initialization files that communicate to 16-bit wide memory? Any help is greatly appreciated. I have invested quite a bit of time in this and seem to have hit a blank wall. Hints about directions to go help too. Terry Hansen Compact Power Inc Palmer Lake, CO ------------------------ Yahoo! Groups Sponsor --------------------~--> Get Bzzzy! (real tools to help you find a job). Welcome to the Sweet Life. http://us.click.yahoo.com/A77XvD/vlQLAA/TtwFAA/dN_tlB/TM --------------------------------------------------------------------~-> ----------------------------------------------------------- To learn more about Freescale Microcontrollers, please visit http://www.freescale.com/mcu Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/MPC500/ <*> To unsubscribe from this group, send an email to: [email protected] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/