Портирование кода прошивки на GCC (Porting firmware to GCC)
Moderator: STC
Re: Портирование кода прошивки на GCC
кстати. есть следующая мысль. нужно попробовать скомпилировать прошивку _старым_ winavr, который соделжит в себе gcc версии 3.x -- он даёт меньший по размеру код.
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Портирование кода прошивки на GCC
Я только собрал эмулятор ДПКВ, времени проверить новую прошивку не было.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Re: Портирование кода прошивки на GCC
попробовал этим -- WinAVR-20060421 -- скомпилировал. выдал:
C:\secu3\secu3app>sh ./avrmem.sh secu-3_app.elf
AVR Memory Usage:
-----------------
Program: 15284 bytes
(.text + .data + .bootloader)
Data: 1227 bytes
(.data + .bss + .noinit)
правда, ругается на адрес boot_loader_start -- пишет, что нечётный (?). я его ручками поправил, чтобы скомпилировался, но работать так оно не будет.
ещё потребовалось #include "eeprom.h" перенести в начала файлов, поправить __eeput и __eeget на _eeput и _eeget, использовать директиву линкера "--allow-multiple-definition", и скопировать "delay_basic.h" из позднего winavr.
в общем, нужно использовать "стабильный" winavr, либо avr с большим объёмом памяти.
может, помогут мои ковыряния.
C:\secu3\secu3app>sh ./avrmem.sh secu-3_app.elf
AVR Memory Usage:
-----------------
Program: 15284 bytes
(.text + .data + .bootloader)
Data: 1227 bytes
(.data + .bss + .noinit)
правда, ругается на адрес boot_loader_start -- пишет, что нечётный (?). я его ручками поправил, чтобы скомпилировался, но работать так оно не будет.
ещё потребовалось #include "eeprom.h" перенести в начала файлов, поправить __eeput и __eeget на _eeput и _eeget, использовать директиву линкера "--allow-multiple-definition", и скопировать "delay_basic.h" из позднего winavr.
в общем, нужно использовать "стабильный" winavr, либо avr с большим объёмом памяти.
может, помогут мои ковыряния.
-
- LQFP144 - On Top Of The Game
- Posts: 1664
- Joined: Fri Jul 01, 2011 2:10 pm
- Location: г Уфа
Re: Портирование кода прошивки на GCC
вопрос - можно ли "подсовывать" в новую прошивку "старые" модули целиком?
ну это я к тому что например подсовывая модули и компилируя как обычно через IDE IAR , проверяя результат , возможно я найду в каком модуле появляются пропуски?
ну это я к тому что например подсовывая модули и компилируя как обычно через IDE IAR , проверяя результат , возможно я найду в каком модуле появляются пропуски?
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
ВАЗ21310 1.7i Я7.2 2001г
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Портирование кода прошивки на GCC
Можно попробовать.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
-
- LQFP144 - On Top Of The Game
- Posts: 1664
- Joined: Fri Jul 01, 2011 2:10 pm
- Location: г Уфа
Re: Портирование кода прошивки на GCC
Уже начал записывать видео , оказалось что скорости камеры сотового мало ( практически не видно пропуск светика.
но
ПРИНОШУ СВОИ ИЗВИНЕНИЯ
однако жду взаимности , так как я раскусил в чем суть косяка , и это просчет автора
я сейчас взял именно тот фаил сделаный тобой на GCC , и тупо залил его --- результат -- пропусков НЕТ!!!!!!!!
почему то нет и реал тайм таблиц
до этого я , ввиду того что мой мотор "сосет" сильнее других , я каждый раз "правил" прошивку в IDE IAR убирая ошибку дад ставля предел 0.2 вольта .
итак - новые прошивки СОБРАННЫЕ IDE IAR 5.50 дают пропуски!!!! хоть с реал тайм таблицами , хоть без!!!!!
вот и вся "петрушка"
ты же я так понял проверял только ту что собрал на GCC )))) и Игорь ее же залил )
так что пересоберии ее IARом и посмотри на это в живую
теперь вопрос - я вообщеееее не понял как работать с WinAvr , ничего не смог в нем сделать вообще , можно тебя попросить выложить проект WinAVR как для IAR раньше было ? я сам пожалуй не смогу его создать(((
а править и изучать прошивку в "блокноте" не вариант (((
но
ПРИНОШУ СВОИ ИЗВИНЕНИЯ
однако жду взаимности , так как я раскусил в чем суть косяка , и это просчет автора
я сейчас взял именно тот фаил сделаный тобой на GCC , и тупо залил его --- результат -- пропусков НЕТ!!!!!!!!
почему то нет и реал тайм таблиц
до этого я , ввиду того что мой мотор "сосет" сильнее других , я каждый раз "правил" прошивку в IDE IAR убирая ошибку дад ставля предел 0.2 вольта .
итак - новые прошивки СОБРАННЫЕ IDE IAR 5.50 дают пропуски!!!! хоть с реал тайм таблицами , хоть без!!!!!
вот и вся "петрушка"
ты же я так понял проверял только ту что собрал на GCC )))) и Игорь ее же залил )
так что пересоберии ее IARом и посмотри на это в живую
теперь вопрос - я вообщеееее не понял как работать с WinAvr , ничего не смог в нем сделать вообще , можно тебя попросить выложить проект WinAVR как для IAR раньше было ? я сам пожалуй не смогу его создать(((
а править и изучать прошивку в "блокноте" не вариант (((
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
ВАЗ21310 1.7i Я7.2 2001г
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Портирование кода прошивки на GCC
Ошибаешься, я как раз выкладываю прошивки скомпилированные IAR-ом для меги32. Можешь сравнить по размеру кода.
Работать с WinAvr очень просто. Набираешь make и начинается процесс компиляции. У меня нет проекта в winAvr. Все что есть, я выложил. Я специально убрал файлы IDE для IAR и сделал Makefile. Makefile это круто. А в том, что ты используешь блокнот, виноват только ты - есть куча нормальных редакторов, как под Windows, так и под Linux.
Работать с WinAvr очень просто. Набираешь make и начинается процесс компиляции. У меня нет проекта в winAvr. Все что есть, я выложил. Я специально убрал файлы IDE для IAR и сделал Makefile. Makefile это круто. А в том, что ты используешь блокнот, виноват только ты - есть куча нормальных редакторов, как под Windows, так и под Linux.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
-
- LQFP144 - On Top Of The Game
- Posts: 1664
- Joined: Fri Jul 01, 2011 2:10 pm
- Location: г Уфа
Re: Портирование кода прошивки на GCC
значит дело в "крутых" макефиле , которые запустить помню были проблеммы .
я просто вставил папку sourse и все что в ней в существующийпроект IAR и собрал его импользуя IDE . может быть IDE не пользует макросы и папка port получается не верно работает и половина кода исчезает?
попробую собрать через макефиле IAR ,но это жутко не удобно.
про winavr как компилировать понятно , не понятно как в нем писать программу , там есть блокнот программер , вот в нем я так понял и нужено делать проект , это и есть IDE его . вот с ним то проблеммы ...
то что есть редакторы понимающие языки програмирования - я знаю и поэтому поставил слово блокнот в ковычки , ибо после того как я поработал в IAR с нормальным интерфейсом , где все понятно и удобно. где все файлы структурированы и так далее , к тому же есть помощь по языку , показ ошибок и так далее . работать после этого в "блокнотах" - по крайней мере новичку просто не возможно!!!!
а ставить какую нибуть спец программу для Си тоже не вариант, так как версий этого Си очень много ...
вопрос - в какой среде ты сейчас пишеш программу и в какой среде ее "трасируеш"
я просто вставил папку sourse и все что в ней в существующийпроект IAR и собрал его импользуя IDE . может быть IDE не пользует макросы и папка port получается не верно работает и половина кода исчезает?
попробую собрать через макефиле IAR ,но это жутко не удобно.
про winavr как компилировать понятно , не понятно как в нем писать программу , там есть блокнот программер , вот в нем я так понял и нужено делать проект , это и есть IDE его . вот с ним то проблеммы ...
то что есть редакторы понимающие языки програмирования - я знаю и поэтому поставил слово блокнот в ковычки , ибо после того как я поработал в IAR с нормальным интерфейсом , где все понятно и удобно. где все файлы структурированы и так далее , к тому же есть помощь по языку , показ ошибок и так далее . работать после этого в "блокнотах" - по крайней мере новичку просто не возможно!!!!
а ставить какую нибуть спец программу для Си тоже не вариант, так как версий этого Си очень много ...
вопрос - в какой среде ты сейчас пишеш программу и в какой среде ее "трасируеш"
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
ВАЗ21310 1.7i Я7.2 2001г
-
- LQFP144 - On Top Of The Game
- Posts: 1664
- Joined: Fri Jul 01, 2011 2:10 pm
- Location: г Уфа
Re: Портирование кода прошивки на GCC
блин , на работе нет Win Arv ((((( make отсутсвует поэтому через makefile не могу скомпилировать .
но скомпилировал через IDE IAR не меняя ничего в коде , с теми же ключами , что лежит скомпилированная тобой
и результат ----- фаилы РАЗНЫЕ!!!!! да , признаю ошибся насчет того чем ты компилируеш - верно IAR структура , и размер кода - одинаков . но его содержимое другое!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
вот от сюда то и началось непойми что ((((
давай разбиратся что может не верно делать IDE IAR
не могу добится получения верного кода (
в папке port в вайлах идет выбор компилятора например еси __ICCAVR__ то ...
от куда берется эта переменая? как ее поставить в true ? в makefile не нашел ничего чтото .... может в этом вся причина ?
но скомпилировал через IDE IAR не меняя ничего в коде , с теми же ключами , что лежит скомпилированная тобой
и результат ----- фаилы РАЗНЫЕ!!!!! да , признаю ошибся насчет того чем ты компилируеш - верно IAR структура , и размер кода - одинаков . но его содержимое другое!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
вот от сюда то и началось непойми что ((((
давай разбиратся что может не верно делать IDE IAR
не могу добится получения верного кода (
в папке port в вайлах идет выбор компилятора например еси __ICCAVR__ то ...
от куда берется эта переменая? как ее поставить в true ? в makefile не нашел ничего чтото .... может в этом вся причина ?
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
ВАЗ21310 1.7i Я7.2 2001г
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Портирование кода прошивки на GCC
Я использую FAR manager c плагином для подсветки синтаксиса или редактор Visual Studio. Под Linux я использую vi.
Используй Makefile и не морочь мне голову. Я специально перешел на них чтобы было проще автоматизировать процесс сборки.
Переменная __ICCAVR__ определена если компилируешь компилятором IAR.
Используй Makefile и не морочь мне голову. Я специально перешел на них чтобы было проще автоматизировать процесс сборки.
Переменная __ICCAVR__ определена если компилируешь компилятором IAR.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook