Jump to content

    

Recommended Posts

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

Share this post


Link to post
Share on other sites

Спасибо.

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

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

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

Share this post


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

 

 

Share this post


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

 

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

Share this post


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

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

Share this post


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

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

Share this post


Link to post
Share on other sites
сейчас отправят читать 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) этот контроллер обслуживает? И т.д.

Edited by AndrewN

Share this post


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

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

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this