Shop OBEX P1 Docs P2 Docs Learn Events
propeller flashing protocol — Parallax Forums

propeller flashing protocol

fezmonkeyfezmonkey Posts: 41
edited 2010-06-06 07:26 in Propeller 1
I am not finding the documentation on how the propeller is loaded on power up. I need to make my own software (in C) that loads a binary file in the propeller RAM and run it.

Where do I find info on this?

Also, do you guys know if built-in-loader has commands to program the EEPROM or parallax cheat and load a software on power up that in turn programs the EEPROM?

Comments

  • fezmonkeyfezmonkey Posts: 41
    edited 2010-06-05 13:06
    I can't use DLLs. I did find some python code but couldn't find any C code!

    No one has made a linux/mac loader for propeller? Maybe in java?

    I guess I have to figure out the 3-bit protocol on my own...

    Thanks guys
  • KyeKye Posts: 2,200
    edited 2010-06-05 13:21
    Here's the bootloader, and heres the prop loader code.

    Its everything you need to figure out what to do. I would just read the prop loader code as it is what your application will have to do. The bootloader code is the thing that boots the prop chip.

    You know, someone else asked these same questions before. You should search the forum for this topic and PM that person.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nyamekye,
  • Andrey DemenevAndrey Demenev Posts: 377
    edited 2010-06-05 13:29
    I use the attached code in a QT application. It is C++, not C, but could give you a starting point.

    The code only loads to RAM. If you wish to load into EEPROM, you need to send a different command, and also allow some delay for EEPROM write and verify.
  • fezmonkeyfezmonkey Posts: 41
    edited 2010-06-05 21:49
    Thanks for all the help. I think I understand what is going on now but can someone correct me if I am wrong.

    On power up, the host has to send 250 bit of LFSR. These are constant array (correct?) but to save memory, they are calculated on power up.
    Now, once the propers receives the numbers and they are correct, the will now send its own 250 bit LFSR which is a constant array (correct?) but the propeller calculates them at run-time to save on memory.

    So in theory, it is easier to just have a constant array in my program for the LFSR so I wouldn't have to calculate it every time, correct?

    Finally, after propeller and host exchange and verify the LFSR, a simple command can be sent to load the program in ram.
  • BradCBradC Posts: 2,601
    edited 2010-06-06 04:02
    fezmonkey said...

    No one has made a linux/mac loader for propeller? Maybe in java?

    www.fnarfbargle.com/bst

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "I mean, if I went around sayin' I was an emperor just because some moistened bint had lobbed a scimitar at me they'd put me away!"
  • fezmonkeyfezmonkey Posts: 41
    edited 2010-06-06 04:05
    I found that already but I was going after source code since I will be using this in an embedded project. I thought you only provide this compiled and source codes are available, right?
  • BradCBradC Posts: 2,601
    edited 2010-06-06 07:26
    fezmonkey said...
    Thanks for all the help. I think I understand what is going on now but can someone correct me if I am wrong.

    On power up, the host has to send 250 bit of LFSR. These are constant array (correct?) but to save memory, they are calculated on power up.
    Now, once the propers receives the numbers and they are correct, the will now send its own 250 bit LFSR which is a constant array (correct?) but the propeller calculates them at run-time to save on memory.

    So in theory, it is easier to just have a constant array in my program for the LFSR so I wouldn't have to calculate it every time, correct?

    It's easy to calculate the LFSR bit by bit as you send it. You can do it in a constant array, but it's not complex to calculate on the fly.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "I mean, if I went around sayin' I was an emperor just because some moistened bint had lobbed a scimitar at me they'd put me away!"
Sign In or Register to comment.