|
Модераторы: Daevaorn |
|
Курсант |
|
||||||||||||||
Опытный Профиль Группа: Участник Сообщений: 338 Регистрация: 21.2.2009 Где: Балашиха или Воро неж Репутация: нет Всего: 4 |
Всем доброго времени суток.
В проекте под микроконтроллер возникла необходимость использовать одни и те же массивы в разных программных модулях. Вроде бы решается такая задача через EXTERN. Например так:
или так:
или так:
Проблема в том, что при разных объявлениях внешнего массива в других модулях программа начинает работать по-разному. Дело в том, что в этих модулях указатель на массив передаётся в качестве параметра другим функциям. И возникает трабла.. А именно, при объявлении
неправильно работают инструкции вида
запись производится куда-то не туда. А при объявлении вида
Перестают работать функции вида
Он вообще какие-то нули суммирует, а иногда и выпадает в HardFault, т.е. скорее всего вылетает за границы допустимых для чтения адресов. Вот что это вообще может быть? Я в шоке, если честно... Это сообщение отредактировал(а) Курсант - 4.4.2018, 21:43 |
||||||||||||||
|
|||||||||||||||
volatile |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Вангую, у вас модули загружаются не в том порядке, как вам кажется.
Порядок загрузки модулей вообще не определен в Си, и чтоб обеспечить правльную загрузку нужно прибегать к определенным способам. А лучше вообще не писать программы, зависящие от порядка загрузки модулей. |
|||
|
||||
Курсант |
|
|||
Опытный Профиль Группа: Участник Сообщений: 338 Регистрация: 21.2.2009 Где: Балашиха или Воро неж Репутация: нет Всего: 4 |
Всё заработало, как всегда "дело было не в бобине - разгильдяй сидел в кабине". Нашёл ошибки в указателях. Ну как всё, ещё глюки остались, но это уже совсем другая история. И да, похоже, никакой разницы действительно не было, как объявлять эти самые "внешние" массивы, как указатель на целочисленный тип или как массив. Очень интересно, я не понял смысла слова "загружается" в контексте прошивки микроконтроллера. Кмк, просто из объектных файлов собирается и линкуется программа - экзешник там, хекс или ещё что... Нет? Это сообщение отредактировал(а) Курсант - 5.4.2018, 14:11 |
|||
|
||||
volatile |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
||||
|
||||
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |