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

 
 
> TI AM1808 Program Reset, Как реализовать программный сброс процессора?
doom13
сообщение Nov 17 2014, 14:58
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



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

Можно сделать что-то типа:
Код
asm(" .ref Entry");
asm(" b Entry");

программа должна перезапуститься, но в моём случае не работает (только перейдёт на Entry и куда-то улетит), как понимаю надо ещё что-то почистить или сбросить, сделать аналог "System Reset" из CCS и перезапустить программу.

А как сделать, чтобы программа перешла на адреса встроенного ROM загрузчика и уже в соответствии с выбранным режимом загрузки перезагрузила прошивку и стартанула её?
Пока что-то не получаетсяsad.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SM
сообщение Nov 18 2014, 14:33
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



проверил - компилируется (компилятор gcc 4.7.7, ассемблер из него)....

LDR PC, =0xFFFD0000

листинг:

Код
  20                  .globl _start
  21                  _start:
  22:/home/s-markov/Linux_psp/sau-load/preload/start.S ****     ldr    r3, _start_armboot
  23:/home/s-markov/Linux_psp/sau-load/preload/start.S ****     bx    r3
  24                  
  25:/home/s-markov/Linux_psp/sau-load/preload/start.S ****     ldr    pc, =0xFFFD0000
  26                  
  27 000c 00000000     _start_armboot:        .word start_armboot
  28                  
  29                              .globl    _end
  30 0010 00000000     _end:            .word    __end
  31                              .globl    _code_len
  32 0014 18000000     _code_len:        .word    __end - _start + 4
  32      0000FDFF


отлично видно, что число 0xFFFD0000 он сам разместил в конце как слово данных. Кодов операции нету, что тоже понятно, их линкер только сформирует.

Цитата(doom13 @ Nov 18 2014, 17:18) *
что надо обнулять для нормального перезапуска

Надо, как минимум, перевести все LPSC в состояния "power-on", по сути, обресетить периферию.
Go to the top of the page
 
+Quote Post
doom13
сообщение Nov 18 2014, 15:04
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(SM @ Nov 18 2014, 17:33) *

У меня компилер TI v5.1.1 в настройках пректа стоит, наверное, поэтому и не компилится данная инструкция.

Цитата(SM @ Nov 18 2014, 17:33) *
Надо, как минимум, перевести все LPSC в состояния "power-on", по сути, обресетить периферию.

Попробовал перед переходом на BOOTROM загнать все PSC модули в состояние SwRstDisable state, работает, но иногда, при нескольких последовательных ресетах может повиснуть.
Go to the top of the page
 
+Quote Post
SM
сообщение Nov 18 2014, 15:32
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(doom13 @ Nov 18 2014, 18:04) *
загнать все PSC модули в состояние SwRstDisable

Ну надо не все, а по списку из TRM, только те, которые по дефолту в этом состоянии.
Go to the top of the page
 
+Quote Post
doom13
сообщение Nov 18 2014, 18:23
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(SM @ Nov 18 2014, 18:32) *
Ну надо не все, а по списку из TRM, только те, которые по дефолту в этом состоянии.

Ну не совсем все, SPI1 оставил - с него прошивка грузится и при его состоянии SwRstDisable загрузчик перестаёт работать, хотя должен был бы сам настроить его в нужное состояние (Enable). Проверю ещё кто должен быть по дефолту в состоянии сброса, спасибо.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Nov 19 2014, 07:59
Сообщение #6


Гуру
******

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



Цитата(doom13 @ Nov 19 2014, 00:23) *
Ну не совсем все, SPI1 оставил - с него прошивка грузится и при его состоянии SwRstDisable загрузчик перестаёт работать, хотя должен был бы сам настроить его в нужное состояние (Enable). Проверю ещё кто должен быть по дефолту в состоянии сброса, спасибо.

