I have a program that I run on an RCM4300 when I compile it to flash using Dynamic C 10.72. If I compile the same program to a bin file and load the bin file with RFU 10.72, the program loads but it will not run. Any ideas as to why it won’t run after removing the program cable and repowering the RCM4300?
What happens when you try one of the simple sample programs? Perhaps one that just flashes an LED on the development board?
I can use RFU to load a sample program and it runs. I can use the RFU to load a bin file built in 2010 with an older version of Dynamic C and it runs. If I compile that 2010 source with Dynamic C 10.72 and load it to flash it runs. If I compile the 2010 source to a bin file, RFU will load it but it won’t run. Could it be a problem with my project options in Dynamic C 10.72?
Can you modify the program to toggle an I/O line at the start of main() to see if you even reach that point? It likely isn’t the binary options, since the settings will be virtually identical as when you compile to the device. Have you selected the correct board for Targetless compilation? (I’m guessing yes, since I don’t think RFU will load to the wrong board type.) Are you saying that “Compile to Target/Store in Flash” in Dynamic C allows you to remove the debug cable, power cycle the module, and have it work? If you install via RFU, can you go back to Dynamic C and compile Samples/RemoteProgramUpdate/firmware_report.c to RAM and tell me what it reports?
Tom,
I compiled my program to Flash using Dynamic C 10.72. When I remove the programming cable and re-power the Rabbit, it runs.
This is the firmware_report for this case:
Firmware installed as Z-image:
version: 1
sequence: 0
address: 0
flash cmd: 0x00000000
checksum: 0x354c
program name: []
bytes in firmware: 309452 bytes
board type: 0x2a00
MB type: 0x00000000
firmware version: 0.00
compiler version: 10.72
compiler flags:
separate I&D spaces: enabled
include debug instructions (RST28): yes
compile to: FLASH
can load from secondary: yes
.bin is: normal
timestamp: 12/02/2016 13:29:43 (1165152583)
header crc32: 0x59709f88
What happens if you compile to a binary, install with RFU, and then compile & run the firmware_report from RAM? Does it report similar results? RST28 should be disabled in that case, but all else the same.
I compiled my same program to a bin file using Dynamic C 10.72 and loaded it with RFU. When I ran the firmware_report, the only differences were
checksum: 0x094d
bytes in firmware: 304712
compiler flags:
include debug instructions (RST28): no
can load from secondary: no
timestamp 12/02/2016 21:12:18 (1165180338)
header crc32: 0xbfd33f3
Are you using serial port A? Can you redirect STDIO to port A and include some printf() debugging to see if your program even reaches the start of main()? Can you try it with DC 10.72A (installer on product page at https://www.digi.com/support/productdetail?pid=4978).
Any updates on this issue? Both the .BIN and Dynamic C compile-to-flash are using the correct board type of 0x2a00, right?