Приветствую всех!
Надо поставлять заказчику устройство, к которому он может сам дописывать ПО. Часть функций, отвечающих за работу с железом, хотелось бы от заказчика скрыть и поставлять в виде API.
На первый взгляд идея была такая: эти функции вместе с загрузчиком располагаются в Bootloader Section и доступ через LPM из Application к ним блокируется фузами. Заказчик свое ПО грузит загрузчиком, который лежит там же, в BootLoader. Все бы забибись, но мои функции работают по прерываниям, причем отработка одного (медленного) может прерываться другим (быстрым). Я мог бы при загрузке программы прописывать указатели на свои функции в таблицу векторов в Application секции. Но! Нужный мне режим BLB1=3 или BLB1=4 запрещает прерывания в момент выполнения кода из BootLoader секции, таким образом вложенность прерываний не получается. В любом случае, даже если "медленное" прерывание сделаю как обычную функцию, она должна будет располагаться в "закрытой" области. И во время ее исполнения прерывания должны щелкать. Пока же мое понимание таково: пользователь вызвал мою функцию, управление передалось в bootloader секцию, прерывания автоматом запретились.
Или я чего не понял с этим запретом?
Какие еще будут мысли на предмет организации "полуфабрикатного" закрытого ПО? Интерпретатор и внешнюю память ставить не буду - в проце места еще много, а на плате его уже нет.