Unable to checkout submodule avrlib
  • What's wrong with this picture?

    git clone https://github.com/pichenettes/shruthi-1.git

    git submodule init
    Submodule 'avrlib' (git://github.com/pichenettes/avril.git) registered for path 'avrlib'
    Submodule 'tools' (git://github.com/pichenettes/avril-firmware_tools.git) registered for path 'tools'

    git submodule update
    Cloning into 'avrlib'...
    remote: Counting objects: 707, done.
    remote: Compressing objects: 100% (337/337), done.
    remote: Total 707 (delta 434), reused 618 (delta 346)
    Receiving objects: 100% (707/707), 231.31 KiB | 222 KiB/s, done.
    Resolving deltas: 100% (434/434), done.
    fatal: reference is not a tree: 48f00e5888be6cd6207ead8d30a1104819ca5335
    Cloning into 'tools'...
    remote: Counting objects: 54, done.
    remote: Compressing objects: 100% (48/48), done.
    remote: Total 54 (delta 22), reused 25 (delta 5)
    Receiving objects: 100% (54/54), 12.77 KiB, done.
    Resolving deltas: 100% (22/22), done.
    Submodule path 'tools': checked out '98c24a14544cb12f063c754940ebf8c4ab9b9204'
    Unable to checkout '48f00e5888be6cd6207ead8d30a1104819ca5335' in submodule path 'avrlib'
  • This seems to work as a workaround. Cloning the avrlib module manually.

    git clone https://github.com/pichenettes/avril.git
    Cloning into 'avril'...
    remote: Counting objects: 707, done.
    remote: Compressing objects: 100% (337/337), done.
    remote: Total 707 (delta 434), reused 618 (delta 346)
    Receiving objects: 100% (707/707), 231.31 KiB | 137 KiB/s, done.
    Resolving deltas: 100% (434/434), done.


    rm -rf avrlib/
    mv avril avrlib
  • Hmmm the manual says make sure the filesize is below 64512 bytes. But it doesn't say what to do if it's not :S help!
  • I am deeply sorry about that. With all the new features, I am so close to the maximum size limit that the version of the compiler generating the code does matter.

    Option 0 is to check an earlier branch (v0.95) which is smaller.

    Option 1 is to trim into the code until a better solution is found. Locate bits of code and comment them (for example in oscillator.h, replace some entries in fn_table_ by RenderSilence).

    Option 2 is to use avr-gcc-4.3.3 – which is the version I use and which seems to generate more compact code than the newer versions.

    ATMega1284p is not an option since it would require a modification of the control board.

  • I was after the 0.95 version anyway, but i'll give 4.3.3 a try soon. Thanks.
  • I have thought about this and there might be a solution to get 3 or 4k. This would drastically change the architecture of the code and require a lot of testing.

    I will try to work on it on my “spare cycles”, but I hope you’ll understand it would be extremely risky for me to throw away “battle-tested” code. Maybe call it a “developer branch”?

  • A very rough check gives me a hint that my idea might work and yield a code size reduction of 2.5k. I’ll continue digging and post a preview. Firmware development on the main branch is frozen until then.

  • I have pushed the change to the current master. I’ve browsed through 140 presets and they seemed to be unaffected by the change.

  • Thanks! I'll give it a go this weekend. I'll be away for work the next few days.