реклама на сайте
подробности

 
 
> ПО для перепрошивки 8051, Дайте мудрый совет
Jevys
сообщение Sep 23 2009, 10:40
Сообщение #1





Группа: Участник
Сообщений: 6
Регистрация: 26-04-06
Пользователь №: 16 503



Встала задача по созданию программного обеспечения для обновления ПО 8051. Особенностью создаваемого устройства является то, что в процессе эксплуатации может потребоваться неоднократное обновление программного обеспечение. В связи с этим хочу спросить две вещи:
1. Можно ли вообще написать модуль ПО перепрошивки на Си? В проекте стоит опция максимальной оптимизации по размеру кода, при которой Кеil по идее может сам находить похожие куски кода и выделять их в подпрограммы. И тогда код, расположенный в ПО перепрошивки, будет вызывать код, который лежит за пределами области памяти программ перепрошивщика, что недопустимо. Остается только ассемблер?
2. Если все же писать на Си, то как жестко разместить программу перепрошивки с заданного адреса? Например 0xF800. И как это сделать в варианте на ассемблере.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
редактор
сообщение Oct 23 2009, 04:49
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315



Сместить вектора прерывания в программе не проблема
На вкладке С51 есть галочка "Interrupt vector at adress" напротив нее поле где ввести адрес смещения для векторов прерывания.
Далее необходимо переопределить таблицу прерываний в стартапе.
Если загрузчик в младших адресах, то разместить команды перехода обработки прерываний на новые адреса по принципу
org 0x3 // прерывание INT0
LJMP $+Offset // переход на новый адрес обработки прерывания
и т.д. для всех векторов
Далее в стандартном стартапе приложения расположенного в старшей области памяти при необходимости изменить директиву начального адреса программы (если не менять то загружаться будет приложение, если изменить , то сперва заработает загрузчик)
ORG 0 -> заменит на ORG Offset

Если приложение в младших адресах, а загрузчик в старших, то достаточно переопределить только один вектор с которым работает загрузчик и следить что бы приложение не вылезло за границу отведенной памяти.


--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jevys   ПО для перепрошивки 8051   Sep 23 2009, 10:40
- - barabek   Цитата(Jevys @ Sep 23 2009, 20:40) Встала...   Sep 23 2009, 23:59
|- - 62256   Цитата(barabek @ Sep 24 2009, 02:59) Можн...   Oct 5 2009, 22:04
|- - barabek   Цитата(62256 @ Oct 6 2009, 08:04) не можн...   Oct 15 2009, 12:39
- - Jevys   Обновление ПО представляю так: От компьютера по ст...   Sep 24 2009, 06:04
- - редактор   Я размещаю загрузчик с 0 адреса, тогда он гарантир...   Oct 15 2009, 05:49
- - Goodvin   Доброго времени суток!!! Столкнулся с...   Oct 21 2009, 16:33
|- - Палыч   Цитата(Goodvin @ Oct 21 2009, 19:33) Если...   Oct 22 2009, 09:55
- - Goodvin   Доброго времени суток!!! Вчера попроб...   Oct 22 2009, 20:44
|- - Палыч   Цитата(Goodvin @ Oct 22 2009, 23:44) Уваж...   Oct 23 2009, 05:39
- - Goodvin   Доброго времени суток!!! А может быть...   Oct 23 2009, 16:16
|- - barabek   Цитата(Goodvin @ Oct 24 2009, 03:16) Добр...   Oct 24 2009, 00:27
- - Goodvin   Доброго времени суток!!! Думаю поступ...   Oct 26 2009, 15:24
|- - Палыч   Цитата(Goodvin @ Oct 26 2009, 18:24) Но п...   Oct 26 2009, 16:20
|- - редактор   Цитата(Goodvin @ Oct 26 2009, 19:24) Еще ...   Oct 27 2009, 07:09
- - Goodvin   Доброго времени суток!!! Цитата...   Oct 26 2009, 18:49
|- - barabek   Цитата(Goodvin @ Oct 27 2009, 05:49) Добр...   Oct 27 2009, 03:38
|- - Палыч   Цитата(Goodvin @ Oct 26 2009, 21:49) В об...   Oct 27 2009, 06:37
- - 62256   Цитата(редактор @ Oct 27 2009, 09:09) Заг...   Nov 6 2009, 19:15


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 04:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01372 секунд с 7
ELECTRONIX ©2004-2016