Size: a a a

2020 September 29

EL

Eugene Lomov in Embedded Group
Важно: не размер файла!

Надо распарсить файл и посмотреть размер. Это делается чем-то вроде objdump.
источник

SK

Stas Koynov in Embedded Group
Тюлень Здоровенный
Всем тюлень.

Задам, возможно, странные вопросы:
1. Допустим, я написал очень большой код для микроконтроллера, который не влез в программную память, это же будет видно уже при попытке собрать проект, верно? Т.е. компилятор выдаст ошибку?
2. Допустим, мой большой код все же влез в программную память, но вот число переменных очень велико и не влезает в память данных. Тут уже компилятор мне не поможет?
тебе линковщик откажеться собирать, ибо секции не лезят в рамки. Если эти рамки не настроены то увы!
источник

D

DiggerDi in Embedded Group
Eugene Lomov
Важно: не размер файла!

Надо распарсить файл и посмотреть размер. Это делается чем-то вроде objdump.
Если файл не хекс, а бинарный то не надо
источник

EL

Eugene Lomov in Embedded Group
А со вторым пунктом может отладчик помочь. Если переменных слишком много динамически выделяется, то вылетит что-то типа stack overflow.
источник

ТЗ

Тюлень Здоровенный... in Embedded Group
Stas Koynov
тебе линковщик откажеться собирать, ибо секции не лезят в рамки. Если эти рамки не настроены то увы!
Т.е. я правильно понимаю, что использование IDE от производителя МК даст мне некоторую уверенность, что эти две проблемы будут обнаружены на стадии сборки проекта, верно?
источник

EL

Eugene Lomov in Embedded Group
DiggerDi
Если файл не хекс, а бинарный то не надо
Справедливо.
Но даже в elf'ах может быть всякая отладочная инфа, которую загрузчик лить не будет.
источник

EL

Eugene Lomov in Embedded Group
Тюлень Здоровенный
Т.е. я правильно понимаю, что использование IDE от производителя МК даст мне некоторую уверенность, что эти две проблемы будут обнаружены на стадии сборки проекта, верно?
Я бы сказал "веру".)))
источник

SK

Stas Koynov in Embedded Group
Тюлень Здоровенный
Т.е. я правильно понимаю, что использование IDE от производителя МК даст мне некоторую уверенность, что эти две проблемы будут обнаружены на стадии сборки проекта, верно?
смотря какая ИДЕ.
источник

ТЗ

Тюлень Здоровенный... in Embedded Group
Eugene Lomov
Я бы сказал "веру".)))
Это понятно, я всегда что-то серьезное запускаю по-русски, но это уже другая история. :)
источник

ТЗ

Тюлень Здоровенный... in Embedded Group
Stas Koynov
смотря какая ИДЕ.
MPLAB (увы, но я 90% времени только с ней работал для МК), я помню, может спалить перегрузку программной памяти (оно тогда матом орало на меня, когда я rand() запихивал в PIC10, т.к. места не было), а вот с переменными...
источник

VC

Verum Corner in Embedded Group
Тюлень Здоровенный
Т.е. я правильно понимаю, что использование IDE от производителя МК даст мне некоторую уверенность, что эти две проблемы будут обнаружены на стадии сборки проекта, верно?
Что за мк у тебя
источник

ТЗ

Тюлень Здоровенный... in Embedded Group
Verum Corner
Что за мк у тебя
Сейчас? Пока что никакой! :)
А вопрос такой задал, т.к. из-за определенных обстоятельств вдруг стало интересно. Увы, любопытство не победил. :(
источник

MP

Max Payne in Embedded Group
Тюлень Здоровенный
Всем тюлень.

Задам, возможно, странные вопросы:
1. Допустим, я написал очень большой код для микроконтроллера, который не влез в программную память, это же будет видно уже при попытке собрать проект, верно? Т.е. компилятор выдаст ошибку?
2. Допустим, мой большой код все же влез в программную память, но вот число переменных очень велико и не влезает в память данных. Тут уже компилятор мне не поможет?
1. it depends
2. it depends
источник

MP

Max Payne in Embedded Group
компилятор тут как правило умывает руки - он руководствуется тем, что люди наговнякали во всяких линкер-скриптах
источник

A

Alexander in Embedded Group
Тюлень Здоровенный
Сейчас? Пока что никакой! :)
А вопрос такой задал, т.к. из-за определенных обстоятельств вдруг стало интересно. Увы, любопытство не победил. :(
Я уже не помню как в MPLAB.
CCS и Keil выдавали ошибку о невозможности разместить переменные/код в соответствии с используемым линкерным файлом.
источник

MP

Max Payne in Embedded Group
Max Payne
компилятор тут как правило умывает руки - он руководствуется тем, что люди наговнякали во всяких линкер-скриптах
если там сильно наговнякано - узнаешь, когда твой flash tool начнет тереть регистры MMIO и МК уйдет в страну вечных оленей lock
источник

MP

Max Payne in Embedded Group
по опыту знаю, потому что сам говнякал линкер-скрипты и обверточки вокруг программаторов и бывало, что неверно задавал параметры флеша
источник

MP

Max Payne in Embedded Group
"много переменных" если на стеке - да еще код как спагетти - то тут только молиться
источник

MP

Max Payne in Embedded Group
...а если там еще и heap с другой стороны памяти, и RTOS, то можешь забыть про секс с живой девушкой и еду. на ближайшие 2 недели твоим половым партнером будет gdb
источник

MP

Max Payne in Embedded Group
притом gdb - активный партнер.
источник