Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.58/36: Рейтинг темы: голосов - 36, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 33

Привязка частей кода программы к конкретным адресам во флэш.

15.06.2017, 22:20. Показов 6909. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем.
Хочу чтоб разные блоки кодов программы ложились на конкретные,
мне нужные, адреса во флэш...
Пример -
стартап - с 0x08000000
блок прерываний - с 0x08001000
main - c 0x08004000
обработчик усарт -0x08005000
и так далее...

А АВР есть такая директива линкера ORG ADRES
ей все просто решалось.

а как бы с арм попроще привязываться к адресам ?

Удачи
Bob_st
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.06.2017, 22:20
Ответы с готовыми решениями:

Массив: К элементам по четным адресам добавить 1, из элементов по нечетным адресам вычесть 1.
К элементам по четным адресам добавить 1, из элементов по нечетным адресам вычесть 1. Четность проверять не надо так как элемент...

О программировании. Создание флэш-анимаций и флэш-игр
Здраствуйте. Мне 14 лет и я хотел бы побольше узнать о программирование. С чего следует начать? Конкретно меня интересует создание...

Флэш или не флэш, вот в чем вопрос.
Добрый день. Сделал тут одним страницу на флэше (первый раз). Но возникла мысль, а вдруг тот, кто будет открывать этот сайт не имеет...

38
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
16.06.2017, 13:26
Программирование STM32 на ассемблере
0
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 33
16.06.2017, 17:01
To vt340 - большое спасибо за ссылку....

Bob_st
0
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 33
16.06.2017, 22:49
Здравствуйте!

Скачал я и установил GNU.
Два часа пытался я что то запустить... бесполезно для меня....
Мне это не выучить...

А вот я пользуюсь KEIL 4.72 ассемблером. Но там, к сожалению,
не работают директивы линковщику из GNU.

И пока не удается привязаться прямо к адресу ром.

Уважаемый vt340 ! Может быть вы предложите какое
нить решение по KEIL 4.72 ??

Спасибо!
Bob_st
0
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 237
16.06.2017, 23:02
Цитата Сообщение от Bob_st
Скачал я и установил GNU. Два часа пытался я что то запустить... бесполезно для меня....
Скачали GNU? Надеюсь не антилопу гну?
Прочитайте что это такое https://ru.wikipedia.org/wiki/GNU
https://ru.wikipedia.org/wiki/GNU_(значения)

Видимо имелся в виду GCC?
Пытались запустить без IDE?
Возьмите IDE типа кокоса или EmBytz (в его дистрибутиве есть GCC).
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 886
16.06.2017, 23:27
Цитата Сообщение от Bob_st
Здравствуйте!

Скачал я и установил GNU.
Два часа пытался я что то запустить... бесполезно для меня....
Мне это не выучить...

А вот я пользуюсь KEIL 4.72 ассемблером. Но там, к сожалению,
не работают директивы линковщику из GNU.

И пока не удается привязаться прямо к адресу ром.

Уважаемый vt340 ! Может быть вы предложите какое
нить решение по KEIL 4.72 ??

Спасибо!
Bob_st
Посмотрите любой файл stortup_....s
Как то же полмира привязывают таблицу векторов к 0x800000 и код в .text секцию.
0
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
17.06.2017, 11:17
Цитата Сообщение от Bob_st
предложите какое нить решение по KEIL 4.72 ??
Программировать на си
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 886
17.06.2017, 13:28
Да по фигу на чем программировать.
Можно конечно ИИ от гугла включить - он сам запрограммирует.
0
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 33
17.06.2017, 14:44
Привет всем!
Спасибо за участие в обсуждении проблемы.

В ответе vt340 содержиться ссылка на
GNU ARM Embeddid Toolchain
Version 6-2017-q1-update
Released: February 23, 2017
вот отсюда и антилопа.....

