|
|
а теперь для 18 пика для 1 банка
__DAvail1 set 0x0100 ; first RAM location
__RAMTop1 set 0x01FF ; last RAM location
New1 macro Name,Lenght
NoExpand
if __DAvail1 > __RAMTop1
Error "Out of available RAM1 (bank 1) / File registers"
endif
Name equ __DAvail1
__DAvail1 = __DAvail1 + Lenght
if Lenght > 1
if __DAvail1 > (__RAMTop1+1)
Error Error "Out of available RAM (bank 1) / File registers"
endif
endif
Expand
endm
Variable1 equ 0x0104
Variable2 equ 0x0105
и т.д. всегда прихожу в недоумение -
в данном случае за памятью _сложно_ уследить в случае добаления/удаления или перемещения по банкам
переменных в процессе написание ПО. А попробовал я IAR компильнуть
простеший алгоритм для 18 и пришел в ужас. Тот алгоритм который у меня
не влез на 877 не влезет на С и в 18f452..ну если только на 18f8720
но это уже совсем другая история.
p.s. это я так...к слову.
а насчет статьи неплохо было бы добавить что она для "тощих"
контроллеров:) а то я бы наверное с ума сошел при кодировании
алгоритма держа в уме все ньансы приведенные ув.Bill'ом на своем любимом ColdFire. О том,что переведет
компилятор как то _не_ задумываешься лишь бы перевел правильно.
E-mail: info@telesys.ru