|
3 / 3 / 1
Регистрация: 18.06.2015
Сообщений: 70
|
|
Доступ к Bootloader из приложения04.08.2016, 16:47. Показов 903. Ответов 12
Метки нет (Все метки)
Здравствуйте, есть самостоятельно написанные бутлоадер. Бутлоадер лежит в начале флеш, приложение смещено на 0х4000
В startup файле бутлоадера имеются несколько функций, доступ к которым необходимо осуществить из приложения. Кто-нибудь сталкивался? Пробовала разные варианты, какие-то не работают, какие-то работают неправильно.
0
|
|
| 04.08.2016, 16:47 | |
|
Ответы с готовыми решениями:
12
Доступ к SharePoint из приложения Windows Forms или из консольного приложения
Доступ к БД из контроллера приложения |
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|
| 04.08.2016, 16:50 | |
|
Адреса функций известны?
0
|
|
|
3 / 3 / 1
Регистрация: 18.06.2015
Сообщений: 70
|
|
| 04.08.2016, 17:39 [ТС] | |
|
Нет, я пыталась по именам достучаться.
Приложение содержит две таблицы векторов, одна с нулевого адреса, другая смещенная При записи через бутлоадер приложение работает со смещенной таблицей, та которая с нулевого адреса просто не записывается Я пыталась разместить в первой таблице приложения функции с теми же именами, в этом случае приложение прыгало в бутлоадер, но вне зависимости от имени функции, прыгало в одну и ту же функцию бутлоадера
0
|
|
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||
| 04.08.2016, 18:08 | ||
![]() нужно вызывать функции по адресам, так же как в DLL при динамической загрузке линкер не знает имен функций, которые линкует не он
3
|
||
|
3 / 3 / 1
Регистрация: 18.06.2015
Сообщений: 70
|
|
| 04.08.2016, 18:24 [ТС] | |
|
А мне предложили еще сделать обманным путем.
Функции сделать через векторами, т.е. объявить их в таблице векторов и бутлоадера и в первой таблице векторов приложения в одном и том же месте, как бы должно получиться что они будут размещены по одному и тому же адресу, только вектора бутлоадера будут содержать адрес нужных нам функций, а приложения - какие-нибудь функции заглушки. И когда приложение запишется через бутлоадер, оно пойдет по этим векторам и наткнется на вектора бутлоадера, т.к. своя таблица не запишется Такое реализуемо?
0
|
|
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||||||||||||
| 04.08.2016, 20:05 | ||||||||||||
|
ты бутлоадер можешь менять? если нет то какая запись в вектор если да , то зачем все эти пляски с бубнами вот путь который я реализовывал, правда он очень скользкий, шаг влево шаг вправо и крах дизасемблируем бутлоадер ищем адреса нужных нам функций, например первая функция по адресу 0x8000101 вторая по адресу 0x8000201( адреса нечетные для TUMB, для АРМ должны быть четные, и кратные 4) пишем
есть еще вариант, просто написать аналоги функций
1
|
||||||||||||
|
3 / 3 / 1
Регистрация: 18.06.2015
Сообщений: 70
|
|
| 04.08.2016, 20:50 [ТС] | |
|
Да, я могу менять код бутлоадера.
Там все очень сложно и я сама местами не до конца понимаю, Суть в том, что есть переменные которые хранятся в бутлоадере и их надо поменять уже будучи в приложении(ну или узнать их значения). Из приложения мы передаем в бутлоадер новые значения, он их анализирует и перезаписывает, потом должен вернуться обратно в приложение, по возможности в то место откуда пришел
0
|
|
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||
| 04.08.2016, 21:06 | ||
|
Bootloader это по русски загрузчик,т.е при старте камня он запускается и решает что делать или запустить программу или обновить прошивку или еще что то А по этому описанию я даже не знаю как это назвать
0
|
||
|
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
| 04.08.2016, 21:32 | |
|
обычно обмен данными между двумя проектами выполняется через декларации вызова функций, и через расшаренные области данных.
Чтобы вызвать функция по адресу, можно воспользоваться принципом, приведенным выше (но желательно посмотреть какой код получит линкер - чтобы не получилось слишком запутанно), либо использоваться возможностями компилятора. Если это GCC, то у него есть атрибут "addr", который позволяет указать внешней (объявленной extern) функции ее точку входа. Еще можно использовать ld-скрипт, и указать адреса именованых функций, указанных как extern, директивой PROVIDE. В этом варианте, правда, нужно быть уверенным, что вы подключите хидер с этой функцией, иначе линкер ограничится предупреждением, что конвенция вызова функции выбрана по умолчанию. Ну, а обратную связь, от бутлоадера приложению можете сделать или общей памятью, либо вызова callback'а с параметрами типа: cb_type, data*, length. Это даст возможность ограничиться одним закрепленным указателем в приложении, которое будет пытаться вызвать бутлоадер в различных случаях...
1
|
|
|
3 / 3 / 1
Регистрация: 18.06.2015
Сообщений: 70
|
|
| 05.08.2016, 14:54 [ТС] | |
|
Спасибо за помощь
Посмотрела в map файле адреса, пока буду плясать от этого, Узнала что-то новое, пойду разбираться
0
|
|
|
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
||||||||||||
| 05.08.2016, 16:12 | ||||||||||||
Добавлено через 4 минуты
1
|
||||||||||||
| 05.08.2016, 16:12 | |
|
Помогаю со студенческими работами здесь
13
Доступ к БД из ISAPI приложения Доступ к БД из ISAPI приложения Доступ к web - приложения Приложения потеряли доступ к интернету
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|