Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
rubygoblin
0 / 0 / 0
Регистрация: 21.01.2015
Сообщений: 7
1

Организация алгоритма для универсальной программы под микроконтроллер

23.06.2016, 20:23. Просмотров 276. Ответов 2
Метки нет (Все метки)

Здравствуйте уважаемые программисты

интересует следующий алгоритм для следующей задачи:
задача:
есть некая программа под микроконтроллер, в стандартном виде она гоняет бесконечный цикл;
допустим у нее есть внешний интерфейс (назовем его отладочный порт), по которому можно записать во флеш или в оперативку некий код;
допустим код мы можем скомпилировать, и условно слинковать; этот код мы заливаем через отладочный порт в микроконтроллер;
вопрос: как организовать привязку адресов по завершении загрузки?
допустим самый простой способ, это слинковать, так чтобы адреса были внесены в HEX, но интересует чтобы контроллер это делал сам
как определить внутренний стек для данных функции?
или работать только с привязанными адресами в оперативке?

в общем задача при перезаписи этих функций через отладочный порт получать новую программу, при том что основной бесконечный цикл с прочими сервисными надстройками не меняются

готовые решения я думаю не годятся, я должен понимать как работают данные функции поэтому в основном интересует алгоритм автоматизации данных манипуляций (привязка адресов функций, виртуальный стек, формат оперативной памяти)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2016, 20:23
Ответы с готовыми решениями:

Можно ли создать шаблон универсальной, резиновой страницы под любое разрешение ?
Нужно, что бы ширина страницы уменьшалась до некоего предела (например 600 пикселей, с чем...

Можно ли найти микроконтроллер под конкретную задачу?
Мне нужен микроконтроллер способный работать с базами данных, точнее не именно с конкретной базой...

под линукс не могу запрограммировать микроконтроллер програм
На компьютере установлены две операционки: виндовс и линукс. Под виндовсом использую программу...

Микроконтроллер под модель олимпийского класса яхт
Уважаемые форумчане, хочу сделать модель радиоуправляемую вот этого класса яхт (бросил заниматься...

Организация хранение данных для будущей программы
Доброго времени суток. Помогите, пожалуйста, новичку :) Пробую сделать калькулятор стоимости...

2
kolobok0
46 / 46 / 9
Регистрация: 24.01.2010
Сообщений: 225
25.06.2016, 00:01 2
Либо на этапе компиляции прошивка знает свой адрес в памяти, либо вязать вентили вызовов функций на ран-тайме.
обычно применяется первый способ. но можно сделать и второй способ или средний когда адреса формируются на этапе записи во флэш и последней страничкой пишем вектора прерываний (обычно за таблицей прерываний есть место до конца страницы - там размещаем служебную инфу...). на меге 128 дышало без проблем(работала одна часть флэша, а писал во вторую.

если второй способ(в памяти на ран-тайме) то смотрите в сторону мелкомягких дэлеле. Вам придётся сделать всё в рукопашную. Так-же сейчас делаю в одном коммерческом проекте. Пошёл дальше - прошивка не монолит, а версионные модули которые вяжутся в фулл версии на рантайме при подъёме. Задача - в случае набора отрицательной статистике - перегрузить предыдущую рабочую версию. На стм32 - вроде как флэша навалом...

(круглый)
1
rubygoblin
0 / 0 / 0
Регистрация: 21.01.2015
Сообщений: 7
27.06.2016, 18:26  [ТС] 3
спасибо за советы...
подумал и остановился на следующем алгоритме:
1) основная программа располагается при компиляции от начала флеши
2) все сторонние функции и подпрограммы(прерывания и дополнения) располагаются в жестко прикрепленных адресах флеши при их заливке

а теперь проблемы, которые я пока не знаю как решить не имея требуемого опыта:
1) как скомпилировать функцию, набор функций без проекта, ну условно не привязывая ни к каким адресам а только к смещениям
2) как указать что будет выполняться функция!!! расположенная по некоторому адресу (чтобы при вызове все регистры были сброшены в стек) ... также функция может и отсутствовать, вопрос в том как сделать ссылку и привязать ее к конкретному адресу

ну а все остальное вроде понятно пока...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2016, 18:26

Микроконтроллер 8-разрядный это тоже самое что 8-битный микроконтроллер?
Здравствуйте ! Подскажите пожалуйста, небольшой вопрос , касающийся терминологии . ...

Загрузка программы в микроконтроллер по воздуху
Какие есть способы беспроводного программирования микроконтроллеров (например PIC) ? Хочу...

Блок-схема алгоритма для программы
Помогите пожалуйста составить блок-схему алгоритма для этой программы: Dim A(1 To 10, 1 To 10) As...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru