[an error occurred while processing this directive]
Ну, взять хотя бы строчные литералы (константы).
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено _Bill 11 июля 2006 г. 14:24
В ответ на: А можно поподробней, пожалуйста. А то как-то всё размыто у Вас получается. Можете привести конкретные "камни преткновения"? }..©Доктор ТуамОсес inc. отправлено <font color=gray>Тока не надо меня банить</font> 11 июля 2006 г. 14:09

На ПК об этом даже не задумываешься. В МК выплывает проблема. По умолчанию компилятор размещает их ОЗУ. Если таких констант много, ОЗУ забивается быстро и образуется нехваток памяти для данных. Значит, нужно явно задавать их размещение во программной flash памяти. Опять же, некоторые функции стандартной библиотеки со строками не могут работать со строками в программной памяти и требуется использовать специальные функции, которых в том же VC просто нет.
Другая проблема - стек. При ограниченных ресурсах памяти у МК есть вероятность нехватки стека. Перенесенные на МК программы в этом случае просто не будут работать.
Если хотите, то еще одна проблема: разное представление данных одного и того же типа в разных компиляторах. Например, в Borland данные типа int - 32-разрядные, в IAR - 16-разрядные. Соответственно, программы могут работать по-разному.
Словом, проблем с переносом, больших и мелких, великое множество. В каждом случае надо разбираться независимо. Поэтому, если планируется перенос программы с одной платформы на другую, то об этом следует позаботиться заранее.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание