pvvx
Активный участник сообщества
При сборке своего добавляемого obj на SDK надо учесть только конфигурационные хидеры из Arduino в папочке hardware\development\rtl8???\system\sdk\project\rtl8710\inc\. Особенно lwipopts.h, если лепите SNTPО! Благодарю за напоминание.
Что-то меня переглючило, что в обычных либах нужно соблюдать версию/инфраструктуру сборки, как в линуксовом ядре. А "нормальные" либы последний раз собирал в начале 90х, переписывая что-то на турбо-ассемблере
Чую, это всё Menta-ы с CoDeSys-ами виноваты... так и до ардуины головного мозга недалеко
Но самый простой вариант, как уже написал: кинуть исходник в папку hardware\development\rtl87xx\cores\arduino\. Она его от туда подхватит и даже без проблем заменяет встретившиеся в *.a процедуры и данные с одинаковыми именами. В итог пойдет из cores\arduino...
После трасляции можно выудить obj этого файла и запихать в lib_xxx.a
Примерно так и были собраны имеющиеся lib_rtl8xxx.a, lib_lwip.a, ...
Исходники к вставленным и замененным файлам obj в rtlDunio находятся в RTL00MP3/RTL00_SDKV35a at master · pvvx/RTL00MP3 · GitHub
Arduino от Ameba, из которой взята основа rtlDuino, базируется на SDK3.5, а SDK4.0 имеет расхождение.
Разобрать все либы на obj по папочкам.bat :
Код:
for %%a in (*.a) do (
md %%a.o
cd %%a.o
arm-none-eabi-ar x ..\%%a
rem for %%o in (*.o) do arm-none-eabi-objdump -S %%o > %%o.asm
cd ..
)
Код:
del lib_rtl8710.a
arm-none-eabi-ar ru lib_rtl8710.a lib_rtl8710/*.o
Последнее редактирование: