测试:插入usb后会打印如下信息 方案2:usb mstorage.c 的_function_enable函数那里在open前先做判断,如果已经open了,则不需要再open了: if ((data->disk->flag & RT_DEVICE_FLAG_STANDALONE) &&(!(data->disk->open_flag & RT_DEVICE_OFLAG_OPEN))) { if(rt_device_open(data->disk, RT_DEVICE_OFLAG...
#defineSOUND_DEVICE_NAME"sound0"/* Audio 设备名称 */staticrt_device_tsnd_dev;/* Audio 设备句柄 *//* 根据设备名称查找 Audio 设备,获取设备句柄 */snd_dev=rt_device_find(SOUND_DEVICE_NAME); 打开Audio 设备 通过设备句柄,应用程序可以打开和关闭设备,通过如下函数打开设备: rt_err_trt_device_open...
"1") /* pre/device/component/env/app init routines will be called in init_thread */ /* components pre-initialization (pure software initilization) */ #define INIT_PREV_EXPORT(fn) INIT_EXPORT(fn, "2") /* device initialization */ #define INIT_DEVICE_EXPORT...
if(RT_EOK != rt_device_control(serial, RT_DEVICE_CTRL_CONFIG, &config)) { rt_kprintf("配置串口设备失败\n"); return RT_ERROR; } rt_kprintf("配置串口设备成功!\n"); /* step4:以中断接收及轮询发送模式打开串口设备 */ if(RT_EOK != rt_device_open(serial, RT_DEVICE_FLAG_INT_RX)) ...
函数返回查找到对应设备将返回相应的设备对象;否则返回 RT_NULL 6.3.5 打开设备rt_err_t rt_device_open (rt_device_t dev, rt_uint16_t oflags) 函数参数dev 设备句柄;oflags 访问模式。 其中 oflags 支持以下列表中的参数: #define RT_DEVICE_OFLAG_RDONLY0x001 /* 只读模式访问 */ #define RT_...
tim14=rt_device_find("timer14");if(tim14==RT_NULL){QSH(" #! timer14 find error\n");}ret=rt_device_open(tim14,RT_DEVICE_OFLAG_RDWR);if(ret!=RT_EOK){QSH(" #! timer14 open failed\n");}rt_device_set_rx_indicate(tim14,tim14_callback);rt_uint32_tfreq=1000;rt_device_contr...
(&rx_sem,"rx_sem",0,RT_IPC_FLAG_FIFO);/* 以中断接收及轮询发送方式打开串口设备 */rt_device_open(serial,RT_DEVICE_FLAG_INT_RX);/* 设置接收回调函数 */rt_device_set_rx_indicate(serial,uart_input);/* 发送字符串 */rt_device_write(serial,0,str,(sizeof(str)-1));/* 创建 serial ...
和uart_dev = rt_device_find(SERIAL_DEV_NAME); rt_device_open(uart_dev, RT_DEVICE_OFLAG_RDWR); rt_device_control(uart_dev, RT_DEVICE_CTRL_CONFIG, &uart_conf); 这两种操作结果都是一样的。因为,在开启 posix 之后,使用 termios 配置串口波特率只能在 open 之后。
enum rt_device_class_type type; /**< device type */ rt_uint16_t flag; /**< device flag */ rt_uint16_t open_flag; /**< device open flag */ rt_uint8_t ref_count; /**< reference count */ rt_uint8_t device_id; /**< 0 - 255 */ ...
移除rt_device_init_all()函数:在系统启动时不需要再调用这个函数来初始化驱动,而是由上层应用执行rt_device_open时自动进行设备初始化; 修正设备对象引用计数在打开设备失败依然递增的问题; 增加WEAK宏用于定义/声明弱符号; 在执行静态内存块分配前,重置线程的errno; ...