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

 
 
> LPC4337, свой загрузчик. Инициализация SDRAM, мешает работе приложения
haker_fox
сообщение May 22 2018, 07:05
Сообщение #1


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Добрый день!
Задаю вопрос по просьбе своего коллеги. Они изготовил бутлоадер, который принимает приложение по каналу связи, и записывает его во внутреннюю флеш микроконтроллера. Само приложение 100% работает. Но вот нюанс. И приложение, и бутлоадер инициализируют внешнюю SDRAM, которую каждый использует для себя. И вот на старте инициализации SDRAM приложением проц то-ли улетает куда-то, то-ли зависает. Вопрос: почему такое может происходить. Ведь при повторной инициализации EMC приложением, данных, используемых кем-либо, нет. Это какая-то особенность контроллера памяти?


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
scifi
сообщение May 22 2018, 08:01
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Переход из загрузчика в приложение надо делать так:
1) Записать в ОЗУ метку (magic number) - признак перехода в приложение.
2) Программный сброс.
3) При старте загрузчик первым делом проверяет, был ли программный сброс, и есть ли метка.
4) Если да, запускает приложение. Если нет, затирает метку и продолжаем исполнять загрузчик.
Тогда никаких проблем с повторными инициализациями не будет.
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 22 2018, 08:30
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(scifi @ May 22 2018, 11:01) *
Переход из загрузчика в приложение надо делать так:
...
4) Если да, запускает приложение. Если нет, затирает метку и продолжаем исполнять загрузчик.
Тогда никаких проблем с повторными инициализациями не будет.

Не совсем правильно. При такой последовательности действий, если потом, при работе основного приложения, произошёл сброс МК без потери питания (по WDT например) или с кратковременной потерей, то при старте будет пропуск бутлоадера, чего очевидно не должно быть.
Так что метку надо затирать и перед передачей управления из бута в основное ПО, а в основном ПО не использовать это место в ОЗУ.

А можно просто корректно написать инициализацию EMC-контроллера (и остальной периферии) не рассчитывающую, что в регистрах периферии находятся дефолтные значения. По-крайней мере той периферии, которая используется в бутлоадере и основной программе. laughing.gif
У меня в бутлоадере я знаю какую периферию использовал и просто перед передачей управления основной программе делаю RESET для данных периферийных модулей. Благо что возможность подать RESET на конкретный периферийный блок в моём МК имеется (да и в LPC43xx она есть).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- haker_fox   LPC4337, свой загрузчик. Инициализация SDRAM   May 22 2018, 07:05
|- - scifi   Цитата(jcxz @ May 22 2018, 11:30) Не совс...   May 22 2018, 08:45
|- - haker_fox   QUOTE (scifi @ May 22 2018, 16:45) В конц...   May 22 2018, 10:28
- - Kabdim   У меня логика бута нацелена на исключение возможны...   May 22 2018, 08:03
- - haker_fox   Спасибо, господа!!! Передам эти рекоме...   May 22 2018, 08:17
- - haker_fox   При сбросе EMC модуля через RGU возникает hardfaul...   May 23 2018, 01:46
|- - jcxz   Цитата(haker_fox @ May 23 2018, 04:46) Пр...   May 23 2018, 18:30
- - Arlleex   Хм. А я не использую никаких зарезервированных мет...   May 23 2018, 05:01
- - VladislavS   Мне кажется, правильнее всего "добить" к...   May 23 2018, 06:04
- - Arlleex   ЦитатаЧто мешает делать после приёма прошивки рест...   May 23 2018, 20:00
|- - jcxz   Цитата(Arlleex @ May 23 2018, 23:00) Ниче...   May 23 2018, 22:20
- - Arlleex   Цитата(jcxz @ May 24 2018, 02:20) Какой и...   May 24 2018, 04:58
|- - jcxz   Цитата(Arlleex @ May 24 2018, 07:58) 1. П...   May 24 2018, 06:09
|- - scifi   Цитата(Arlleex @ May 24 2018, 07:58) Кодv...   May 24 2018, 07:01
|- - jcxz   Цитата(scifi @ May 24 2018, 10:01) Мне бо...   May 24 2018, 08:04
|- - Arlleex   Цитата(jcxz @ May 24 2018, 12:04) .asm: К...   May 24 2018, 08:13
||- - jcxz   Цитата(Arlleex @ May 24 2018, 11:13) Ну в...   May 24 2018, 10:55
|- - scifi   Цитата(jcxz @ May 24 2018, 11:04) Код ...   May 24 2018, 08:36
|- - scifi   Цитата(scifi @ May 24 2018, 11:36) Точно...   May 28 2018, 12:05
|- - Arlleex   Цитата(scifi @ May 28 2018, 15:05) Поправ...   May 28 2018, 12:22
|- - scifi   Цитата(Arlleex @ May 28 2018, 15:22) ИМХО...   May 28 2018, 12:46
|- - Arlleex   Цитата(scifi @ May 28 2018, 15:46) Не лиш...   May 28 2018, 12:52
|- - scifi   Цитата(Arlleex @ May 28 2018, 15:52) Пард...   May 28 2018, 13:02
- - Arlleex   ЦитатаЕсли после приёма прошивки (и записи её во ф...   May 24 2018, 06:39
- - Arlleex   ЦитатаМне больше нравится вот так: А какие плюшки ...   May 24 2018, 07:20
|- - scifi   Цитата(Arlleex @ May 24 2018, 10:20) А ка...   May 24 2018, 07:29
- - Arlleex   Да нет, не запутался. Говорю же что ошибся насчёт ...   May 28 2018, 14:42


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

 


RSS Текстовая версия Сейчас: 18th June 2025 - 22:34
Рейтинг@Mail.ru


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