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

 
 
> 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
 
Start new topic
Ответов
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
Harvester
сообщение Oct 8 2015, 08:09
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 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



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

 


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


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