Меню

+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
Тема закрыта
|
||||
|
Ошибка в ПО драйвера L502Здравствуйте.
|
|||
|
||||
|
Re: Ошибка в ПО драйвера L502Здравствуйте. Спасибо за найденную ошибку. Думаю правильным будет изменить код, с которого должны начинаться пользовательские команды на 0x8000, так как это сохранит неизменным командный интерфейс ПК->BlackFin. По сути Вы можете изменить значение константы L502_BF_CMD_CODE_USER в l502_bf_cmd_defs.h в прошивке и в файле, который использует программа для ПК. При этом Вы можете использовать текущие версии драйвера и библиотеки. При обновлении SDK эти исправления будут внесены в штатную прошивку и документацию. |
|||
|
||||
|
Re: Ошибка в ПО драйвера L502Здравствуйте. Спасибо за совет, но это решение для текущей версии драйвера и библиотеки не подходит, т.к. библиотека поверяет разрешенные команды с кодом < 0x80000000 и не разрешает неизвестные команды. |
|||
|
||||
|
Re: Ошибка в ПО драйвера L502Такого быть не должно. Давайте разбираться. 1. Я так понимаю, что для посылки пользовательских команд Вы используете функцию L502_BfExecCmd()? Эта процедура вообще позволяет послать любую команду в BlackFin и на ее работу код влиять не должен. Любая команда должна дойти до сигнального процессора. На всякий случай проверьте возвращенный код ошибки. Если код ошибки -512 или ниже (-513, -514 т. д.), то значит команда дошла до сигнального процессора и эту ошибку уже вернула прошивка процессора в ответ на команду. 2. Я так понимаю Вы пишите свою прошивку на основе штатной (иначе зачем Вам пользовательские команды). В штатной прошивке сигнального процессора проверяется старший бит кода (это было действительно сделано неправильно, как Вы правильно заметили для правильной проверки L502_BF_CMD_CODE_USER должно быть 0x8000), если не установлен, то проходится по таблицы стандартных функций, а если установлен, то вызывается функция usr_cmd_process(). В штатной прошивке эта функция просто завершает выполнение команды с кодом ошибки L502_BF_ERR_UNSUP_CMD, так как в штатной прошивке нет пользовательских команд. Вам нужно соответственно добавить сюда свою обработку (и при правильных кодах вызвать l502_cmd_done с кодом L502_BF_ERR_SUCCESS. Т.е. библиотека на ПК сам код L502_BF_CMD_CODE_USER не использует, а он введен для того, чтобы:
Таким образом, изменение только самой прошивки должно быть достаточно. Если что-то работает не так, то просьба подробнее описать, что именно. |
|||
|
||||
|
Re: Ошибка в ПО драйвера L502Спасибо, проверил, это действительно так, все работает. На тот момент я просто не исправил L502_BF_ERR_UNSUP_CMD в строке 150 файла "l502_user_process.c" В процессе корректировки штатной прошивки появилась еще одна проблема: внес изменения в функцию usr_in_proc_data и теперь ПК периодически выпадает в BSOD (Windows XP 32).
|
|||
|
||||
|
Re: Ошибка в ПО драйвера L5021. Правильно ли я понимаю, что при стандартной прошивке BSOD не возникал?
|
|||
|
||||
|
Re: Ошибка в ПО драйвера L5021 - при стандартной прошивке BSOD не возникал
|
|||
|
||||
|
Re: Ошибка в ПО драйвера L502Написал Вам ответ на почту |
Страницы 1
Тема закрыта