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

 
 
> TMS320F28335 - формирование .bin файла для записи из внутри, Нужно записать прошивку не через CCS, а через FlashAPI
PrSt
сообщение May 30 2014, 22:32
Сообщение #1


http://uschema.com
****

Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394



Есть уже мной написанный загрузчик через CAN(пропустим особенности, они не нежны). Он получает прошивку, которую помещает в ОЗУ. От туда её нужно записать в DSP Flash чтоб потом нормально с неё загружаться.
То есть, мне нужно записать прошивку, не через CCS, а через внтруннюю FlashAPI, своей программой.У меня TMS320F28335 - как устроено формирование .bin файла я разобрался,
но не могу понять как сделать формирование этой прошивки в .bin для записи из ОЗУ внутри.
Когда я получаю прошивку через CAN и записываю +передергиваю питание... она не стартует, а если ту же прошивку записать через CCS, то все работает. кстати если сразу после прошивки начать дебажить, то она работает. Также я проверил содержимое флэша, по тем адресам, что в бинарике, они так же там же находятся в флеше после записи, то есть полностью правильно записываются.
Такая же задача, но с записью в OTP секцию - работает, а вот с записью в флэш - не получается..., возможно что то с линкер файлом.
Помогите плиз разобраться с проблемой, а то уже мозги выкручиваются...


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
doom13
сообщение May 31 2014, 15:24
Сообщение #2


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

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



Ответте, пожалуйста на следующие вопросы:
1. Какой режим загрузки процессора выбран железно пинами (он не меняется!!!) и, соответственно, с каких адресов стартует процессор при включении питания?
2. Что делает OTP загрузчик после загрузки загрузчика второго уровня в RAM? Каждый ли раз при включении питания происходит загрузка загрузчика второго уровня в RAM?
3. Что делает загрузчик второго уровня после записи прошивки во флэш-память? Каждый ли раз при включении питания происходит загрузка прошивки и её запись во флэш?

Цитата(PrSt @ May 31 2014, 20:50) *
Щас вопрос не про загрузку. Там я уже разобрался давно. Тут вопрос про то если этот код загружен уже в ОЗУ и из него произвидится запись в флеш, тоесть мне прилетает стрим и я его должен записать, потом перегрузиться и должно работать с новой прошивкой.

Тут и нужно понимать алгоритм запуска, всю последовательность передачи управления (из Вашего описания не совсем понятно), иначе ничего не должно работать, вобщем ответте на вопросы, а там дальше посмотрим.

Цитата(PrSt @ May 31 2014, 20:50) *
на данном этапе, в вопросе это по идее и не важно, исходим из того что программа уже в работе...

Программа в работе, если процессор перешёл на адрес выполнения программы, тут-то у Вас, по-идее, и проблема.

Цитата(PrSt @ May 31 2014, 20:50) *
Да все стандартно, линкуются секции
codestart .initboot .text cinit, .pinit ... итд.
юзается библиотека rts2800_ml.lib которая предоставляет точку входа _c_int00 и она уже вызывает main()
Классика.

Классика, это когда выбран режим загрузки с флэша, вы кладёте прошивку по нужным адресам флэша и при включении питания она стартует. У Вас же несколько этапов загрузки, так что рассказывайте всё по-порядку.
Go to the top of the page
 
+Quote Post
PrSt
сообщение May 31 2014, 19:59
Сообщение #3


http://uschema.com
****

Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394



Цитата( @ May 31 2014, 21:34) *
Ответте, пожалуйста на следующие вопросы:

1. Какой режим загрузки процессора выбран железно пинами (он не меняется!!!) и, соответственно, с каких адресов стартует процессор при включении питания?


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




Цитата( @ May 31 2014, 21:34) *
2. Что делает OTP загрузчик после загрузки загрузчика второго уровня в RAM? Каждый ли раз при включении питания происходит загрузка загрузчика второго уровня в RAM?
-переходит на адрес старта 2го уровня, который в свою очередь скачивает прошивку большого размера. это происходит не каждый раз, а только когда найден установленный флаг, иначе переходит на адрес выполнения старой программы и не обновляет.




Цитата( @ May 31 2014, 21:34) *
3. Что делает загрузчик второго уровня после записи прошивки во флэш-память? Каждый ли раз при включении питания происходит загрузка прошивки и её запись во флэш?

Тут и нужно понимать алгоритм запуска, всю последовательность передачи управления (из Вашего описания не совсем понятно), иначе ничего не должно работать, вобщем ответте на вопросы, а там дальше посмотрим.

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




Цитата( @ May 31 2014, 21:34) *
Программа в работе, если процессор перешёл на адрес выполнения программы, тут-то у Вас, по-идее, и проблема.


Классика, это когда выбран режим загрузки с флэша, вы кладёте прошивку по нужным адресам флэша и при включении питания она стартует. У Вас же несколько этапов загрузки, так что рассказывайте всё по-порядку.

у меня отп режим который при старте смотрит нужноли скачивать новую прошивку, если не нужно, старт старой. если нужно то качается 2го уровня, запускается, скачивается полностью фирмваря и записывается вместо старой.


--------------------
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 1 2014, 07:46
Сообщение #4


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

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



Цитата(PrSt @ Jun 1 2014, 03:09) *

И так, Ваш алгоритм старта процессора: (рисунок).

1. На плате железно выбран режим Boot To OTP.
2. Проверяем ветку, где не требуется загрузка новой прошивки.
В ОТР прошит загрузчик, который должен стартануть основную программу. Основную программу заливаем при помощи CCS, ставим точку останова в начале main, из ССS делаем Reset, далее Run, процессор должен прийти на нашу точку останова. Если нет, разбираемся, что по каким адресам положили и почему ОТР загрузчик не стартует основную программу во флэш-памяти

3. Проверяем работу второй ветки аналогичным способом.
Если уверены, что программа записывается правильно загрузчиком второго уровня, то заливаем её из CCS, ставим точку останова в начале main, из ССS делаем Reset, далее Run, и посылаем процессору загрузчик второго уровня и эту же прошивку, после перепрошивки флэша процессор должен попасть на нашу точку останова. Если нет, но уверены что во флэш легло всё правильно, то смотрим как передаётся управление загрузчиком второго уровня из RAM.

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
PrSt
сообщение Jun 1 2014, 11:57
Сообщение #5


http://uschema.com
****

Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394



Цитата(doom13 @ Jun 1 2014, 13:56) *
И так, Ваш алгоритм старта процессора: (рисунок).
1. На плате железно выбран режим Boot To OTP.
2. Проверяем ветку, где не требуется загрузка новой прошивки.
В ОТР прошит загрузчик, который должен стартануть основную программу. Основную программу заливаем при помощи CCS, ставим точку останова в начале main, из ССS делаем Reset, далее Run, процессор должен прийти на нашу точку останова. Если нет, разбираемся, что по каким адресам положили и почему ОТР загрузчик не стартует основную программу во флэш-памяти

о, вот комбинировано я еще не пробовал, все время симуллировал, то в флеше, то в озу. Спасибо за совет.

Цитата(doom13 @ Jun 1 2014, 13:56) *
3. Проверяем работу второй ветки аналогичным способом.
Если уверены, что программа записывается правильно загрузчиком второго уровня, то заливаем её из CCS, ставим точку останова в начале main, из ССS делаем Reset, далее Run, и посылаем процессору загрузчик второго уровня и эту же прошивку, после перепрошивки флэша процессор должен попасть на нашу точку останова. Если нет, но уверены что во флэш легло всё правильно, то смотрим как передаётся управление загрузчиком второго уровня из RAM.

Да именно так и делаю, сегодня как раз дебажил (но еще не до конца). Все так, только за одним исключением, я прыгаю не на 0033fff6, а на EntryPoint, который мне сообщается в бинарике.

Подскажите тогда сразу по ходу и на другие вопросы - ответы.
1) Столкнулся с глюком CCS изза которого пришлось делать все через свою прогу 2го уровня. А точнее, вот создал я прошивку для OTP но при записи средствами CCS (F11) она не стартует после рестарта и разумеется плата с уже установленными пинами в отп загрузку. Но если я записую эту же прошивку своим загрузчиком 2го уровня, то все отлично(только для отп не делаю стирания перед записью). Выглядит как будто какойто косяк в CCS. Но чтото мне подсказывает что это не так. может встречались с таким?
2) Как быть? прошивку для OTP я слелал (допустим уже она финально отлажена) как теперь на производстве массово её прошивать, сотнями-тысячами в день? Вчера начальник сказал это вопрос тоже первостепенной важности и его нужно решить. Разумеется отдавать на завод исходники чтоб они компилили и прошивали, так это точно не способ. Вот как тут быть? Подскажите.
Сегодня нашел прогу C2Prog но чтото она не работает с моим эмулятором, так что проверить не смог. Какие еще есть варианты?


--------------------
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- PrSt   TMS320F28335 - формирование .bin файла для записи из внутри   May 30 2014, 22:32
- - doom13   Цитата(PrSt @ May 31 2014, 05:42) Вообще...   May 31 2014, 09:27
|- - PrSt   Цитата(doom13 @ May 31 2014, 15:37) Вообщ...   May 31 2014, 13:40
- - Turnaev Sergey   +1 к Boot Mode Select.   May 31 2014, 09:45
|- - doom13   Цитата(PrSt @ Jun 1 2014, 19:07) Все так,...   Jun 1 2014, 12:41
||- - PrSt   Цитата(doom13 @ Jun 1 2014, 18:51) Ну это...   Jun 4 2014, 12:11
||- - doom13   Цитата(PrSt @ Jun 4 2014, 19:21) Я попыта...   Jun 4 2014, 14:28
|||- - PrSt   Цитата(doom13 @ Jun 4 2014, 21:38) Не сов...   Jun 7 2014, 09:08
|||- - doom13   Цитата(PrSt @ Jun 7 2014, 16:18) У меня 2...   Jun 7 2014, 14:44
|||- - Vladm   Цитата(PrSt @ Jun 7 2014, 17:18) Если чес...   Jun 8 2014, 15:54
|||- - PrSt   Цитата(Vladm @ Jun 8 2014, 22:04) Так. Да...   Jun 14 2014, 04:25
|||- - doom13   Цитата(PrSt @ Jun 14 2014, 07:25) Только ...   Jun 16 2014, 10:07
|||- - PrSt   Цитата(doom13 @ Jun 16 2014, 12:07) Что-т...   Jun 17 2014, 11:55
||- - Vladm   Цитата(PrSt @ Jun 4 2014, 20:21) А пробле...   Jun 4 2014, 14:29
||- - Turnaev Sergey   Цитата(PrSt @ Jun 4 2014, 20:21) CCS3 не ...   Jun 4 2014, 16:06
||- - Vladm   Цитата(Turnaev Sergey @ Jun 5 2014, 00:16...   Jun 5 2014, 00:22
|- - Vladm   Цитата(PrSt @ Jun 1 2014, 20:07) о, вот к...   Jun 4 2014, 02:41
- - 1108   Цитата(PrSt @ May 31 2014, 06:42) Есть уж...   Jun 3 2014, 05:13
|- - doom13   Цитата(1108 @ Jun 3 2014, 12:23) Делал св...   Jun 3 2014, 05:37
|- - 1108   Цитата(doom13 @ Jun 3 2014, 13:47) Ваш ва...   Jun 4 2014, 07:06
- - IDL   Здравствуйте, уважаемые специалисты. У меня сходна...   Jan 21 2016, 13:41
- - doom13   Тут было начало разговора, можете глянуть, возможн...   Jan 21 2016, 14:17
|- - IDL   Цитата(doom13 @ Jan 21 2016, 17:17) Тут б...   Jan 21 2016, 16:16
- - doom13   Не совсем понятно, что Вы хотите сделать. Этим пер...   Jan 21 2016, 19:53
|- - IDL   Цитата(doom13 @ Jan 21 2016, 22:53) Не со...   Jan 21 2016, 20:33
- - doom13   В той теме, если не ошибаюсь, этот процесс расписа...   Jan 21 2016, 20:57
- - IDL   Скорее всего у меня не получалось, потому что cmd ...   Jan 22 2016, 06:07
- - IDL   Еще раз всем привет. С прыжками и выполнением прог...   Jan 22 2016, 11:29
- - doom13   У нас использовался ACII-HEX формат, загрузчик сам...   Jan 22 2016, 11:52
|- - IDL   Цитата(doom13 @ Jan 22 2016, 14:52) У нас...   Jan 22 2016, 11:55
- - IDL   doom13, а не подскажете про формат ASCII-HEX? CCS ...   Jan 22 2016, 13:16
- - doom13   Правила преобразования смотрите в Assembly Languag...   Jan 22 2016, 13:58
- - IDL   Разобрался, большое спасибо.   Jan 25 2016, 08:30


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 14:28
Рейтинг@Mail.ru


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