- Исправить ошибку CSR8510 A10 драйвера Bluetooth в Windows 10
- Ошибка CSR8510 A10 драйвера
- 1. Обновить драйвер Bluetooth
- 2. Установка универсального драйвера Bluetooth
- Драйверы для устройств Bluetooth CSR 💾
- Как поставить CSR 4.0 Bluetooth драйвер на Windows 10 или 7 64x
- С диска
- Через диспетчер устройств
- Примечание
- Видео
- Заключение
- Устройство csr bluecore не работает
- Bluetooth перестал работать после обновления Windows 7
- Пролог
- История
- Решение
- Эпилог
- Модуль Bluetooth HC-04 на чипе BC417143B компании CSR
- Инструментарий для разработки
- Хранилище настроек, Persistent Store
- Библиотеки BlueCore и SDK компании CSR
- Краткое описание xIDE и простейшего приложения
- Общая структура приложения BlueLab
Исправить ошибку CSR8510 A10 драйвера Bluetooth в Windows 10
В Widnows 10 может пропасть возможность подключаться по CSR Bluetooth, который обычно предназначен как радиоприемник и используется для подключения беспроводной клавиатуры или мышки.
Настройки Bluetooth могут исчезнуть, а в диспетчере устройств появляется ошибка с восклицательным знаком, которая ссылается на проблемы с драйвером CSR8510 A10. Если перейти в параметры устройств Windows 10, то Bluetooth будет помечен как «Драйвер недоступен» или «Ошибка драйвера«.
Ошибка CSR8510 A10 драйвера
В этом руководстве о том, как исправить ошибку драйвера CSR8510 A10 Bluetooth на Windows 10.
1. Обновить драйвер Bluetooth
- Нажмите Win+X и выберите «Диспетчер устройств«.
- Разверните графу «Bluetooth» и нажмите правой кнопкой по устройству, после чего выберите «Обновить драйвер«.
- Далее нажмите на «Автоматический поиск» и следуйте рекомендациям на экране.
2. Установка универсального драйвера Bluetooth
Проделайте способ 1, но вместо автоматического обновления драйвера, выберите «Найти драйверы на этом компьютере» > «Выбрать драйвер из списка доступных«. Далее выберите из списка другой доступный драйвер для Bluetooth.
Источник
Драйверы для устройств Bluetooth CSR 💾
В связи с наличием беспроводных наушников решил заказать донгл для их подключения к ПК. Как часто бывает, при установке китайского устройства, возникли проблемы. Поэтому я решил показать другим, где скачать и как установить CSR v 4.0 Bluetooth драйвер на Windows 10 и 7.
Как поставить CSR 4.0 Bluetooth драйвер на Windows 10 или 7 64x
С диска
В комплекте вместе с адаптером шел диск. Вот как он выглядит:
Так как дисковода у меня нет, файлы с него я нашел в интернете. Вы можете загрузить их по ЭТОЙ ссылке. В комплект, помимо нужного сертификата, входит программа, в которую включена поддержка A2DP и виртуального каталога подключенных устройств. После инсталляции все заработает автоматически. Вес архива 407 мегабайт. Вот так выглядит установщик:
А вот так окно приложения:
Данный вариант мне не понравился из-за постоянного отвала девайсов, которые я подключал к блютузу. Также раздражало моргание светодиода, которое работало даже после отключения персонального компьютера от сети. Поэтому я решил проблему другим способом.
Через диспетчер устройств
Я узнал, что в bluetooth csr 4.0 установлен чип от Cambridge Silicon Radio маркировки 8510 A10. Вот что я сделал, и это можете попробовать сделать вы:
- В панели управления зайдите в «Устройство и принтеры»
- Выберите «Dongle»
Во вкладке «Оборудование» выберите «Свойства»
Во вкладке «Общие» выберите «Изменить параметры»
Нажмите «Обновить драйвер»
В открывшемся окне кликните на «Выполнить поиск на этом компьютере»
Теперь кликните на «Выбрать из списка ужу установленных»
Снимите галочку «Только совместимые устройства». Теперь, в колонке производитель выберите «CambridgeSiliconRadio LTD». В правой колонке найдите CSRNanosira-multimedia и установите его, нажав «Далее».
Увидев сообщение, как на скриншоте ниже, перезагрузите ПК или ноутбук.
Теперь вы можете подключать любые гаджеты прямо из под Виндовс.
Примечание
Если у вас будет плохое качество звука, то аудио устройство нужно перевести на «Стерео режим», отключив «Hands Free». Это также делается через «Принтеры».
Видео
Заключение
Теперь вы знаете как поставить csr 4.0 bluetooth драйвер на windows. Если вам интересно почитайте, как настроить материнскую плату Клисре.
Источник
Устройство csr bluecore не работает
Вобщем, не знаю, есть ли такое. Давно у меня был похожий модуль, соединял им комп и ноут, файлы перекидывал.
Сейчас необходимо к компу подключать Bluetooth акустику. (+aptX)
У меня есть наушники с микрофоном, которые использую с планшетом, на работе их тоже хотел бы использовать с компом.
Типа есть такое: http://m.aliexpress.co…m-desc/1950632649.html
Но не могу понять, как дела с микрофоном.
Сообщение отредактировал AngelOfMors — 18.12.19, 04:42
конкретно данны чип может тупо не хзаоработать как надо без этого ПО, обычному хватило бы стандартного стека встроенного в windows.
посе установки стека и свистка через меню подключения устроств подтыкаешь гарнитуру и у тебя появляется несколько устройств воспроизведения и записи звука. стерео -для музыки и просто -для Hands free profile
AngelOfMors, хорошо разобраться с проблемой помогут Вам (и всем нуждающимся) вот эти обзоры:
«Bluetooth 4.0 Dongle Adapter CSR 4.0 USB 2.0» — ссылка не проходит, введите название целиком в Google и по первой же ссылке выйдете на сайт «m y S K U . r u» где размещён обзор;
«USB Bluetooth адаптер на чипе CSR8510» — аналогично.
Сообщение отредактировал zogar7 — 10.03.16, 08:09
А не подскажет ли кто, какие вообще сейчас BT-адаптеры есть нормальные?
Сколько ни смотрел отзывов в инет-магазинах — все жалуются на кривые драйвера, никакую совместимость, необходимость ставить bluesoleil и прочие извращения.
Или у нас только копеечный мусор с Али перепродают втридорога?
купил bt адаптер buro bu-bt40a. сопряжаю с гарнитурой сони sbh80. увы музыку просто в вк можно слушать, а зато в паре с игрой уже не тянет поток, звук тупо тормозит. короче чушь выходит. не знаю как лечить , расстроился. стоит всего 330, это по скидке купил в ситилинк. обычнное беспонтовое барахло. а отдавать 1000р за хороший передатчик жалко, и не факт , что потянет потоки аудио в высоком битрейде + многопотоковое аудио. Короче, не берите это буро, это отстой. ну не тащат они звуковой поток. по началу справляются и потом затыки, запоздание звука итд
Сообщение отредактировал Vancho777 — 05.03.17, 01:56
А может не в адаптере дело, а в конфигурации ПК/системы??
Адаптеру-то что? Знай себе пуляй по радиоканалу, то что драйверами+железом пережалось, из исходного потока (aptx более ресурсоёмкое).
Это я к тому, что «потянуть потоки аудио в высоком битрейте + многопотоковое аудио», как ты выразился, не есть проблема блютус передатчика — всё равно всё перекодируется (на лету) в то, что он может вообще передать (этот может до 352k максимум, по aptx). Проблемы могут быть только с мощностью радиосигнала.
Тоже заказал себе сегодня в ситилинке buro bt40a + жду из китаев orico bta-403. Подключать буду к гарнитуре с aptx, для прослушивания музыки исключительно.
Сообщение отредактировал svk1977 — 29.05.17, 08:42
Хочу поделится здесь опытом использования bluetooth usb донгла Orico bta-403.
Небольшое отступление: купил для смартфона стерео-гарнитуру от сони с поддержкой bluetooth 4.0 (чтоб меньше жрало энергии) и c поддержкой кодека AptX (для лучшего звука). Со смартфоном работает прекрасно, но я решил наушники подключить к компу. И тут началось самое интересное.
Из за жадности корпорации Qualcom владеющими правами на технологию Aptx, не все устройства поддерживают данную функцию. Недолгое гугление выдало что есть сторонние производители делающие донглы с поддержкой aptx, но все они в основном сделаны на основе контроллера CSR8510 (CSR — дочерняя фирма Qualcom выпускающая эти чипы).
Ну и после изучения гугла и форумов был выбран ресивера фирмы Orico bta-403.
Источник
Bluetooth перестал работать после обновления Windows 7
Надеясь на великий разум и свято уповая на то что уж там, на Олимпе, в Силиконовой Долине, живут исключительно непогрешимые боги, все пользователи Windows жадно устанавливают обновления Windows Update в надежде на райскую жизнь. Однако никогда не стоит забывать о старой доброй пословице: «Работает — не трогай!».
Пролог
В очередной раз потирая ручки от волнения и ожидая значительных улучшений ставлю свеженькое обновление от 25.01.2011 с интригующей меня информацией:
Cambridge Silicon Radio Limited — Audio, Other hardware — CSR BlueCore Nanosira
Способ обновления: Необязательное
Cambridge Silicon Radio Limited Audio, Other hardware software update released in December, 2010
Дополнительные сведения: http://winqual.microsoft.com/support/?driverid=20407835
Справка и поддержка: http://support.microsoft.com/select/?target=hub
Дело в том, что я частенько использую мой bluetoth модуль от Bluetake в связке с Jabra BT620s чтобы послушать музыку в тишине, поболтать по скайпу. Но что-то нехорошее стало происходить от обновления к обновлению Windows и, если изначально я ещё помню, что все вышеперечисленные радости мне давались с легкостью, то с каждым обновлением bluetooth стека в Windows 7 я стал лишаться сперва корректной синхронизации, что заставляет меня «спаривать» мою гарнитуру каждый раз при включении, затем микрофон Jabr’ы стал выдавать страшный шум, звук в профиле A2DP стал прерывистым. И вот уже подобно верному наркоману я каждый раз ожидаю новой таблеточки, новой дозы от Microsoft в надежде на разрешение этих проблем и вновь обретение душевного спокойствия и райского умиротворения с любимой гарнитурой.
История
Так произошло и в этот раз, многообещающие надписи сулили как минимум поддержку Bluetooth 3.0 и свежие драйвера, но примерно на следующий же день я почувствовал некий подвох, когда не обнаружил привычного синенького значка bluetooth у себя в трее. Сперва я не придал этому значения, мол серьезное обновление, требует перезагрузки, которая с моим компьютером случается крайне редко. Однако когда через два дня я все же решил разобраться с этим и перезагрузил свой компьютер, я отчетливо начал понимать что лишился не просто какого-то значка, а то, что МОЙ КОМПЬЮТЕР ТЕПЕРЬ ВООБЩЕ НЕ ПОНИМАЕТ ЧТО ТАКОЕ БЕСПРОВОДНОЕ УСТРОЙСТВО BLUETOOTH!
Моему негодованию не было предела. Как такое вообще возможно, чтобы милое сердцу обновление Windows 7 от прекрасной компании Microsoft могло сделать это со мной?
Конечно же в ход пошел Google и после нескольких минут изысканий решение было найдено. Спасибо посту пользователя davewebb8211 с форума http://www.sevenforums.com.
Решение
- Заходим в Диспетчер устройств и находим среди Контроллеров USB устройство CSR BlueCore Nanosira
- В свойствах устройства переходим на вкладку Драйвер, нажимаем кнопку Обновить…
- В открывшемся окне выбираем Выполнить поиск драйверов на этом компьютере
- Затем Выбрать драйвер из списка уже установленных драйверов
- Далее на выбор Вам будет предложено несколько драйверов уже установленных в системе, выберите Generic Bluetooth Radio
Эпилог
После вышеописанных действий Bluetooth вновь вернулся в мою систему и я опять обрел уже свои привычные психоэмоциональные расстройства. Научит ли нас этот случай чему-нибудь? Вряд ли. Буду ждать очередной таблеточки от Microsoft, однако за пережитые депрессии Microsoft — (-)…
Источник
Модуль Bluetooth HC-04 на чипе BC417143B компании CSR
Компания CSR (Cambridge Silicon Radio) выпускает специальные чипы для устройств BlueTooth. Чипы судя по всему довольно недорогие, потому что господа китайцы предлагают миниатюрные (размером несколько больше симкарты) платки Bluetooth HC-04 на основе чипа BC417143B (семейство BlueCore4, см. [1]), которые в России можно купить всего лишь за 6.6 доллара (через dealextreme.com, см. [2] и [3]).
По умолчанию в память FLASH платки HC-04 записано ПО, которое позволяет связать по радио Bluetooth любой наладонник (или телефон, ноутбук и т. п.) со встраиваемой системой на основе микроконтроллера (робот, плата Arduino, любое устройство на микроконтроллере, имеющее TTL-порт UART RS-232). С помощью пакета CSR CASIRA BLUELAB SDK (в котором есть рабочие примеры программ Bluetooth) можно самому перепрограммировать модуль HC-04 и создавать свои собственные устройства Bluetooth. Программатор и полноценный аппаратный отладчик для модуля можно легко сделать самому, подключается к компьютеру он через порт LPT (см. [4]). В предлагаемой статье краткое описание инструментария разработки для чипов семейства BlueCore компании CSR, которое можно использовать для быстрого начала написания своих программ для модуля HC-04.
Подробно описывать технические характеристики модуля HC-04 не буду, так как все можно узнать по ссылкам с сайта dealextreme [2]. Напишу только о самом интересном. На борту у модуля стоит чип памяти на 1 мегабайт. Там записано управляющее firmware и все настройки (подробнее далее). На внешние 34 контакта модуля выведены:
— аппаратный UART, сигналы TXD, RXD, CTS и RTS.
— последовательный порт PCM (для цифрового ввода/вывода звука).
— два аналоговых входа/выхода AIO.
— ножка сброса RESET (её можно никуда не подключать).
— вход напряжения питания +3.3 вольта, ток потребления максимум 35 мА.
— интерфейс USB.
— интерфейс SPI, через который прошивается firmware и происходит отладка.
— 12 цифровых порта ввода/вывода PIO.
После подачи питания на модуль (3.3 вольта, максимум 35 мА) его можно обнаружить как беспроводное Bluetooth-устройство с профилем последовательного COM-порта. Т. е. на вашем наладоннике (телефоне, ноутбуке и проч.) появится последовательный порт, через который можно напрямую обмениваться данными через TTL-сигналы TX и RX стандартного порта RS-232. Firmware HC-04 позволяет AT-командами менять скорость передачи данных в широких пределах (от 1200 до 1382400 бод), причем изменения настройки скорости энергонезависимы, и сохраняются между выключениями питания. Таким образом, благодаря своим малым размерам и низкой цене (в России можно купить за $6.6) модуль HC-04 уже интересен как удобное готовое устройство для беспроводной связи.
Однако, как выяснилось, для модуля HC-04 можно самому писать программы, и записывать их в память чипа. Обзору этих возможностей посвящена основная часть статьи.
Инструментарий для разработки
Программатор придется делать самому, так как в России его купить невозможно, никто не продает. Радостно, что схема совсем простая, нет проблем собрать самому. Программатор представляет собой простейший интерфейс LPT SPI.
Через этот нехитрый программатор можно слить всю память FLASH модуля HC-04 в двоичные файлы (с помощью утилиты BlueFlash), посмотреть и отредактировать настройки модуля и программы (с помощью утилиты PSTool). Писать программы firmware и отлаживать (с помощью того же LPT SPI) можно в среде разработки xIDE. Имеются многочисленные примеры исходного кода различных устройств Bluetooth, необходимая документация на английском языке. Все эти возможности открываются на операционной системе Windows, если установить CSR CASIRA BLUELAB SDK (инсталляционный пакет занимает примерно 55 мегабайт, после установки занимает 310 мегабайт).
Примеры позволяют создавать устройства Bluetooth роли A (что-то типа мастера Bluetooth, которые сами находят устройства Bluetooth и подключаются к ним. Устройство роли A найти поиском беспроводных устройств невозможно) и роли B (slave устройства Bluetooth, которые можно найти поиском беспроводных устройств). С помощью примеров из CSR CASIRA BLUELAB SDK можно организовать обмен данными между двумя модулями HC-04, в этом случае одно должно реализовать роль A, а другое роль B (штатное firmware, которое записано в HC-04 на заводе, этого делать не позволяет, в нем реализована только роль B).
Хранилище настроек, Persistent Store
В память модуля HC-04 вместе с firmware записано множество различных параметров (такие, как адрес Bluetooth, имя устройства, выходная мощность передатчика и проч.), так называемых ключей. Это не просто особенность именно модуля HC-04, так принято в архитектуре BlueCore при программировании приложений. Все ключи могут быть просмотрены утилитой PSTool, при необходимости изменены (если Вы, конечно, понимаете, что делаете) и сохранены в файл *.psr, имеющий удобный текстовый формат. Дамп ключей делается довольно долго (у меня процесс занимал около 2 минут), при этом работа firmware не останавливается. Все ключи, хранящиеся в чипе, разделены по уровням хранения. Уровни привязаны к месту хранения настроек (FLASH, RAM, ROM), а также по времени создания (Implementation, Factory). Ключи каких уровней отображать, выбирают в меню Store (All (TIFR), Implementation Only (I), ROM Only ®, RAM Only (T), Factory Only (F), Not RAM (IFR)). Если один и тот же ключ одновременно определен на разных уровнях и с разными значениями, и выбрано показывать все уровни (All (TIFR)), то будет показано значение ключа, сохраненного на самом верхнем уровне. Значения ключей по умолчанию сохранены в ROM, самый низкий уровень. Ключи времени выполнения сохраняются на самом высоком уровне, Transient (RAM). Несколько уровней сразу обозначаются аббревиатурами из первых букв уровней, например IFR, TIFR. Подробнее об уровнях Persistent Store написано в документе blab-ug-008Pb_PSTool_User_Guide.pdf.
Библиотеки BlueCore и SDK компании CSR
В проектах примеров xIDE все тонкости скрыты далеко от глаз пользователя в библиотеках. Библиотеки делятся на 3 класса:
- Foundation Libraries
- Support Libraries
- Profile Libraries
Foundation Libraries — основной функционал, низкоуровневая работа с аппаратурой. Поставляется только в бинарном виде, без исходного кода. Заголовочный файл для использования функций Foundation библиотеки — csr.h.
Support Libraries — обеспечивают поддержку соединений (RFCOMM, L2CAP и SCO). Заголовочные файлы, и файлы исходного кода находятся в папке C:\BlueLab\src\lib.
Profile Libraries — относятся к профилям BlueTooth. Профили – это что-то типа предназначения устройства Bluetooth (например, последовательный порт, аудиоустройство, источник и приемник файлов, интерфейс USB и т. д.). Заголовочные файлы, и файлы исходного кода находятся в папке C:\BlueLab\src\lib.
В чипе BlueCore имеется много разных интерфейсов, источников и приемников данных (Kalimba, PCM, SCO, RFCOMM, L2CAP, UART, Host, USB, HID, Region, File, Audio Notes), которые с помощью библиотек могут достаточно просто соединяться друг стругом и обмениваться данными через потоки (streams). Некоторые источники и приемники данных (Kalimba) относятся к ядрам BlueCore, имеющим на борту DSP. Чип BC417143B, установленный на платке HC-04, относится к семейству BlueCore4 и DSP у него нет. Подробности см. в документе CS-110275-UGP1_Implementing_Streams_in_BlueLab.pdf.
Для того, чтобы начать использовать библиотеку, нужно подключить директивой #include нужный .h файл и добавить в настройки проекта имя нужной библиотеки Project Properties -> Configuration Properties -> Build System -> Libraries — в поле ввода через запятую указаны имена нужных библиотек (без расширения файла). Библитеки можно пересобрать (процесс довольно долгий!) путем запуска ярлычков BlueLab 41 -> Rebuild -> VM libraries и DSP libraries.
Краткое описание xIDE и простейшего приложения
Проекты устройств BlueTooth, которые может найти хост через поиск, имеют суффикс _b (например spp_dev_b). Проекты, которые сами работают как хост, т. е. могут подключить к себе другие устройства BlueTooth, имеют суффикс _a (например spp_dev_a). Устройства с суффиксом _a нельзя найти хостом через поиск BlueTooth устройств.
Чтобы запустить проект через xIDE, нужно зайти в папку проекта (все проекты демонстрационных примеров находятся в папке C:\BlueLab41\apps\examples) и двойным щелчком запустить файл *.xiw (здесь хранятся настройки Workspace, настройки проекта хранятся в файле *.xip). Автоматически запустится среда разработки xIDE, в которой можно просматривать исходный код проекта и запустить код на компиляцию и отладку. При запуске отладки через LPT SPI автоматически считывается тип чипа, и проект компилируется под него. После компиляции программа автоматически заливается во внешнюю FLASH-память, подключенную к процессору CSR (напомню, что для модулей BlueTooth HC-04 это процессор BC417143B-IQN-E4 (BlueCore4-External device)), и программа запускается на выполнение. После останова отладки, если выключить и снова включить питание, то чип окажется перезаписанным новой скомпилированной программой, которая запустится и начнет работу. Грузится обычный проект а память чипа около минуты (а что Вы хотели от порта LPT?).
Можно самому с нуля написать для HC-04 простейшее приложение, мигающее светодиодом. Для этого нужно запустить xIDE, выбрать Project -> New. указать тип проекта Bluelab –> Blank VM Project, ввести любое имя проекта (например MyFirstBluelab), выбрать папку для месторасположения проекта (все сделано по аналогии, как в Visual Studio) и нажать OK. Затем нужно создать файл модуля main.c, и ввести туда текст:
#define LED_1 (1 struct
<
TaskData task;
uint16 change;
> ToggleTask;
static void MyHandler (Task t, MessageId id, Message payload)
<
uint16 change = ((ToggleTask *) t)-> change;
PioSet(change, PioGet() ^ change);
MessageSendLater (t, 0, 0, 500);
>
static ToggleTask toggle = < < MyHandler >, LED_1 >;
int main ( void )
<
PioSetDir (LED_1,
Коротко описание листинга (подробности см. в файле CS-110344-UGP2_WritingBlueCoreApplication.pdf):
— в блоке include подключаются заголовки для поддержки сообщений и портов ввода/вывода.
— оператор define задает ножку светодиода, которой будем управлять.
— структура ToggleTask задает тип для хранилища данных задачи приложения toggle.
— подпрограмма MyHandler – обработчик сообщения, который выполняет управление светодиодом. Алгоритм очень простой. Из переданной структуры задачи t считывается значение параметра change. Там находится маска светодиода LED_1, и параметр change здесь применен просто как демонстрация хранения и передачи данных запущенной задачи. Вызовы процедур PioSet и PioGet обеспечивают установку светодиода в противоположное состояние (если он был выключен, то включается, и наоборот), значение переменной change используется как маска. Процедура MessageSendLater отправляет новое сообщение задаче t через 500 мс.
— декларация статической переменной toggle выделяет память под переменную структуры ToggleTask и присваивает значения её полям task и change.
— в коде процедуры main PioSetDir настраивает PIO1 (LED_1) как выход.
— MessageSend отправляет первоначальное сообщение, которое получит обработчик MyHandler.
— вызов процедуры MessageLoop запускает доставку сообщений между задачами. В MessageLoop выполнение зацикливается, и до оператора return 0 управление никогда не доходит.
Теперь если нажать F7, то проект скомпилируется. Если нажать F5, то программа автоматически зальется в память чипа и запустится на выполнение (при условии, что у Вас подключены модуль LPT SPI и к нему подключен модуль HC-04), и светодиод на ножке PIO1 начнет мигать с частотой 1 Гц. При этом доступна полноценная отладка – по шагам, с точками останова, с просмотром переменных, памяти и регистров процессора. Точки останова ставятся в коде как обычно, щелчком мыши слева от текста кода (появляется коричневый кружок напротив строки, где задана точка останова) – также, как в Visual Studio. Подробнее про отладку можно прочитать в документе CS-101500-UGP5_BlueLab xIDEuser guide.pdf.
Общая структура приложения BlueLab
Приложение firmware основывается на задачах (task). Каждая задача выполняет определенную, возложенную на неё функцию. Все задачи выполняются как отдельные логические потоки, которые не блокируют друг друга. Планировщик задач не вытесняющий (not preemptive), поэтому важно, чтобы все обработчики сообщений выполнялись до завершения, и не зацикливались навсегда, иначе работа остальных задач нарушится. Задачи обмениваются друг с другом информацией через сообщения (message). Во все задачи, которые создает приложение, входит также особая задача верхнего уровня, так называемая задача приложения (application task). Эта задача отвечает на сообщения и управляет общим поведением приложения. Сложные приложения могут содержать несколько application task.
Сообщения (messages) создаются и передаются в следующей форме:
Task t, MessageId id, Message payload
Task t указывает на получателя сообщения, это указатель на принимающую задачу, например &AppTask.
MessageId id идентифицирует сообщение. Принята следующая система нумерации сообщений:
— сообщение, которое задача отправляет сама себе, начинается с 0x00.
— системные сообщения начинаются с 0x8000.
— сообщения, отправленные задаче отдельной библиотекой профиля, начинается с базы 0x7000, и соощения библиотеки SPP начинаются с 0x6f00.
Message payload — полезная нагрузка (данные), передаваемая в сообщении. Иногда в сообщении нет полезной нагрузки, когда достаточно только идентификатора сообщения. В этом случае Message payload равна NULL.
Имеется набор функций для упрощения отправки сообщений, см. message.h и соответствующую документацию. Обработчик сообщений для каждой задачи должен обработать все адресованные ему сообщения. Обычной практикой разработчика является разработка кода обработки сообщений, которые принимает задача приложения (application task). Не нужно писать обработчики для задач профиля (profile tasks) и задач поддержки (support tasks), инициализированных из библиотек BlueLab или SDK. Обработчики этих задач уже встроены в библиотеки и выбираются после вызова соответствующей функции Init. Приложение application task должно обработать сообщения, поступившие из библиотек, которые оно инициализировало. Таблица системных сообщений приведена в файле CS-110344-UGP2_WritingBlueCoreApplication.pdf, Appendix A System Messages. Таблица баз (первый байт значения ID сообщения) сообщений библиотек приведена в том же файле, Appendix B Library Message Bases. Во время отладки через дебаггер (LPT SPI или USB SPI) сообщения появляются в окне Output, закладка Messages.
Задачи и сообщения позволяют разработчику приложения разбить весь нужный функционал на отдельные модули, работающие как разные задачи, при этом нужно обеспечить обмен сообщениями между задачами. Все сообщения ставятся в очередь и обрабатываются (передаются) в порядке поступления. Планировщик смотрит на первое сообщение в очереди и по если это нужно, то передает это сообщение как параметры соответствующему обработчику задачи. После того, как сообщение передано обработчику, функция MessageLoop освобождает payload переданного сообщения и переходит к обработке следующего сообщения в очереди, или ждет появления в очереди нового сообщения.
Можно выводить отладочные сообщения из кода программы оператором printf. В этом случае в окне Output открывается закладка Print Channel 0, и туда впечатывается вывод printf. Вывод printf работает в реальном времени во время работы firmware через дебаггер на LPT SPI. В реальном приложении все операторы printf должны быть убраны, иначе приложение без отладчика повиснет и не будет работать (из-за переполнения стека). Для удаления отладочного вывода применяют специальный токен времени компиляции DEBUG_PRINT_ENABLED и операторы условной компиляции #ifdef.
#define DEBUG_PRINT_ENABLED 1 //разрешение вывода printf
DEBUG_PRINT_ENABLED можно также определить в свойствах проекта, Build System -> Define symbols. Пример использования DEBUG_PRINT_ENABLED имеется в проектах примеров приложений C:\BlueLab41\apps\examples\.
Есть несколько проблем, с которыми пришлось столкнуться при экспериментировании с xIDE. Если программа в чип прошивается, но отладка запускаться не хочет с ошибкой «The app file read from disk appears to be invalid.», то это может произойти, когда до папки проекта сложный путь, имеющий в составе пробелы и/или русские буквы. Например, Ваш проект размещается в папке c:\Documents and Settings\User\Admin\Мои документы\LEDFlashing\. Поменяйте размещение проекта на более простое, например c:\temp\LEDFlashing, и отладчик запустится нормально. С русификацией у xIDE есть определенные проблемы — текст, сохраненный в коде на русском языке, при повторном открытии отображается с кракозябрами, поэтому писать комментарии на русском языке в коде не получится. Иногда сильно мешает компиляции антивирус Касперского (процесс проходит очень медленно). Целесообразно настроить исключение проверки объектов на путь C:\BlueLab41\tools\*.exe. Настройки вступят в силу почему-то только после перезагрузки Windows.
Источник