28.12.2012, 17:10
|
|
Частый гость
Регистрация: 06.03.2011
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Загрузка дополнительного ПО в микроконтроллер PIC16F876/877
Всем привет! Есть одна задачка, но пока не знаю в какую сторону копать, и вообще возможно ли такое сделать на PIC16. Мне нужно загружать разные прошивки (ПО) в микроконтроллер. Идея такая: написать программу ЗАГРУЗЧИК и прошить в микроконтроллер самым обычным способом, через программатором из компьютера.Задача этого загрузчика: считать из внешней флэш памяти готовую прошивку (там их будет несколько на выбор) и загрузить в оперативную память микроконтроллера т.е. не прошить программно микроконтроллер, а всего лишь записать в ОЗУ начиная с указанного адреса ОЗУ рядом с загрузчиком, и далее передать управление контроллером этой загруженной прошивке (ПО). После того как данная загруженная прошивка отработает, она должна передать управление обратно загрузчику. Нужно сделать простенький компьютер, что-то типа РК-86 например. Графический LCD и внешнюю память подключить это уже не такая большая проблема. Мне не понятны некоторые моменты, но вот самые важные: 1) Прошитый МК после запуска загружается в ОЗУ МК, но вот с какого адреса начинается загрузка не могу понять. 2) компилятор, я так думаю, создает HEX для МК с расчетом что эта прошивка будет загружена в ОЗУ МК начиная с стандартного для МК адреса, но вот если загружать дополнительную прошивку рядом с основной прошивкой (лоадера) для передачи ей управления, будет ли вообще что-то работать? Только пожалуйста не ругайтесь сильно, я пока много чего не понимаю, по возможности читаю нужную литературу. Буду очень благодарен за информацию, которая поможет мне в моем не легком деле.
Программированием МК занимаюсь не очень давно. Программирую на MikroC, по возможности стараюсь что-то на ASM писать. Я думаю что мою задачу, если вообще возможно реализовать, можно только на ASM т.к. на C ни чего похожего для прямого обращения к ОЗУ МК не нашел. На ASM тоже пока не разобрался как получить доступ к оперативке. В примерах MikroC нашел исходники BootLoader-а, но по-моему это не то что мне нужно. Как я понял там идет программная пере прошивка МК через COM порт.
Вот исходники BootLoader-а:
Bootloader.rar
|
|
|
|
28.12.2012, 17:16
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,539
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: Загрузка дополнительного ПО в микроконтроллер PIC16F876/877
Программа нах-ся и исполняется из ПЗУ(память программ типа flash). Шина данных и команд разделены. Поэтому PIC16 не могут исполнять код из ОЗУ. В ОЗУ могут храниться только данные.
|
|
|
|
28.12.2012, 18:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Загрузка дополнительного ПО в микроконтроллер PIC16F876/877
PIC, AVR, STM8 и многие другие имеют Гарвардскую архитектуру.
Почитайте про архитектуру фон Неймана
С PICом ничего не выйдет.
|
|
|
|
28.12.2012, 19:46
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Загрузка дополнительного ПО в микроконтроллер PIC16F876/877
Вроде бы STM8L умеет выполнять программу из ОЗУ.
|
|
|
|
28.12.2012, 20:02
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Загрузка дополнительного ПО в микроконтроллер PIC16F876/877
Да можно грузить программу хоть в ОЗУ, хоть во FLASH (в зависимости от процессора) и перпедавать ей управление.
Написали свой BootLoader, прошили его и ... дальше все в твоих руках
|
|
|
|
28.12.2012, 20:11
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,539
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: Загрузка дополнительного ПО в микроконтроллер PIC16F876/877
Сообщение от Easyrider83
|
Себя шить умеют PIC18 и выше.
|
PIC16 тоже. Например, сабжевые. Курите мат. часть.
|
|
|
|
28.12.2012, 20:15
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Загрузка дополнительного ПО в микроконтроллер PIC16F876/877
А в чем фишка выполнять программу именно из ОЗУ? Во-первых его мало, во-вторых, современные флеши выдерживают огромное количество циклов записи.
|
|
|
|
28.12.2012, 20:16
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Загрузка дополнительного ПО в микроконтроллер PIC16F876/877
Сообщение от realid
|
PIC16 тоже. Например, сабжевые. Курите мат. часть.
|
Да уже покурил, спасибо. Нашел даже примеры UART бутлодырей на это семейство.
|
|
|
|
28.12.2012, 20:29
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,539
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: Загрузка дополнительного ПО в микроконтроллер PIC16F876/877
Сообщение от Easyrider83
|
А в чем фишка выполнять программу именно из ОЗУ?
|
Да мне сдается, что ТС попутал. Понезнанке.
|
|
|
|
28.12.2012, 21:38
|
|
Прописка
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 243
Сказал спасибо: 48
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
|
Re: Загрузка дополнительного ПО в микроконтроллер PIC16F876/877
А сколько вариантов этих программ?
Если они заранее известны, то загружаем их все по определеным адресам во флэш, а нужную программу для запуска узнаем из внешних устройств, хоть с кнопок, осуществляя безусловные переход по нужному адресу.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:08.
|
|