[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Вот проследите за мыслью (Это из многократной практике в разработке):
___________________________________
В Вашем проекте (ОСОБЕННО на неплохих монстрах, как серия 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