Перейти к содержанию
    

MSP430F5528 и объем кода больше 64KB

Всем привет! Столкнулся с такой проблемой, что когда объем кода больше 64K приложение перестает запускаться (зацикливаетс в cstartup и до main() не доходит). Вычитал, что нужно использовать 20 битную адресацию. Поставил в IAR'e Data Model на Large, но все равно не работает, что нужно еще сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем привет! Столкнулся с такой проблемой, что когда объем кода больше 64K приложение перестает запускаться (зацикливаетс в cstartup и до main() не доходит). Вычитал, что нужно использовать 20 битную адресацию. Поставил в IAR'e Data Model на Large, но все равно не работает, что нужно еще сделать?

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

 

ЗЫ:

Извините, почему-то не могу правильно вставить ссылку. Все время она как-то криво встает -- ведет на сайт, но страницу не находит. Если у Вас тоже такое происходит, то сами найдите в блоге страницу с названием "интересная-особенность-msp430", она была опубликована 16.07.2011.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

zhevak, огромное спасибо! Все заработало! Что проблемма WDT я бы догадался нескоро... если бы вообще догадался.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что проблемма WDT я бы догадался нескоро... если бы вообще догадался.

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

Это все потому, что с тощими мсп-хами работаю...

 

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

 

По поводу вот этого

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

 

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

 

sometype foo __attribute__ ((section("data")));

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

может, положить в секцию .data вместо .bss ?
Тогда он не только обнуляться, он еще и копироваться из флеша будет. Кстати, в тексте zhevak ошибочно указана секция .data, хотя массив идет в .bss

А если речь идет про msp430-gcc, то я года 3-4 назад переделывал там библиотечный стартап-код по мотивам avr-libc. И там запрет собаки должен быть по умолчанию в секции .init3

А если его там не было (ну не помню, а исходников не сохранилось), то без накладных расходов на вызов функции можно было в эту секцию вставить:

__attribute__((naked, section(".init3"))) void __low_level_init()
{
    WDTCTL = WDTPW + WDTHOLD;
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

Кстати, в тексте zhevak ошибочно указана секция .data, хотя массив идет в .bss

Ага, ступил. Спасибо, Сергей! Всё, исправил.

А так же дописал твой подход -- затыканием WDT в секции .init3.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...