資源簡介
藍牙傳輸源代碼,基于ARM處理器,在S3C2410實驗箱上運行成功,無線網絡傳輸是一個很有活力的技術!想學習無線傳輸的可以下來看看!
代碼片段和文件信息
/*
?*
?*??Driver?for?Bluetooth?PCMCIA?cards?with?HCI?UART?interface
?*
?*
?*/
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
/*?========================?Module?parameters?========================?*/
/*?Bit?map?of?interrupts?to?choose?from?*/
static?u_int?irq_mask?=?0xffff;
static?int?irq_list[4]?=?{?-1?};
MODULE_PARM(irq_mask?“i“);
MODULE_PARM(irq_list?“1-4i“);
MODULE_AUTHOR(“Marcel?Holtmann?“);
MODULE_DEscriptION(“BlueZ?driver?for?Bluetooth?PCMCIA?cards?with?HCI?UART?interface“);
MODULE_LICENSE(“GPL“);
/*?========================?Local?structures?========================?*/
typedef?struct?btuart_info_t?{
dev_link_t?link;
dev_node_t?node;
struct?hci_dev?hdev;
spinlock_t?lock; /*?For?serializing?operations?*/
struct?sk_buff_head?txq;
unsigned?long?tx_state;
unsigned?long?rx_state;
unsigned?long?rx_count;
struct?sk_buff?*rx_skb;
}?btuart_info_t;
void?btuart_config(dev_link_t?*link);
void?btuart_release(u_long?arg);
int?btuart_event(event_t?event?int?priority?event_callback_args_t?*args);
static?dev_info_t?dev_info?=?“btuart_cs“;
dev_link_t?*btuart_attach(void);
void?btuart_detach(dev_link_t?*);
static?dev_link_t?*dev_list?=?NULL;
/*?Maximum?baud?rate?*/
#define?SPEED_MAX??115200
/*?Default?baud?rate:?57600?115200?230400?or?460800?*/
#define?DEFAULT_BAUD_RATE??115200
/*?Transmit?states??*/
#define?XMIT_SENDING 1
#define?XMIT_WAKEUP 2
#define?XMIT_WAITING 8
/*?Receiver?states?*/
#define?RECV_WAIT_PACKET_TYPE 0
#define?RECV_WAIT_EVENT_HEADER 1
#define?RECV_WAIT_ACL_HEADER 2
#define?RECV_WAIT_SCO_HEADER 3
#define?RECV_WAIT_DATA 4
/*?========================?Interrupt?handling?========================?*/
static?int?btuart_write(unsigned?int?iobase?int?fifo_size?__u8?*buf?int?len)
{
int?actual?=?0;
/*?Tx?FIFO?should?be?empty?*/
if?(!(inb(iobase?+?UART_LSR)?&?UART_LSR_THRE))
return?0;
/*?Fill?FIFO?with?current?frame?*/
while?((fifo_size--?>?0)?&&?(actual? /*?Transmit?next?byte?*/
outb(buf[actual]?iobase?+?UART_TX);
actual++;
}
return?actual;
}
static?void?btuart_write_wakeup(btuart_info_t?*info)
{
if?(!info)?{
printk(KERN_WARNING?“btuart_cs:?Call?of?write_wakeup?for?unknown?device.\n“);
return;
}
if?(test_and_set_bit(XMIT_SENDING?&(info->tx_state)))?{
set_bit(
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????19867??2006-02-26?09:37??btuart.c
-----------?---------??----------?-----??----
????????????????19867????????????????????1
- 上一篇:制作萬年歷 日期 農歷 溫度顯示 定時 功能
- 下一篇:SAP ABAP培訓練習題
評論
共有 條評論