|
Сто лет PICами не занимался, но с радостью помогу (чем смогу).
Итак, на счет BP0, BP1: на сколько я понимаю, речь идет о битах RP0, RP1 регистра STATUS (и в DATA SHEETах, и в *.inc-ах я вышеуказанных битов не встречал), но они переключают страницы ОЗУ, тогда как в вопросе фигурирует регистр PCLATH (переключает страницы памяти программ). Так или иначе, ты абсолютно прав - оба вышеуказанных регистра адресуются "насквозь" по всем страницам ОЗУ (имеют фиксированный адрес): см. DATASHEET -> Memory organization -> Data memory organization (Figure: Register File Map)
Вопрос: а ты Atmel-ами не занимался? Если нет, то очень рекомендую:
1) в ЧЕТЫРЕ раза больше производительность при одинаковых тактовых частотах (1 MIPS per MHz против 0,25 MIPS per MHz);
2) очень "уютная" архитектура (непрерывное пространство SRAM, наличие индексных регистровых пар, отдельное пространтсво для регистров общего назначения, константы занимают положенные 8 бит (вместо 1 команды можно разместить 2 константы - это ж экономия), большые предделители для таймеров-счетчиков, раздельные векторы прерываний и многое другое) - все это, разумеется, имеет смысл если пишешь на ASMе.
Лично мне пока не хватает только PICовского предделителя для внешнего источника счетчика событий.
Всего доброго, Mike53
E-mail: info@telesys.ru