Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MSP430F5528 и объем кода больше 64KB
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Alexander_84
Всем привет! Столкнулся с такой проблемой, что когда объем кода больше 64K приложение перестает запускаться (зацикливаетс в cstartup и до main() не доходит). Вычитал, что нужно использовать 20 битную адресацию. Поставил в IAR'e Data Model на Large, но все равно не работает, что нужно еще сделать?
zhevak
Цитата(Alexander_84 @ Sep 6 2012, 15:55) *
Всем привет! Столкнулся с такой проблемой, что когда объем кода больше 64K приложение перестает запускаться (зацикливаетс в cstartup и до main() не доходит). Вычитал, что нужно использовать 20 битную адресацию. Поставил в IAR'e Data Model на Large, но все равно не работает, что нужно еще сделать?

а у Вас случаем не это? -- "http://zhevak.wordpress.com/2011/07/16/интересная-особенность-msp430/"

ЗЫ:
Извините, почему-то не могу правильно вставить ссылку. Все время она как-то криво встает -- ведет на сайт, но страницу не находит. Если у Вас тоже такое происходит, то сами найдите в блоге страницу с названием "интересная-особенность-msp430", она была опубликована 16.07.2011.
Alexander_84
zhevak, огромное спасибо! Все заработало! Что проблемма WDT я бы догадался нескоро... если бы вообще догадался.
MrYuran
Цитата(Alexander_84 @ Sep 6 2012, 15:18) *
Что проблемма WDT я бы догадался нескоро... если бы вообще догадался.

А я бы даже и не подумал, что бывают такие проблемы...
Это все потому, что с тощими мсп-хами работаю...

zhevak, исправьте "Последниие публикации". А то прямо в глаза бросается.

По поводу вот этого
Цитата
Второй вариант, состоит в том, что массив можно объявить неинициализированным, все равно мы его сами инициализируем в функции main. В этом случае под него только выделится память, обнуления не произойдет. На данный момент, к сожалению, я не могу сказать как это правильно сделать.


может, положить в секцию .data вместо .bss ?

sometype foo __attribute__ ((section("data")));
Сергей Борщ
QUOTE (MrYuran @ Sep 6 2012, 14:51) *
может, положить в секцию .data вместо .bss ?
Тогда он не только обнуляться, он еще и копироваться из флеша будет. Кстати, в тексте zhevak ошибочно указана секция .data, хотя массив идет в .bss
А если речь идет про msp430-gcc, то я года 3-4 назад переделывал там библиотечный стартап-код по мотивам avr-libc. И там запрет собаки должен быть по умолчанию в секции .init3
А если его там не было (ну не помню, а исходников не сохранилось), то без накладных расходов на вызов функции можно было в эту секцию вставить:
CODE
__attribute__((naked, section(".init3"))) void __low_level_init()
{
    WDTCTL = WDTPW + WDTHOLD;
}
zhevak
Цитата(MrYuran @ Sep 6 2012, 17:51) *
zhevak, исправьте "Последниие публикации". А то прямо в глаза бросается.


Спасибо, но к сожалению я не знаю как это сделать. Я использую готовый профиль в wordpress.com. Я пересмотрел все опции, которые wordpress.com предоставляет мне для редактирования, но я так и не нашел где вообще находится этот виждет "ПоследниИ публикации".

Цитата(Сергей Борщ @ Sep 6 2012, 19:34) *
Кстати, в тексте zhevak ошибочно указана секция .data, хотя массив идет в .bss

Ага, ступил. Спасибо, Сергей! Всё, исправил.
А так же дописал твой подход -- затыканием WDT в секции .init3.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.