Bob_st
0
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 237
17.06.2017, 15:52
Цитата Сообщение от Bob_st
Только я не увидел, кроме vt340, хоть какого полезного совета или примера....
Разве совет использовать IDE не является полезным?
GCC это набор утилит для компиляции, линковки и т. д. и без IDE пользоваться ими не совсем удобно.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 886
17.06.2017, 16:24
А если еще научиться искать по словам на github (можно на гугле потренироваться),
то откроется абсолютное знание в полном объеме.
0
0 / 0 / 0
Регистрация: 24.08.2014
Сообщений: 389
17.06.2017, 17:35
Цитата Сообщение от Bob_st
Привет всем.
Хочу чтоб разные блоки кодов программы ложились на конкретные,
мне нужные, адреса во флэш...
в GNU попробовать можно - линкеру указать типа так:
Code
1
2
3
4
5
6
7
8
MEMORY
{
FLASH      (RX)  : ORIGIN = 0x08000000, LENKTH = ???
FLASH2      (RX)  : ORIGIN = 0x08001000, LENKTH = ???
FLASH3      (RX)  : ORIGIN = 0x08004000, LENKTH = ???
FLASH4      (RX)  : ORIGIN = 0x08005000, LENKTH = ???
......
}
секции:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SECTIONS
{
.text : {
*(.vectors);    /* Указатели векторов прерываний */
*(.text);       /*  */
*(.asmcode)     /* Текст программы */
} > FLASH
 
.text2 : {
*(.text2);       /*  */
*(.asmcode2)     /* Текст программы */
} > FLASH2
.........
}
не хорошо все ж - можно залезть на чужую область, лучше б размещалось как придется по адресам одно за другим.
Еще почитать: https://habrahabr.ru/post/275237/
0
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 33
17.06.2017, 18:23
Спасибо otik110592! Реальная подсказка....

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

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

Этот алгоритм давно и удачно работает в моих проектах, но на
процессорах нек.(RENESAS) А вот времена - цену надо уменьшать!!!! Вот
я и начинаю пробовать АРМ STM32. Многое уже мной отработано ,
вот позиционирование по адресам пока вопрос.

Еще раз всех багодарю за участие!
Я принимаю решение на делфи написать свой ассемблер с командой
ORG adres

Потеря нескольких дней на написание софта, как мне кажется,
оправдана сложностью проблемы.... Зато все закроется.

Прошу данную ветку считать закрытой...

Bob_st
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 886
17.06.2017, 20:18
Вот это жуть открывается.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
17.06.2017, 20:49
Цитата Сообщение от Bob_st
Предсталяете задача- поскольку сегодня любой процессор с
любой защитой ломается и вычитывается его ром, нужно
применять методы похитрее.
Вытащите мне пожалуйста прошивку ST-LINK/V2-1
0
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 33
17.06.2017, 21:19
Привет!
http://www.mcu-reverse.com/

Bob_st
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
17.06.2017, 21:43
Ну да, весь мир живет в 70х, только вы сегодня...
0
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 33
17.06.2017, 21:58
.......

Bob_st
0
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 237
17.06.2017, 22:19
Зачем затирать часть flash и восстанавливать при подаче питания? Не проще часть кода выполнять из ОЗУ? При пропадании питания, код сотрется.
0
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
17.06.2017, 22:51
Цитата Сообщение от Bob_st
...
Основа-часть кодов ром для спец.
заданий должна грузиться из другого источника, инет, сенселок,
непосредственно в момент инициализации и только в кодированном
виде.

...
Мдя - в данном решении вы заведомо ограничиваете время жизни всей железки, так как количество циклов стирания/записи флеша ограниченно. Обычно 10000ми иногда 100000ми, но на практике - много-много меньше.
При, например 5 стартах в день, у вас работать ваша железка будет около 5.5 лет. Потом - все.

Я бы посоветовал, если все равно код грузится откуда-то, во флеше оставить бутлоадер, который грузит по вашим каналам связи критический код в ROM, или SDROM, которой может быть много больше, чем флеша, и от туда исполнять. При пропадании питания - содержимое SROM, а тем более SDROM, теряется, и довольно быстро.

Как поместить отдельные куски кода в определенные адреса памяти, вам уже подсказали - скрипт линковщика, и директива (или как там оно по научному) компилятора __attribute__((section(".secta")));
Ну и стартап (или бутлоадер), который будет все это дело в память запихивать.

Все же проще, быстрее, и без добавления новых ошибок, чем писать свой собственный ассемблер с командой ORG.

Кстати, не думаю, что на это у вас уйдет всего "несколько дней". Все же ARM-овский ассемблер чуток отличается от простых 8-мибиток.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.06.2017, 22:51
Помогаю со студенческими работами здесь

Не работает сокрытие частей кода
Собственно сабж описан в заголовке. Подскажите как вернуть. Сброс параметров не помог.

Объясните пару частей из Кода на СИ
Это код перевода из любой системы счисления в другую , пределы от 2 до 36. Красный выделено то, что не понятно #include<stdio.h> ...

преобразование частей кода в функции
Помогите пожалуйта, а-то запутался((( нужно сделать в программе две функции. Первая из них осуществляет поиск информации по введенному...

Как правильно организовать взаимодействие двух частей кода?
Всем ку! Есть задумка разделить код в билдере на 2 части. В первой части будут только обработчики событий, которые вызывают различные...

Проблема с импортом нескольких частей кода в один файл
Добрый день! На хабре прочитал статью, вернее ту часть, где говорилось о сборке html: ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru