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

 
 
 
Reply to this topicStart new topic
> USB ROM API в LPC1830 - вызов из встроенной RAM, Hard Fault при вызове функций USB ROM API из IRAM
Harvester
сообщение Oct 8 2015, 05:54
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846



Добрый день.
Пытаюсь разобраться с USB ROM API. Взял пример cdc_vcom из LPC_OPEN, запустил - все работает.
Поскольку моя программа будет выполняться из внутреннего ОЗУ, переделал пример на отладку из IRAM.
Пример запускается, однако при вызове функции USBD_API->hw->Init(...) возникает исключение Hard Fault. wacko.gif
Код располагается в области 0x10000000..., буфер для USB стека - начиная с 0x20000000, так что здесь проблем быть не должно.
Что нужно сделать, чтобы функции ROM API можно было вызывать из внутреннего ОЗУ?


--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 8 2015, 06:41
Сообщение #2


Гуру
******

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



Цитата(Harvester @ Oct 8 2015, 08:54) *
Пример запускается, однако при вызове функции USBD_API->hw->Init(...) возникает исключение Hard Fault. wacko.gif

Что мешает пройтись по шагам в окне дизассемблера и установить точно, какая инструкция приводит к ошибке? Обычно там всё сразу становится очевидно.
Опять же, можно сделать обработчик Hard Fault, показывающий значения регистров при сбое. Тогда можно вычислить виновную инструкцию даже без внутрисхемного отладчика.
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Oct 8 2015, 07:44
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Не используйте это глюкало. Почти наверняка можно найти тот же код, но без ром апи. Его хотя бы можно исправить. Тем более на 1830 проблем с недостатком памяти быть не должно.
Go to the top of the page
 
+Quote Post
Harvester
сообщение Oct 8 2015, 08:09
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846



Цитата(scifi @ Oct 8 2015, 09:41) *
Что мешает пройтись по шагам в окне дизассемблера и установить точно, какая инструкция приводит к ошибке?

В принципе, ничего не мешает. Только:
1. Шагать по голому ассемблерному коду без каких-либо знаний об алгоритме, не говоря уже обо исходниках, занятие довольно бессмысленное
2. По большому счету, мне неинтересно какая именно из инструкций в ROM приводит к исключению.
Я просто подумал, может кто-нибудь уже сталкивался с этим поделием NXP. Мне нужно понять - ROM функции из внутренней RAM в принципе нельзя вызывать или же можно, но с какими-либо определенными телодвижениями.

Цитата(Kabdim @ Oct 8 2015, 10:44) *
Не используйте это глюкало. Почти наверняка можно найти тот же код, но без ром апи. Его хотя бы можно исправить. Тем более на 1830 проблем с недостатком памяти быть не должно.

В принципе, нехватка памяти - одна из причин интереса к USB ROM.


--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
Go to the top of the page
 
+Quote Post
Harvester
сообщение Oct 9 2015, 09:12
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846



Цитата(Harvester @ Oct 8 2015, 08:54) *
Добрый день.
Пытаюсь разобраться с USB ROM API. Взял пример cdc_vcom из LPC_OPEN, запустил - все работает.
Поскольку моя программа будет выполняться из внутреннего ОЗУ, переделал пример на отладку из IRAM.
Пример запускается, однако при вызове функции USBD_API->hw->Init(...) возникает исключение Hard Fault. wacko.gif
Код располагается в области 0x10000000..., буфер для USB стека - начиная с 0x20000000, так что здесь проблем быть не должно.
Что нужно сделать, чтобы функции ROM API можно было вызывать из внутреннего ОЗУ?

Вроде разобрался. Как обычно, оказалось, что сам дурак laughing.gif
Буфер для стека располагался, начиная с 0x20000000, и по этим же адресам линкер размещал переменные.


--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
Go to the top of the page
 
+Quote Post

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

 


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


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