bav 0 27 декабря, 2012 Опубликовано 27 декабря, 2012 · Жалоба но в IVPD адрес прописал. какой? "ResetVector"? я пробовал ставить точку остановки в векторе, и он на нее не попадает.. а куда попадает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetalzzz 0 27 декабря, 2012 Опубликовано 27 декабря, 2012 (изменено) · Жалоба да reset vector:(в дисасемблере нашел адрес метки и прописал его.) IVPD=0x2000, а перескакивает по адресу 0x4b327..и зацикливается там. вот еще ошибку выводит.... C55xx: Can't Single Step Target Program: (Error -1141 @ 0x0) Device is not responding to the request. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.747.0) Изменено 27 декабря, 2012 пользователем firegum Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
XanderEVG 0 27 декабря, 2012 Опубликовано 27 декабря, 2012 · Жалоба Все кто пишет про то что студенты тупые, ленивые, им фиолетово, начхать на учебу и тд вы не справедливы. меня аж коробит от такого и не могу не написать гневный пост! сами вы давно начинали? может тут все такие умные сидят что они на раз дсп процессор выучили? но расскажу историю по порядку! пишу т к я закончил в прошлом году этот же универ что и автор темы. более того эту же специальность. И микропроцессоры это далеко не профильный предмет на нем. автор писал что митода написана для другого процессора - для Мультикора от Элвиса. мы их прогали но виртуально т к физически их было всего 1 штука где то в шкафу(подарил кто то). тоже на них учили уарт дма и дсп. норм тк документация норм и на русском. Автору повезло меньше - то ли опять кто то подарил кафедре платы TI то ли что - короче штук 5-8 надыбали. А уж что подарили то и используют. хотя теже аврки купить 300 рэ. и конечно камень сложный и так просто не разобраться тем более что документация имхо говно какое то. то ли дело на AVR или stm32. "плохо читали доки" - конечно плохо. ее уметь надо читать. тыкать в документацию бесполезно. ее уже читали и ничего не поняли. лучше всего самый простой пример. пример любого прерывания а уж адаптировать его на уарт сумеют. "Проблема отсутствия опыта, решается накоплением опыта" Серьезно? давно в универе учились? это в ПТУ нехер делать. а в нашем универе не так свободного времени. ! тем более без платы ты ничего не можешь сделать ! а она в универе есстественно. "человек с э... ограниченными возможностями"? а вы простите гений и тоже начали сразу с дсп? не судите по себе не все такие. есть и обычные люди, которым о ужас эти микроконтроллеры даже не интересны могут быть (я этого не знаю)... "проконсультироваться с преподавателем"? да они сами первый раз этот камень видят, как они могут помочь? они знают в теории как работает уарт и все. в теории... "Начинающим задания программировать DSP-процессоры не дают" три раза ха. У НАС дают ((( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 27 декабря, 2012 Опубликовано 27 декабря, 2012 · Жалоба да reset vector:(в дисасемблере нашел адрес метки и прописал его.) IVPD=0x2000, а перескакивает по адресу 0x4b327..и зацикливается там. в IVPD/IVPH заносят не вектор, а адрес таблицы векторов, в которой уже первый вектор - резетный, остальные от остальных прерываниий. Да и по резет вектору оно перейдет только по команде ассемблера "reset", оно вам нужно? А по физическому резету все равно IVPD тоже переинициализируется на FFFF. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetalzzz 0 28 декабря, 2012 Опубликовано 28 декабря, 2012 · Жалоба в IVPD/IVPH заносят не вектор, а адрес таблицы векторов, в которой уже первый вектор - резетный, остальные от остальных прерываниий. ну сейчас я сделал по другому..выделил секцию памяти для вектора(прописал его туда), и прописал адрес начала этой секции в IVPD. Да и по резет вектору оно перейдет только по команде ассемблера "reset", оно вам нужно? А по физическому резету все равно IVPD тоже переинициализируется на FFFF. что значит "физический ресет"?. Да и по резет вектору оно перейдет только по команде ассемблера "reset", оно вам нужно? почему?. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 28 декабря, 2012 Опубликовано 28 декабря, 2012 · Жалоба что значит "физический ресет"?. почему?. "физический" - инициированный уровнем сигнала RESET на пине процессора. "софтверный" - по инструкции "reset". Так вот - тот, что по пину резет - он перезагрузит IVPD на FFFF. Тот, который софтверный - сомневаюсь, что вы его используете. Поэтому я и не вижу смысла вообще иметь какой то осмысленный reset vector. Заполняйте только то поле таблицы векторов, которое нужно для обслуживания нужного Вам прерывания. Когда заносите начальный адрес таблицы веткоров в IVPD, не забывайте, что нужно заносить туда БАЙТОВЫЙ (а не словесный, используемый для доступа к данным) адрес, сдвинутый на 8 разпрядов вправо, и иметь таблицу, выровненную физически в памяти на 256 байт. Это все надо проверить в листинге и в карте загрузки, все ли правильно заносится и располагается. почему? Вопрос скорее риторический... Потому что так разработчики ядра сделали. PS покажите тут свою таблицу векторов, она должна выглядеть как-то так (это для 5501, в 5515 могут быть отличие в привязке конкретных векторов к источникам прерываний): .sect ".vectors" ;SINT IER/IMR Description vecs: .ivec begin, USE_RETA ; 00 00 0001 Reset .ivec iret1 ; 01 01 0002 NMI .ivec iret1 ; 02 02 0004 Ext. #0 .ivec iret1 ; 03 03 0008 Ext. #2 .ivec timer_int ; 04 04 0010 Timer #0 .ivec iret1 ; 05 05 0020 MCBSP #0 RX .ivec iret1 ; 06 06 0040 MCBSP #1 RX .ivec iret1 ; 07 07 0080 MCBSP #1 TX .ivec iret1 ; 08 08 0100 USB .ivec dmac1_int ; 09 09 0200 DMAC #1 .ivec iret1 ; 10 10 0400 HPI .ivec iret1 ; 11 11 0800 Ext #3, WDT .ivec uart_int ; 12 12 1000 UART .ivec iret1 ; 13 13 2000 --- reserved --- .ivec iret1 ; 14 14 4000 DMAC #4 .ivec iret1 ; 15 15 8000 DMAC #5 .ivec iret1 ; 16 00 0001 Ext #1 .ivec iret1 ; 17 01 0002 MCBSP #0 TX .ivec dmac0_int ; 18 02 0004 DMAC #0 .ivec iret1 ; 19 03 0008 Ext #4, RTC .ivec dmac2_int ; 20 04 0010 DMAC #2 .ivec iret1 ; 21 05 0020 DMAC #3 .ivec iret1 ; 22 06 0040 Timer #1 .ivec i2c_int ; 23 07 0080 I2C .ivec iret1 ; 24 08 0100 Bus access error .ivec iret1 ; 25 09 0200 Data log int .ivec iret1 ; 26 10 0400 RTOS int .ivec iret1 ; 27 11 0800 SINT 27 .ivec iret1 ; 28 12 1000 SINT 28 .ivec iret1 ; 29 13 2000 SINT 29 .ivec iret1 ; 30 14 4000 SINT 30 .ivec iret1 ; 31 15 8000 SINT 31 При этом я реально использую команду "reset" при инициализации, поэтому в таблице имеется осмысленный вектор резета (на символ "begin"). А использую я это с целью сменить режим работы стека на двухуказательный SP/SSP (USE_RETA), так как это переключение делается ТОЛЬКО по команде софтверного резета. инициализация: amov #3FFFh,xsp amov #3EFFh,xssp rpt #20 nop mov #vecs>>8,mmap(@IVPD) mov #vecs>>8,mmap(@IVPH) rpt #20 nop ; Сброс процесора и перевод его в режим с сдвоенным стеком ; и быстрым возвратом из подпрограмм reset nop nop nop nop nop nop nop nop halt: b halt begin: ; Инициализация стека amov #usrstack+STACKSIZE-2,xsp amov #sysstack+STACKSIZE-2,xssp ...... ...... ...... P.P.S. Если проект на чистом С, то соотв. никакой инициализации не надо, ее делает C runtime, а таблица векторов не требует наличия в ней осмысленного резет-вектора, и указания режима стека (USE_RETA и т.п.), а только нужные вектора для работы с внешними устройствами. Однако таблица векторов должна быть описана на ассемблере директивами ".ivec" в любом случае, желательно оформить ее отдельным файлом. Тут, так сказать, я пас, у меня не было еще проектов под 55хх на чистом С, в основном все на чистом ассемблере, изредка с вкраплениями С-кода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bav 0 28 декабря, 2012 Опубликовано 28 декабря, 2012 · Жалоба "проконсультироваться с преподавателем"? да они сами первый раз этот камень видят, как они могут помочь? они знают в теории как работает уарт и все. в теории... а зачем нужен препод, который не может объяснить? если проблема у всего потока - это к декану. если проблема у одного одаренного - то стоит задуматься "плохо читали доки" - конечно плохо. ее уметь надо читать. тыкать в документацию бесполезно. ее уже читали и ничего не поняли. лучше всего самый простой пример. пример любого прерывания а уж адаптировать его на уарт сумеют. а чему учат в ВУЗе? - пользоваться литературой. firegum, заработало? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetalzzz 0 28 декабря, 2012 Опубликовано 28 декабря, 2012 (изменено) · Жалоба bav, почти). SM, спасибо, я в IVPD записывал без сдвига)..вот он и убегал хз куда)..пару раз норм сработал, вошел в процедуры обработки, но сейчас перестал вообще регистрировать прерывания(флаг в IIR не подымается) может что то не так делаю. clearreg(); UART_FCR=0x1;// включил режим FIFO UART_IER=0x07;// Открыл прерывания от UART IER0=0x40;// открыл глобальные прерывания от UART IER1=0x0; UART_LCR=0x03;//указываю длину передаваемой последовательности битов UART_MCR=0x10;//режим отладки(петли) initmac();//тоже глобальное открытие прерываний в регистре CPU ST1_55.INTM UART_FCR=0x7;//обнулил приемник и передатчик Изменено 28 декабря, 2012 пользователем firegum Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 28 декабря, 2012 Опубликовано 28 декабря, 2012 · Жалоба пару раз норм сработал, вошел в процедуры обработки, но сейчас перестал вообще регистрировать прерывания(флаг в IIR не подымается) Ну тут придется сообразить, что менялось между тем, как срабатывал, и как перестал. А также (для проверки недоинициализации чего либо) попробовать сделать сброс питанием перед очередным экспериментом. Еще, возможно, если Вы усугубляете весь процесс отладкой под эмулятором в реалтайм режиме, то, возможно, надо еще DBIER разрешать, а не только IER. Еще, вдогонку - процедура прерывания оформлена правильно? Возврат из нее командой процессора reti ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetalzzz 0 28 декабря, 2012 Опубликовано 28 декабря, 2012 · Жалоба Еще, вдогонку - процедура прерывания оформлена правильно? Возврат из нее командой процессора reti ? да как то на рандом срабатывает иногда..понять ничего не могу)..в DBIER разрешил прерывание уарта, перешел в оработчик, потом ничего существенного не менял, и он перестал переходить). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wycor 0 10 мая, 2013 Опубликовано 10 мая, 2013 · Жалоба Добрый день уважаемые участники форума, есть вопрос по поводу процессора указанного в заголовке темы, поэтому прошу простить мне ап старой темы. В документации указана поддержка USB 2.0 High-Speed (25—480 Мбит/с согласно вики), какой скорости передачи удавалось достичь на практике? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться