Dubov 0 13 июля, 2012 Опубликовано 13 июля, 2012 · Жалоба Пришлось изучать чужой проект на DSP/BIOS. В main() разумеется только начальная инициализация. В файле tcf присутствует несколько SWI. непонятно как они вызываются. Например есть в группе "SWI - Software Interrupt Manager" есть функция SWI_1tsk. Как посмотреть логику её вызова? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrewn 0 13 июля, 2012 Опубликовано 13 июля, 2012 · Жалоба DSP/BIOS SWISPRU403R 2.29 SPRU423H 4.3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dubov 0 14 июля, 2012 Опубликовано 14 июля, 2012 · Жалоба Спасибо. Есть конкретный вопрос: в меню конфигурации DSP/BIOS(файл *.tcf) есть SWI_GetSample, в свойствах которого указана функция _FRW_GetSample. Но, когда ищу функцию _FRW_GetSample по всему проекту, но эта функция встречается только в файле *.map и *.cdb А хочется увидеть определение функции _FRW_GetSample. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrewn 0 14 июля, 2012 Опубликовано 14 июля, 2012 · Жалоба хочется увидеть определениеРискну предположить, что обе переменные - пользовательские. Первой нет в списке SWI модуля, а вторая использует префикс, которого в BIOS-е нет. Linker не выдает unresolved external? Попробуйте поискать просто "FRW_GetSample". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dubov 0 15 июля, 2012 Опубликовано 15 июля, 2012 · Жалоба Рискну предположить, что обе переменные - пользовательские. Первой нет в списке SWI модуля, а вторая использует префикс, которого в BIOS-е нет. Linker не выдает unresolved external? Попробуйте поискать просто "FRW_GetSample". Да, FRW_GetSample нашёл. Но непонятна логика вызова. Как посмотреть по каким условиям она вызывается? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shamrel 0 15 июля, 2012 Опубликовано 15 июля, 2012 · Жалоба Да, FRW_GetSample нашёл. Но непонятна логика вызова. Как посмотреть по каким условиям она вызывается? Присоединяюсь к вопросу. Кто-нибудь может на пальцах объяснить, что такое програмные прерывания и как ими пользоваться? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dubov 0 15 июля, 2012 Опубликовано 15 июля, 2012 · Жалоба Присоединяюсь к вопросу. Кто-нибудь может на пальцах объяснить, что такое програмные прерывания и как ими пользоваться? сейчас отправят читать Application note. Но мне хочется в конркетном моём примере разобраться, если вижу в tcl-файле во вкладке SWI функцию FRW_GetSample, то как узнать логику её вызова? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrewn 0 15 июля, 2012 Опубликовано 15 июля, 2012 (изменено) · Жалоба сейчас отправят читать 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) этот контроллер обслуживает? И т.д. Изменено 15 июля, 2012 пользователем AndrewN Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
beaRTS 0 27 июля, 2012 Опубликовано 27 июля, 2012 · Жалоба Пришлось изучать чужой проект на DSP/BIOS. В main() разумеется только начальная инициализация. В файле tcf присутствует несколько SWI. непонятно как они вызываются. Например есть в группе "SWI - Software Interrupt Manager" есть функция SWI_1tsk. Как посмотреть логику её вызова? вот здесь писал, какой юзер гайд для понимания следует прочитать. И посмотрите на указанный 2.5 раздел. В нем сказано что в файле programcfg.s62, генерируемом Биосом, находятся инициализирующие функции (а так же вызывающие). Если что, спрашивайте! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться