problem __enable_spi_locking_ret not being defined from xmm model
Mike Petry
Posts: 14
I posted an issue over at code.google.com of not being able to link programs that do file_io via stdio.
I tried compiling the example at :
https://sites.google.com/site/propellergcc/documentation/libraries#TOC-Stdio-Devices-Library
It appears to be a few missing definitions resulting from the new code for spi_locking that was added in early January.
This should only impact folks that are doing file based stdio using recent bits from the tree (since January 1).
I'm using the src tree, because propeller-load that comes with SimpleIDE 9.9.45 was crashing.
propeller-load in the src tree provides the expected behavior.
Host system is a Mac running 10.9.1 Mavericks with the latest Xcode.
-Mike
I tried compiling the example at :
https://sites.google.com/site/propellergcc/documentation/libraries#TOC-Stdio-Devices-Library
It appears to be a few missing definitions resulting from the new code for spi_locking that was added in early January.
This should only impact folks that are doing file based stdio using recent bits from the tree (since January 1).
I'm using the src tree, because propeller-load that comes with SimpleIDE 9.9.45 was crashing.
propeller-load in the src tree provides the expected behavior.
Host system is a Mac running 10.9.1 Mavericks with the latest Xcode.
-Mike
Comments
Edit: I just pushed that change. You shouldn't get that error if you pull updates from Google Code and rebuild. Sorry about that!
Thanks!
David
Sorry for the delay. I needed to setup a machine with a fresh install of SimpleIDE and one with a fresh compile of the tree .
I used a C3 as the target for simple testing. but the target hardware is different. I've added a .bin extension to the name in order to
upload it for attachment. The binary is in a Dropbox folder shared by the two macs both running Mavericks 10.9.1.
I moved the C3 between them and ran the two different propeller-loads below:
Using the old bins from SimpleIDE 0.0.45
host52:consoleio_xmmc petry [master] $ propeller-load -z -b c3 consoleio -r -t
Propeller Version 1 on /dev/cu.usbserial-00001004
Patching __cfg_sdspi_config1 with 090a0b13
Patching __cfg_sdspi_config2 with 19080005
Abort trap: 6
host52:consoleio_xmmc petry [master] $
From a fresh build of the tree
dolly:consoleio_xmmc petry [master] $ propeller-load -b c3 -z consoleio -e -r -t -p /dev/cu.usbserial-0000101D
Propeller Version 1 on /dev/cu.usbserial-0000101D
Patching __cfg_sdspi_config1 with 090a0b13
Patching __cfg_sdspi_config2 with 19080005
Loading the serial helper to hub memory
10392 bytes sent
Verifying RAM ... OK
Loading 'consoleio.pex' to SD card
38560 bytes sent
error: load failed
dolly:consoleio_xmmc petry [master] $
I'll investigate the load failure in the morning, but am glad to have gotten past the abort Trap: 6 and the
undefined symbols. :-)
BTW: Don't the other crt0s need to have the symbols defined? I tried compiling with the LMM
and had both __enable_spi_locking_ret and __enable_spi_locking undefined.
Yes and no. It looks like I forgot to put ifdefs around the call to _enable_spi_locking in the CMM and LMM library builds. Since they don't use cache drivers they have no need for SPI locking. Thanks for mentioning that.
Thanks for the fixes, I look forward to the ifdefs for the other model library builds.
My target hardware isn't a C3, I just use one for testing. It only has eeprom and SPI available for cache. My old code took advantage of the old SD cache driver. The performance wasn't stellar, but acceptable.
I'm trimming some code and hope to fit all the needed functionality in to the LMM model (That's how I stumbled across the undefines). If it won't fit, I have a few SPI memory chips that I'll try adding to the hardware for cache and move back to the xmm model.
Thanks Again,
Mike