by Lionel Debroux » 23 Apr 2019, 07:27
Un nouveau rebase sur upstream, commit 03f9048778ecad2bbd7d07d01f3b64153a36c177 , et l'habituelle mise à jour de mon repo
https://github.com/debrouxl/circuitpython .
J'ai eu pas mal de soucis pour réaliser cette version, parce que les changements dans upstream, en particulier une mise à jour du submodule tinyusb et la nécessité d'activer le module board, avaient à la fois cassé la communication USB avec l'ordinateur et fait dépasser la taille disponible. Le pauvre critor a testé plus de versions qui ne fonctionnaient pas que de versions qui fonctionnaient, avant que je puisse comprendre en partie et poster dans un bug report. Il s'est avéré que ce n'était pas le même problème que l'autre utilisateur, je n'enlevais simplement pas les capacités USB HID, USB MIDI et les strings correspondantes des descripteurs USB. Auparavant, cela ne posait pas de problème, mais maintenant, si. Quand on vire toutes ces données inutiles des descripteurs, on gagne de l'ordre de 400 octets (2 pour mille), en plus...
Quant à la limite de taille, j'ai fini par voir que le module board référençait I2C, SPI et UART, dont on se contre-fiche sur le TI-Python Adapter, faute de ports. Si on désactive les références à chacun de ces trois objets, on gagne immédiatement environ 10 KB (!), parce que plein d'éléments de code et données non référencés peuvent alors être éliminés par le linker. En fin de compte, pour rester dans la limite des 183.75 KB tout en ne réduisant pas trop la fonctionnalité pour les autres boards à base d'ATSAMD21 qui proposent les I/O habituelles, j'ai choisi d'activer l'implémentation MPZ des entiers longs - comme le fait TI - ainsi qu'os et storage, et de désactiver seulement l'I2C. Avec ça, il reste de la marge - qui sera partiellement rognée avec l'inclusion de l'émulation de la protection de TI - et il n'y a donc, pour l'instant, plus besoin que d'une seule version des binaires
* branche master: DPFP + cmath + fonctions spéciales maths + MPZ longint + storage + os:
- Code: Select all
LINK build-trinket_m0/firmware.elf
1036 bytes free in flash out of 188160 bytes ( 183.75 kb ).
26736 bytes free in ram for stack out of 32768 bytes ( 32.0 kb ).
Create build-trinket_m0/firmware.bin
Create build-trinket_m0/firmware.uf2
Converting to uf2, output size: 374272, start address: 0x2000
Wrote 374272 bytes to build-trinket_m0/firmware.uf2.
You do not have the required permissions to view the files attached to this post.