/mcprog

A utility for programming the flash memory of Elvees Multicore processors.

Primary LanguageCGNU General Public License v2.0GPL-2.0

MCPROG

Утилита MCPROG предназначена для записи программного обеспечения в память отладочных модулей на базе микропроцессоров Элвис Мультикор (http://multicore.ru/index.php?id=27).

Вызов

При вызове без параметров утилита MCPROG определяет тип процессора и flash-памяти, установленных на плате. Например:

Processor: MC12 (id 20777001)
Board: pkbi
Flash at 0x1FC00000: SST 39VF800 (id 0x00BF/0x2781), 2 Mbytes, 32 bit wide
Flash at 0x1FA00000: SST 39VF800 (id 0x00BF/0x2781), 2 Mbytes, 32 bit wide
Flash at 0x02000000: SST 39VF800 (id 0x00BF/0x2781), 4 Mbytes, 64 bit wide

Запись в flash-память:

        mcprog [-v] [-e0,-e1,-e2] file.srec
        mcprog [-v] [-e0,-e1,-e2] file.hex
        mcprog [-v] [-e0,-e1,-e2] file.bin [address]

Запись в статическую память:

        mcprog -w [-v] [-g address] file.srec
        mcprog -w [-v] [-g address] file.hex
        mcprog -w [-v] [-g address] file.bin [address]

Чтение памяти в файл:

        mcprog -r file.bin address length

Стирание всей флеш-памяти:

        mcprog -e1 [address]

Проверка очистки флеш-памяти:

        mcprog -c [address]

Параметры: file.srec - файл с прошивкой в формате SREC file.hex - файл с прошивкой в формате Intel HEX file.bin - бинарный файл с прошивкой address - адрес flash-памяти, адрес флеш-памяти NOR по умолчанию 0xBFC00000 адрес флеш-памяти SPI по умолчанию 0x00000000 length - размер считываемой области памяти в байтах -f, --spi - режим работы с SPI-flash -c - проверка очистки флеш-памяти -e <erase> - режим стирания флеш-памяти (erase: 0 - флеш-память не стирается, 1 (по умолчанию) - стирание всей флеш-памяти, 2 - очистка области для программируемого файла) -v - без записи, только проверка памяти на совпадение -w - запись в статическую память -r - чтение памяти -b <name> - выбор типа платы -g <address> - начать исполнение с уазанного адреса -D - режим отладки -h, --help - вывод вспомогательной информации -V, --version - вывод версии -C, --copying - вывод информации об авторских правах -W, --warranty - вывод информации о гарантии

Входной файл должен иметь простой бинарный формат, или SREC, или Intel HEX. Форматы SREC и HEX предпочтительнее, так как в них имеются контрольные суммы и информация об адресах программы. Преобразовать формат ELF или COFF или A.OUT в SREC или HEX можно командой objcopy, например:

	objcopy -O srec firmware.elf firmware.srec
	objcopy -O ihex firmware.elf firmware.hex

Файл конфигурации

Утилита считывает параметры платы из файла конфигурации "mcprog.conf". Файл должен находиться в текущем каталоге, либо в каталоге /usr/local/etc (для Linux), либо в каталоге утилиты "mcprog.exe" (для Windows). В файле для каждого типа платы задаются значения регистров CSR и CSCONi, а также диапазоны адресов секций flash-памяти.

Можно определять до 16 flash-секций вида "flash foobar = first-last". Здесь foobar - произвольное имя, first и last - первый и последний адреса секции.

Тип платы задаётся при вызове флагом "-b", либо параметром "default" в конфигурационном файле.

Cборка проекта

Требования к окружению под OC Windows

Для сборки программы под ОС Windows необходим набор инструментов MinGW-w32, доступный по ссылке:

Архив необходимо распаковать и добавить в переменную окружения PATH.

set PATH=<путь_до_инструментов>\mingw32\bin;%PATH%

Команда сборки для Windows:

mingw32-make -f make-mingw

Требования к окружению под OC Centos 7

Для сборки программы под ОС Centos 7 необходимо установить библиотеки libusb, libusb-devel, libstdc++, libstdc++-static, наборы инструментов gcc и gcc-c++.

yum install gcc gcc-c++ libusb libusb-devel libstdc++ libstdc++-static

Команда сборки для Centos 7:

make all

Драйвер LPT-порта для Windows

Под Windows 2000/XP/Vista нужно установить драйвер GIVEIO, позволяющий прямой доступ к параллельному порту.

  1. Кладём giveio.sys в C:\WINDOWS\system32\drivers\

  2. Запускаем install.reg

  3. Перезагружаемся