bootloader that xfers code from I2C into program memory


Closed Thread
Results 1 to 31 of 31

Hybrid View

  1. #1


    Did you find this post helpful? Yes | No

    Default Re: bootloader that xfers code from I2C into program memory

    Got it, thanks.

    Makes sense

    picster

  2. #2
    Join Date
    Sep 2009
    Posts
    755


    Did you find this post helpful? Yes | No

    Default Re: bootloader that xfers code from I2C into program memory

    Great!
    Did you try to compile code for 16F with RESET_ORG?

  3. #3


    Did you find this post helpful? Yes | No

    Default Re: bootloader that xfers code from I2C into program memory

    YUP, and it worked fine Had to download MPLABX before continuing...

    I'll be writing a small program for Windows to xfer the code via RS-232 INTO the I2C EEPROM (which the Pic's main program will manage), in order to test it properly. Weekend stuff.

    Will let you know how it works out, but this looks really promising, thanks again!

  4. #4
    Join Date
    Sep 2009
    Posts
    755


    Did you find this post helpful? Yes | No

    Default Re: bootloader that xfers code from I2C into program memory

    Take look at microchip AN851. That is VB6 application for bootloader.
    I used that as starting point for my VB .net app.
    Other solution is to export hex file as text, eg from MPLAB X program windows or some programmer software.

  5. #5


    Did you find this post helpful? Yes | No

    Default Re: bootloader that xfers code from I2C into program memory

    Will have a look - I use VB6 a fair bit so that should work out well. Thx!

  6. #6


    Did you find this post helpful? Yes | No

    Default Re: bootloader that xfers code from I2C into program memory

    Ok, so far so good with a little test program for calling code that's pre-compiled in upper program memory, so I think I'm on track.

    Item of note for the 16F series (I'm using the 16F1788):

    DEFINE RESET_ORG 36B0h
    *****also needs*****
    DEFINE USE_LINKER 1

    Both lines must be present when generating the "upper memory code" above 800h.
    (otherwise there's a compile error re: library exceeding address 800h - found this little gem here:
    http://www.picbasic.co.uk/forum/show...+cannot+exceed )

    I generated the complied hex, then copied it out of MPLAB, pasted in a text file, did a little search/replace and editing, and pasted the result at the end of the program as ASM as you demonstrated...

    used a goto to jump to it at the beginning of my program, and it worked like a charm.

    Looking at the resulting compiled hex shows the "upper space subroutine" right where it should be.

    I'll let you know how the xfer from i2c goes, but I can't foresee any issues at this rate.

  7. #7
    Join Date
    Sep 2009
    Posts
    755


    Did you find this post helpful? Yes | No

    Default Re: bootloader that xfers code from I2C into program memory

    Great!
    I started with led blink, and worked from there.
    Good luck, and keep us posted

  8. #8


    Did you find this post helpful? Yes | No

    Default Re: bootloader that xfers code from I2C into program memory

    Got an LED flasher working from I2Cread->writecode with the program that performs the update in upper memory per the above.

    One subtle difference:

    Writecode on a PIC16Fxxxx is word length, so has to be transferred 2 bytes at a time from I2C to ONE codespace address

    this works fine, just reading data out of the i2c sequentially as WORDS from every 2nd location:

    ' Now get data from I2C and write it to codespace
    for CodeAddr=0 to 13919
    I2CAddr=2*CodeAddr
    i2cread PORTB.7, PORTB.6, I2CControl, I2CAddr, [Instruction], I2Cerror
    writecode CodeAddr, Instruction
    next CodeAddr

    Thanks again!

    picster

Similar Threads

  1. Program Code and Program Memory
    By DenFrod in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 8th February 2007, 14:51
  2. Use internal program memory like DATA memory
    By flotulopex in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 30th December 2006, 18:38
  3. using Flash Program Memory ?
    By muskut in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 11th October 2006, 15:17
  4. PIC16F88, Bootloader & I2C Memory
    By digilord in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 30th December 2005, 15:36
  5. program memory size
    By volcane in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 25th October 2005, 19:45

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts