makefile под linux

Кто-нибудь компилировал встраиваемый код под linux?
Пытаюсь прикрутить файл из виндовых примеров - но:
Первая проблема - в мейкфайле не указана переменная SHELL, а значит по умолчанию будет использован /bin/sh . А он не понимает конструкции типа if [ expr1 == expr2 ]. Это синтаксис /bin/bash
Для того, чтоб это работало в /bin/sh нужно менять эту конструкцию на if [ expr1 = expr 2 ]
либо в мейкфайле написать SHELL = /bin/bash

Вторая проблема - отсутствуют утилиты типа arm-elf-gcc и тому подобные. По идее нужно собирать тулчейн под данную архитектуру из исходников.

Может кто-то уже делал какие-либо действия в этом направлении?

Re: makefile под linux

Jeevoy пишет:

Может кто-то уже делал какие-либо действия в этом направлении?

Да под линуксом не должно быть особых проблем с компиляцией бинарников для ключа, вот примерно процесс  настройки среды http://vn1k.blogspot.com/2010/11/lpc134 … pment.html, еще видимо придется скачать и собрать newlib  , но проблема в том,  что мейкфайл использует секретную утилиту map_parse, которая создает файлик bmap  в не описаном нигде формате, и который требуется для загрузки бинарника в сам ключ.  Часть полей bmap файла я нашел, создавать не пробовал, но думаю может прокатить. Так что если будет желание все же попробовать под линуксом могу поделиться информацией.

Re: makefile под linux

Neekeetos пишет:
Jeevoy пишет:

Может кто-то уже делал какие-либо действия в этом направлении?

Да под линуксом не должно быть особых проблем с компиляцией бинарников для ключа, вот примерно процесс  настройки среды http://vn1k.blogspot.com/2010/11/lpc134 … pment.html, еще видимо придется скачать и собрать newlib  , но проблема в том,  что мейкфайл использует секретную утилиту map_parse, которая создает файлик bmap  в не описаном нигде формате, и который требуется для загрузки бинарника в сам ключ.  Часть полей bmap файла я нашел, создавать не пробовал, но думаю может прокатить. Так что если будет желание все же попробовать под линуксом могу поделиться информацией.

Да, утилиты hex2bin и map_parse не существуют сейчас в linux варианте и  не поставляются в исходных кодах. Если будет заметный спрос на сборку кода под Linux, мы подберем соответствующий тулчейн и утилиты. В настоящее же время рекомендуем пользоваться Windows для сборки кода под Guardant Code.

Re: makefile под linux

AndreyStepin пишет:

Да, утилиты hex2bin и map_parse не существуют сейчас в linux варианте и  не поставляются в исходных кодах. Если будет заметный спрос на сборку кода под Linux, мы подберем соответствующий тулчейн и утилиты. В настоящее же время рекомендуем пользоваться Windows для сборки кода под Guardant Code.

А что мешает опубликовать формат данного файла? Грубо говоря, я пока разбирался с мэйкфайлом вынужден был найти(отчасти) что в нем лежит, вы хотите чтобы все так делали до тех пор пока не появится чудо в виде тулчейна под линукс?
вот формат bmap для обычного бинарника, ничего секретного:
Все числа в формате Little Endian, как и на x86, длина файла 9х4 = 36 байт, всего 9 записей типа uint32 следующих друг за другом:

0 0 // тут всегда ноль
1 ROM ORIGIN
2 ROM LENGTH
3 BINARY LENGTH  // длина бин файла
4 RAM ORIGIN // помним о засаде . вместо 0x10003000 для которого собирается бинарник, тут должно быть 0x40003000
5 RAM LENGTH
6 RAM LENGTH  // всегда повторяет предыдущее поле
7 0 // ноль
8 0 // ноль


По идее, кому потребуется сможет создать утилиту, заменяющую map_parse, что касается утилиты hex2bin, даже не знаю зачем она, есть же родная утилита из gcc создающая бинарник из эльф файла примерно так :
arm-none-eabi-objcopy -O binary dongle.elf dongle2.bin