I don't even know...
DavidZemon
Posts: 2,973
I'm trying to breathe here... but I'm at wits end. Here's my story:
Any help would be greatly appreciated. When I left work yesterday at 5pm, the board was working great, being programmed from my work computer running Ubuntu 12.04 (and propgcc installed from source... last updated about a week ago).
- Sit down in the morning, plug the Propeller (Quickstart board) into my computer (Ubuntu 12.04) and test some code that I just finished writing yesterday. Code compiles fine and programs to the board - result in the serial terminal looks similar to when the baud rate is incorrect.
- I assume something is wrong with the new code, so I write a quick "Hello world" program. Same result.
- I add a blinking LED pattern (rotating the blinking LED down the line once per second) to the "Hello world" program, and the LED blinks perfectly. This makes me think that something is wrong with the UART to USB chip on the dev board, so I call Parallax to request an RMA. Chris encourages me to do some more software debugging, which I do.
- I pull out my personal laptop (running Ubuntu 13.04 and the version of GCC packaged with SimpleIDE 0.8.5), retype the simple "Hello world" program, and try again. This time, propeller-load fails at the verification stage.
- Assuming I was right in the first place and that it's a hardware problem, I pull out my own Quickstart board from home and re-run the tests. Same exact problem in both cases. I am now assuming there is no hardware problem and something WHACK has happened to both of my computers.
- I pull up a co-worker's Windows 7 computer sitting next to me with SimpleIDE 0.9.43 on it and run a test directly from SimpleIDE (no custom make file this time)... it works flawlessly. I cuss, I ponder, I cuss some more, I try to breathe, and finally I wipe my spare partition on my personal laptop and install a fresh version of Ubuntu on it (13.10).
- Not wanting to test any new weird versions of propgcc, I download the binary package for progcc 0.3.4 and move the files to /opt/parallax. Again, recompile and re-run the above mentioned program (with the blinking LEDs) and I get the same weird output
david@balrogJr-Saucy:$ make -f ../Makefile run /opt/parallax/bin/propeller-load -bQUICKSTART HelloWorld.elf -r -t -e Propeller Version 1 on /dev/ttyUSB0 Loading HelloWorld.elf to EEPROM via hub memory 4640 bytes sent Verifying RAM ... OK Programming EEPROM ... OK Verifying EEPROM ... OK [ Entering terminal mode. Type ESC or Control-C to exit. ] � �� ����P � �� ����P � �� ����Pmake: *** [run] Interrupt $
Any help would be greatly appreciated. When I left work yesterday at 5pm, the board was working great, being programmed from my work computer running Ubuntu 12.04 (and propgcc installed from source... last updated about a week ago).
Comments
This is a Quickstart issue.
Parallax chose to leave P30 floating so people could reuse it for other purposes (not how I would have done it).
One solution to this is to set bit 30 on at the beginning of the program. I.E. DIRA |= (1 << 30)
The other solution is to add a 10K or 100K pull-up on the P30 pin.
gpio.h contains a lengthier version of the following:
The make file specifies the QUICKSTART board, which contains:
--Edit--
I added the snippet of code as per jazzed's suggestion and it didn't have any effect.
You can also set the Warn All checkbox in the SimpleIDE Project Manager -> Compiler Tab.
I don't really see how the missing #include "stdio.h" affects this, but that's ok.
It's a bit odd to call __simple_printf() directly.
I wish there was some way to request all warnings *except* assignment within if-statement.
I don't understand how missing the include affected it either... but it DEFINITELY did. I added the line, it works. I removed the line, it broke again.
I don't.
if ((err = DoCoolFunction())) {LogErrorCode(err);}
Hmm, I guess it was a typo. That's probably the first thing I did this morning. Sorry for the confusion.