Логично, но почему-то до бутописателей это не доходит.... sad.gif
Сам сталкивался на OMAP L137 с подобной проблемой:
Загрузка идёт с внешней SPI-Flash микросхемы, после старта firmware и чтения конфига с той-же flash, перевожу её командой в Power Down (вроде ведь логично если такая функция есть в микросхеме и она больше не нужна ?). Но после этого, если подать HW RESET на OMAP, он больше не грузится с flash (грузится только после выкл./вкл. питания).
Если не подавать Power Down, то всё ок (а если она в Power Down, то она не отвечает ни на какие команды до команды Power Up).
Значит писатели встроенного бутлоадера не додумались, что флешка может быть в Power Down. sad.gif(((((
А вроде такая очевидная вещь....
Go to the top of the page
 
+Quote Post
doom13
сообщение Nov 19 2014, 09:45
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(jcxz @ Nov 19 2014, 10:59) *

Согласно даташиту на мой процессор, его SPI1 по дефолту находится в состоянии SwRstDisable. Вот тут-то и вопрос - кто его загнал в это состояние? Если это ROM загрузчик до передачи управления моей программе (т.е. для ROM загрузчика дефолтное состояние - включено), тогда всё понятно, если я его выключаю и передаю управление ROM загрузчику, то он и дохнет. Но если дефолтное состояние SwRstDisable - это для загрузчика, то он должен включать данный модуль и моё выключение на него влиять не должно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- doom13   TI AM1808 Program Reset   Nov 17 2014, 14:58
- - jcxz   Используйте встроенный сторожевик для сброса.   Nov 18 2014, 03:39
|- - doom13   Цитата(jcxz @ Nov 18 2014, 06:39) Использ...   Nov 18 2014, 06:25
||- - jcxz   Цитата(doom13 @ Nov 18 2014, 12:25) Это м...   Nov 18 2014, 08:27
||- - doom13   Цитата(jcxz @ Nov 18 2014, 11:27) Пришла ...   Nov 18 2014, 08:55
||- - jcxz   Цитата(doom13 @ Nov 18 2014, 14:55) Попро...   Nov 18 2014, 09:07
||- - doom13   Цитата(jcxz @ Nov 18 2014, 12:07) Восстан...   Nov 18 2014, 09:16
||- - jcxz   Цитата(doom13 @ Nov 18 2014, 15:16) Тут я...   Nov 18 2014, 09:34
||- - doom13   Цитата(jcxz @ Nov 18 2014, 12:34) Спасиб...   Nov 18 2014, 11:17
||- - jcxz   B - это прямой переход. В команде адрес назначения...   Nov 18 2014, 11:31
|||- - doom13   Цитата(jcxz @ Nov 18 2014, 14:31) B - это...   Nov 18 2014, 12:04
|||- - SM   Цитата(doom13 @ Nov 18 2014, 15:04) Ведь ...   Nov 18 2014, 12:31
|||- - doom13   Цитата(SM @ Nov 18 2014, 15:31) Не замет...   Nov 18 2014, 13:08
|||- - SM   Цитата(doom13 @ Nov 18 2014, 16:08) , где...   Nov 18 2014, 13:16
||||- - doom13   Цитата(SM @ Nov 18 2014, 16:16) Счас пон...   Nov 18 2014, 13:31
||||- - SM   BootRom: .long.set 0xFFFD0000 B BootRom а ...   Nov 18 2014, 14:13
|||- - jcxz   Цитата(doom13 @ Nov 18 2014, 19:08) Тут ч...   Nov 18 2014, 13:37
||- - SM   Цитата(doom13 @ Nov 18 2014, 14:17) Где м...   Nov 18 2014, 11:33
|- - doom13   Цитата(jcxz @ Nov 18 2014, 06:39) Использ...   Nov 18 2014, 14:18
- - SM   Цитата(doom13 @ Nov 19 2014, 12:45) Но ес...   Nov 19 2014, 09:57


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 08:58
Рейтинг@Mail.ru


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