API и защита кода на ATmega8

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
Приветствую всех!

Надо поставлять заказчику устройство, к которому он может сам дописывать ПО.
Часть функций, отвечающих за работу с железом, хотелось бы от заказчика
скрыть и поставлять в виде API.

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

Или я чего не понял с этим запретом?

Какие еще будут мысли на предмет организации "полуфабрикатного" закрытого
ПО? Интерпретатор и внешнюю память ставить не буду - в проце места еще
много, а на плате его уже нет.



--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Re: API и защита кода на ATmega8
Hello Sergey.

03 Feb 04 15:55, Sergey A. Borshch wrote to All:

 SAB> Hо! Hужный мне
 SAB> режим BLB1=3 или BLB1=4 запрещает прерывания в момент выполнения
 SAB> кода из
 SAB> BootLoader секции,

...если вектоp находится в app секции.

Разместить вектоp в бyт-секции для этой задачи не подойдет?
Тогда юзеp твоего девайса должен либо отказаться от "своих" пpеpываний,
либо пеpеключать селектоp таблицы вектоpов (yжасно неyдобно, конечно).

Собственно касаемо задачи - библиотеки не подходят?

Alexey


Re: API и защита кода на ATmega8
Привет, 4 февраля 2004 г., 9:04:28, ты писал(а):

 SAB>> Hо! Hужный мне
 SAB>> режим BLB1=3 или BLB1=4 запрещает прерывания в момент выполнения
 SAB>> кода из
 SAB>> BootLoader секции,
AM> ...если вектоp находится в app секции.
AM> Разместить вектоp в бyт-секции для этой задачи не подойдет?
AM> Тогда юзеp твоего девайса должен либо отказаться от "своих" пpеpываний,
AM> либо пеpеключать селектоp таблицы вектоpов (yжасно неyдобно, конечно).

Ничто ведь не мешает форвардить вызовы из обработчиков прерываний,
находящихся в BLS, на вектора в APS.

Всего хорошего.





--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Re: API и защита кода на ATmega8
Алексей, привествую!
Quoted text here. Click to load it


Да, так и придется. Спасибо. А сам как-то не додумался :-(

С уважением,
  Сергей Борщ



--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Re: API и защита кода на ATmega8
Алексей, привествую!

Quoted text here. Click to load it
Угу :-(

Quoted text here. Click to load it
Вот только такое и получается - и по нему передавать управление по адресу,
считанному из таблицы векторов в app секциии. Лишняя задержка, но там
пользователю и так много скорости не понадобится. Ладно, продолжаю писать
загрузчик... На С :-)

Quoted text here. Click to load it
Так их же дизассемблировать - раз плюнуть. У нас тут конкуренция в этом
секторе имеет место быть. Кое-что из железа уже содрали, сказали типа "это
вы здорово придумали, мы тоже теперь так будем"...

 С уважением,
  Сергей Борщ



--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Re: API и защита кода на ATmega8
Hello Sergey.

05 Feb 04 00:18, you wrote to Alexey Musin:

 >> Разместить вектоp в бyт-секции для этой задачи не подойдет?
 SB> Вот только такое и получается - и по нему передавать управление по
 SB> адресу, считанному из таблицы векторов в app секциии.

Чего ты там считывать собрался? В таблице векторов не адреса,
а джампы прописаны. Hужно просто перейти по адресу вектора в app секции.



Alexey


Site Timeline