Мануал по установке и использованию evic-sdk на свежеустановленной Linux Mint 18.1 LXDE.
Выбор системы обусловлен тем, что устанавливалась в виртуальную машину и только для этой цели.
- Подготовка системы:
Запускаем Терминал.
Здесь и далее вся работа ведётся относительно папки пользователя.
Вбиваем данные команды последовательно, подтверждая нажатием Enter.
Код:sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa sudo apt update sudo apt install git python3-dev python3-setuptools gcc-arm-embedded- Установка python-evic:
Код:git clone https://github.com/Ban3/python-evic cd python-evic sudo python3 setup.py install cd ..- Подготовка evic-sdk:
Теперь необходима перезагрузка!Код:git clone https://github.com/ReservedField/evic-sdk.git cd evic-sdk wget -O nuvosdk.zip http://www.nuvoton.com/opencms/resource-download.jsp?tp_GUID=SW0120140916095112 unzip nuvosdk.zip rm -f nuvosdk.zip mv M451BSP nuvoton-sdk echo "export EVICSDK=$(pwd)" >> $HOME/.bashrc
Делаем это вручную или вводим команду:
Код:shutdown -r 0- Установка evic-sdk:
Запускаем Терминал.
Код:cd evic-sdk make- Компиляция примера:
Настройка завершена! Переходим к более сложному...Код:cd example cd helloworld make- Сборка дампера загрузчика:
- Запускаем Терминал, загружаем и настраиваем код.
Код:cd evic-sdk cd example wget https://gist.github.com/ReservedField/6125e9c7d2b9f92536ee/archive/e2a782d7cbccc6ce09122927dfb2a512f04f6580.zip unzip e*.zip rm -f e*.zip mv 6* ldrom_dump cd ldrom_dump sed -i -r 's/String\(txtBuf/\(data, 4/g' ldrom_dump.c make- Получение дампа.
Прошиваем устройство только что созданным кастомом.
Включаем, подключаем к ПК и устанавливаем драйвер. Linux (не тестировано)
Проверяем активный COM порт:
Запускаем получение дампа (пример):Код:dmesg | grep tty
Нажимаем кнопку Fire на моде.Код:sudo cat /dev/ttyACM0 > ldrom.bin
Windows
Загружаем и запускаем RealTerm.
Переходим на вкладку Capture, указываем путь и имя дампа. Например, D:\ldrom.bin.
Нажимаем кнопку Start: Overwrite. Нажимаем кнопку Fire на моде.
В нижней части программы текст Char Count:0 сменится на Char Count:4096. Закрываем программу.- Дамп создан!
- Сборка кастомной прошивки:
- Запускаем Терминал. Переходим в папку с SDK и делаем новую папку для CFW.
Код:cd evic-sdk mkdir project cd project- Загружаем исходный код кастомной прошивки на выбор (оригинальный myevic или его форки):
Код:git clone https://github.com/ClockSelect/myevic.git git clone https://github.com/TBXin/myevic.git myevic_rk git clone https://github.com/MicroSur/myevic.git myevic_ms git clone https://github.com/arafey/openevic.git- Переходим в папку и вносим необходимые исправления для сборки:
Код:cd myevic sed -i -r 's/armv7e-m\/libnosys.a/\/usr\/arm-none-eabi\/lib\/libnosys.a/g' linker.ld sed -i -r 's/armv7e-m\/libgcc.a/\/usr\/lib\/gcc\/arm-none-eabi\/6.3.1\/thumb\/v7e-m\/libgcc.a/g' linker.ld sed -i -r 's/armv7e-m\/libc.a/\/usr\/arm-none-eabi\/lib\/libc.a/g' linker.ld sed -i -r 's/armv7e-m\/libm.a/\/usr\/arm-none-eabi\/lib\/libm.a/g' linker.ldЗачем это?
Код выше призван на новых версиях компилятора убрать ошибки вида:
Код:arm-none-eabi-ld: cannot find armv7e-m/libnosys.a arm-none-eabi-ld: cannot find armv7e-m/libgcc.a arm-none-eabi-ld: cannot find armv7e-m/libc.a arm-none-eabi-ld: cannot find armv7e-m/libm.a- Вот и всё! Можно запускать компиляцию командой make и забирать готовую прошивку в папке bin.
Успешность завершения процесса можно увидеть по финальной строчке "Writing APROM image...OK.".