[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ: О.о.о!!! Уважаемый abivan! O Hi-Tech C (если всем собраться) можно целую поэму написать... ;-) (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Hog 25 октября 2001 г. 18:31
В ответ на: Спасибо, но я все никак в толк не возьму зачем?(+) отправлено abivan 25 октября 2001 г. 16:50

Вот проследите за мыслью (Это из многократной практике в разработке):
___________________________________

В Вашем проекте (ОСОБЕННО на неплохих монстрах, как серия PIC16F87x. Я уж молчу про PIC18Fxxx)колличество подпрограмм и функций с массой ветвлений и переменных (вложенных, входных выходных, LONG, а чем паче DOUBLE и.т.д и.т.п) таково, что проследить в том же MPLABE за их "течением жизни" просто крайне необходимо-поиск тех же глюков, багов! Вот тут такое ручное STATIC закрепление -БОЛЬШОЕ подспорье (Уж поверьте).
Уже давно замечено, что компилятор HI-Tech-C генерит такой код, что
свои буферные переменные (о каких Вы просто "не подозреваете") в момент исполнения он затрагивает как раз следующие ячейки памяти за ACOMBANK областью. Наверняка при пошаговом прогоне в MPLAB замечали.
Очень удобно вести реестр для типовых имён и адресов переменных(массивов) на свой тип процессора(что называется никогда не заблудишься, а следовательно удобство в отладке и...(не знаю уж как Вам, но системный подход в программирование никогда не помешает: учёт общего числа используемых программой регистров и что куда и как применяется. Я так вообще их классифицирую.А как же иначе, когда их под 300 набирается?).
Что касается переносимости PIC16F84-PIC16F628, то на мой взгляд этот вопрос рарешается программно-технологически(ведь ресурс PIC16F628 заведомо выше , чем у PIC16F84!).

P/S В качестве интересных практических наблюдений. Загляните, к примеру, в файл ...\LIB\PICINFO.ini
..........................
[16C77]
ARCH=PIC14
ROMSIZE=2000
BANKS=4
RAMBANK=20,7F
RAMBANK=A0,EF
RAMBANK=110,16F
RAMBANK=190,1EF
COMMON=70,7F
.........................
Так вот погуляйте (редактируя) размерчиком в исправьте размер на (для начала) ROMSIZE=2001. Затем прокомпелируйте хороший исходник с 9-м уровнем оптимизации. И отследите меняющийся размер откомпелированного [HEX]-кода. В MPLABE можете прогнать. Так вот, интересные разрешения
некоторых глюков (или багов) устраняются, порой. Об этом нигде не найдёте описания. Это практика!

А, вообще, там много "всяких собак зарыто" :-))

_________________________________
Ноg

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

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru