Jump to content

    

Recommended Posts

На работе пришлось ковырять чужой проект под DSP BIOS.

Глянул - ничего непонятно. Ранее имел опыт программирования на C.

В идеале хочется найти учебник с простыми примерами. Книгу "Express DSP для чайников" читал. Но в ней только идеология. Подскажите, возможно есть что-то в открытом доступе.

Share this post


Link to post
Share on other sites
На работе пришлось ковырять чужой проект под DSP BIOS.

Глянул - ничего непонятно. Ранее имел опыт программирования на C.

В идеале хочется найти учебник с простыми примерами. Книгу "Express DSP для чайников" читал. Но в ней только идеология. Подскажите, возможно есть что-то в открытом доступе.

С чужим кодом почти всегда сложности. Попробуйте задавать конкретные вопросы. Например, "в функции main ничего не делается, а оно работает" :rolleyes:

Share this post


Link to post
Share on other sites
С чужим кодом почти всегда сложности. Попробуйте задавать конкретные вопросы. Например, "в функции main ничего не делается, а оно работает" :rolleyes:

да, по сути так оно и есть. Интересный подход применён, когда в функции main ничего не делается, но всё работает. Нигде не могу найти литературу чтобы объяснялись тонкости построения программ на чистом С "когда в main ничего не делается"

Share this post


Link to post
Share on other sites
да, по сути так оно и есть. Интересный подход применён, когда в функции main ничего не делается, но всё работает. Нигде не могу найти литературу чтобы объяснялись тонкости построения программ на чистом С "когда в main ничего не делается"

Когда main завершается, в работу вступает DSP/BIOS. Если в main действительно ничего особенного не делается (TSK_create и прочее), то смотреть нужно .tcf файл. Там описываются задачи, программные и аппаратные прерывания, а также многое другое. После изучения этого файла многое должно проясниться.

Share this post


Link to post
Share on other sites

если сделаю перевод, будет интересно? правда не обещаю в скорем времени, а так, через год наверное, потому что сам планировал разобраться, но сейчас другие более дела есть.

Share this post


Link to post
Share on other sites
если сделаю перевод, будет интересно? правда не обещаю в скорем времени, а так, через год наверное, потому что сам планировал разобраться, но сейчас другие более дела есть.

 

за год можно английский подучить )

Share this post


Link to post
Share on other sites

Скачай книгу Kentarnavaz по 6713.

 

Real-Time Digital Signal Processing Based on the TMS320C6000.

 

Либо в картинках семинар по SYS/BIOS DSP/BIOS.

 

http://processors.wiki.ti.com/index.php/C6...shop_Using_BIOS

 

Там всё в картинках и наглядно.

Вообще идеология DSP/Bios - обработка данных в процедурах ("задачах - tasks"), запускаемых во времени или по прерыванию.

Плюс добавлены механизмы разрешения коллизий при одновременном доступе к ресурсам - мьютексы и семафоры.

 

Имхо весьма странная вещь. Уж лучше сделать программу в виде "бесконечного" основного цикла с обработкой прерываний. Либо использовать более "взрослые" операционки.

Share this post


Link to post
Share on other sites

Полностью согласен. DSP/Bios крайне странная вещь. Свой проект так и не смог адаптировать под неё. Намного внятнее иметь свой планировщик или нормальную оську. Я остановился на собственном планировщике так как задача делится на части нормально.

Share this post


Link to post
Share on other sites
Полностью согласен. DSP/Bios крайне странная вещь. Свой проект так и не смог адаптировать под неё. Намного внятнее иметь свой планировщик или нормальную оську. Я остановился на собственном планировщике так как задача делится на части нормально.

Подскажите пожалуйста как реализовать свой планировщик. Интерересует реализация вытесняющей многозадачности без какой либо ОС.

Share this post


Link to post
Share on other sites

На самом деле планировщик как таковой - довольно простая штука. Для реального времени стандартным решением является планировщик в фиксированными приоритетами, с общим числом уровней от 8 до 256 в зависимости от набора задач. Не сказать, что фиксированные приоритеты - это самый правильный алгоритм планирования для реального времени, но он 1) довольно простой в реализации, 2) время перепланирования оценивается как O(1), то есть не зависит от числа задач в системе, 3) для него существуют алгоритмы защиты от т.н. инверсии приоритетов, когда требуется блокирование многопоточности при доступе к общему ресурсу.

 

Вытесняемость - вещь более интересная, поскольку для переключения контекстов требуется написать на ассемблере код, который положит в стек все необходимое, переключит указатель текущего потока, его стек, и снова достанет из нового стека все регистры ядра. Довольно кропотливая работа, но можно ее содрать из DSP/BIOS или linux.

Share this post


Link to post
Share on other sites

Крик утопающего.

Ребята помогите!

Как используя BIOS, вывести через UART "Hello World" ?

Процессор TMS320F28069. Я не понимаю принципов работы BIOS. Читаю "TMS320C28x DSP/BIOS 5.x Application Programming Interface (API) Reference Guide", вижу DEV Module, вроде бы это оно, но как эти воспользоваться?

Чего я не понимаю:

1. Как какая-либо функия закрепляется за Task/SWI/IDLE;

2. Как добавить/настроить аппаратное прерывание, например, от UART;

3. Как добавить в систему драйвер периферии, где его взять и какой у него интерфейс.

 

Знаю, вопросы наивные, но RTFM не помог. :smile3046:

 

Share this post


Link to post
Share on other sites

Таки "Hello World" вывести получилось. Однако, используя непосредственно регистры SCI. Как то так:

 char *msg;

main ()
{
scia_init();
.....
msg = "hello world\n\0";
scia_msg(msg);
.......
}

void scia_xmit(int a)
{
   while (ScibRegs.SCIFFTX.bit.TXFFST != 0) {}
   ScibRegs.SCITXBUF=a;

}

void scia_msg(char * msg)
{
   int i;
   i = 0;
   while(msg[i] != '\0')
   {
       scia_xmit(msg[i]);
       i++;
   }
}

 

 

Как тоже самое сделать, используя возможности BIOS?

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