Перейти к содержанию
    

DSP/BIOS

Пришлось изучать чужой проект на DSP/BIOS. В main() разумеется только начальная инициализация. В файле tcf присутствует несколько SWI. непонятно как они вызываются. Например есть в группе "SWI - Software Interrupt Manager" есть функция SWI_1tsk. Как посмотреть логику её вызова?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо.

Есть конкретный вопрос:

в меню конфигурации DSP/BIOS(файл *.tcf) есть SWI_GetSample, в свойствах которого указана функция _FRW_GetSample. Но, когда ищу функцию _FRW_GetSample по всему проекту, но эта функция встречается только в файле *.map и *.cdb

А хочется увидеть определение функции _FRW_GetSample.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

хочется увидеть определение
Рискну предположить, что обе переменные - пользовательские. Первой нет в списке SWI модуля, а вторая использует префикс, которого в BIOS-е нет. Linker не выдает unresolved external? Попробуйте поискать просто "FRW_GetSample".

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рискну предположить, что обе переменные - пользовательские. Первой нет в списке SWI модуля, а вторая использует префикс, которого в BIOS-е нет. Linker не выдает unresolved external? Попробуйте поискать просто "FRW_GetSample".

 

Да, FRW_GetSample нашёл. Но непонятна логика вызова. Как посмотреть по каким условиям она вызывается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, FRW_GetSample нашёл. Но непонятна логика вызова. Как посмотреть по каким условиям она вызывается?

Присоединяюсь к вопросу. Кто-нибудь может на пальцах объяснить, что такое програмные прерывания и как ими пользоваться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяюсь к вопросу. Кто-нибудь может на пальцах объяснить, что такое програмные прерывания и как ими пользоваться?

сейчас отправят читать Application note. Но мне хочется в конркетном моём примере разобраться, если вижу в tcl-файле во вкладке SWI функцию FRW_GetSample, то как узнать логику её вызова?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сейчас отправят читать Application note
А естественно. И не только appnotes, сколько в первую очередь user's guides.

 

На пальцах, в общих чертах: SWI это набор приоритетов, более высоких, чем у TSK, но более низких, чем у HWI. Если я правильно помню (_проверьте_ в user's guide!), HWI это ISR. Таким образом, SWI это просто задачи. Управление им передаётся специальными вызовами из модуля SWI. Возможно, что SWI задача может ожидать открытия семафора или сообщения - по крайней мере, я не вижу причин, которые бы этому помешали.

 

RTFM - это не ругательство, это методика.

 

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

 

FRW_GetSample - определена как SWI в конфигурации? Вот с этого и начинайте. Из какого контроллера выборка получается? Какая ISR (HWI) этот контроллер обслуживает? И т.д.

Изменено пользователем AndrewN

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пришлось изучать чужой проект на DSP/BIOS. В main() разумеется только начальная инициализация. В файле tcf присутствует несколько SWI. непонятно как они вызываются. Например есть в группе "SWI - Software Interrupt Manager" есть функция SWI_1tsk. Как посмотреть логику её вызова?

вот здесь писал, какой юзер гайд для понимания следует прочитать. И посмотрите на указанный 2.5 раздел. В нем сказано что в файле programcfg.s62, генерируемом Биосом, находятся инициализирующие функции (а так же вызывающие). Если что, спрашивайте!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...