Commit Graph

387 Commits

Author SHA1 Message Date
armink 16dad06fc7 [DeviceDrivers]Add SFUD(Serial Flash Universal Driver) SPI Flash driver for using RTT device. It makes RT-Thread support more type SPI Flash. 2016-10-09 09:06:01 +08:00
Bernard Xiong 99481cd0ac [DeviceDrivers] uart configure issue.
uart configure shall not been performed if uart is not open.
2016-06-13 13:31:13 +08:00
Bernard Xiong 07c0e13060 Merge pull request #632 from armink/master
Improve serial DMA rx mode. #628
2016-05-20 14:26:23 +08:00
Bernard Xiong c5949c2736 [DeviceDrivers] Update SPI flash drivers. 2016-05-20 14:07:32 +08:00
Bernard Xiong ac3af54a7e [DeviceDrivers] Use PBUF_POOL in enc28j60 drivers.
patched by FH.
2016-05-20 12:22:55 +08:00
Bernard Xiong f005d963e2 [DeviceDrivers] Add more baud rate in serial. 2016-05-20 12:22:16 +08:00
Bernard Xiong 02a5cebc6d [DeviceDrivers] Add MMC/SD change support.
Add MMC/SD change support, which patched by FH.
2016-05-20 12:20:35 +08:00
armink c3da9dda7b [DeviceDrivers] Add fifo mode to serial DMA rx when serial->config.bufsz != 0. 2016-05-14 11:43:06 +08:00
armink 4c9b77ded6 [DeviceDrivers]Fix dma_transmit callback parameter type error. #628 2016-05-11 13:34:18 +08:00
Bernard Xiong a3daa62151 [DeviceDrivers] Add RT_MTD_EECC_CORRECT code in MTD nand. 2016-04-18 13:56:38 +08:00
gbcwbz 0d63eb5f6d fix hardfault when RT_CAN_USING_BUS_HOOK is enabled in bsp/stm32f10x
function `rt_pin_write` is invoked by  function `can_bus_hook`, and it should to be initialized by gpio.c.
but gpio.c was not added in SConscript
2016-04-14 23:47:32 +08:00
Bluebear233 2b1983992f Update serial.c
fix reset serial receive interrupt flag when close serial
2016-04-09 20:58:10 +08:00
Bernard Xiong 048ffb481a [DeviceDrivers] Add umount operations in SDCard block device. 2016-04-05 11:11:10 +08:00
Bernard Xiong 8043186020 [DeviceDrivers] Add audio.h header file. 2016-04-05 11:10:08 +08:00
Bernard Xiong ada2c7a3f5 [DeviceDrivers] Add audio header file. 2016-04-05 11:02:04 +08:00
Bernard Xiong 3748008651 [DeviceDrivers] Add card remove operations in MMC/SD. 2016-04-05 11:01:49 +08:00
Bernard Xiong 24d089d80a [DeviceDrivers] Remove the tail space 2016-03-01 10:57:25 +08:00
Bernard Xiong eefd87284c [DeviceDrivers] fix the compiling warning in MMC/SD 2016-03-01 10:55:16 +08:00
Bernard Xiong 9d46ae69a7 [DeviceDrivers] fix the poll_rx issue in serial when there is no data. 2015-11-10 10:24:35 +08:00
Bernard Xiong 44ad3d1cb9 [DeviceDrivers] Remove open_flag assertion. 2015-09-24 20:46:59 +08:00
Bernard Xiong 342e8d688d Merge pull request #546 from heyuanjie87/ForPullRequest
[DeviceDrivers] Add hardware timer framework
2015-09-09 22:30:45 +08:00
heyuanjie87 984a7ba051 修改说明文档 2015-09-09 10:26:42 +08:00
weety f327e7c98f Delete unused file. 2015-09-07 15:03:44 +08:00
heyuanjie87 efc1b058ac 添加说明文档 2015-09-07 13:27:05 +08:00
heyuanjie87 d19f424909 简化操作接口 2015-09-06 15:05:47 +08:00
weety ebea51e8a8 Add more spi mode. 2015-09-04 22:47:48 +08:00
weety b71cb4c09d Add dm365 porting. 2015-09-04 12:30:20 +08:00
heyuanjie87 c84887d021 加入定时器设备 2015-09-02 22:00:24 +08:00
quintin 23b5fe5239 fix DMA tx mod tx_dma->activated flag init bug. 2015-08-31 14:57:01 +08:00
Bernard Xiong 0690980fb6 Merge pull request #539 from SchumyHao/master
add w25q80 support to spi flash
2015-08-24 10:51:03 +08:00
Bernard Xiong e029f14b46 [DeviceDrivers] fix sd->drv issue in sdio 2015-08-09 11:23:16 +08:00
aozima 3ad3066c4b fixed rt_can_close issues. 2015-07-21 17:04:22 +08:00
aozima defa6f37ff [DeviceDriver] update CAN baudrate enum. 2015-07-08 11:26:20 +08:00
Aubr.Cool 7051f01f48 [DeviceDriver]can add bus_hook 2015-07-07 12:06:24 +08:00
Aubr.Cool 5f860e8f94 [DeviceDriver]add missing hdr define 2015-07-07 12:01:56 +08:00
Aubr.Cool 0f20bf12fd [DeviceDriver]correct can critical problems 2015-07-07 11:50:39 +08:00
BernardXiong 2ca3ceab70 [DeviceDrivers] code cleanup for CAN 2015-07-06 18:24:56 +08:00
BernardXiong 91d866d81a [DeviceDrivers] Use mutex to lock can_open/close 2015-07-06 18:11:46 +08:00
BernardXiong 1488568801 [DeviceDrivers] code cleanup for CAN driver and fix some critical issue 2015-07-06 10:38:07 +08:00
Aubr.Cool 9cbf30a767 correct can hdr defines 2015-07-04 00:25:05 +08:00
Aubr.Cool 67b6b30e88 add rtthread.h include for can.h 2015-06-30 14:48:07 +08:00
Aubr.Cool b3f0737a99 correct can compiler error and warnings 2015-06-30 14:12:30 +08:00
weety 28f2fbd4cc 1.Fixed sdmmc cmd retries issue; 2015-06-22 21:28:42 +08:00
weety 41597e8793 Add mmc and emmc drivers. 2015-06-20 23:23:32 +08:00
Aubr.Cool c3e4fd079c correct can hdr read error 2015-06-16 08:49:25 +08:00
Aubr.Cool 9ea3219ab7 Add can driver doc 2015-05-15 11:34:43 +08:00
Aubr.Cool c7d703158a Add SConscript for can 2015-05-15 08:00:14 +08:00
Aubr.Cool 8e29e3d98b add author information 2015-05-15 07:58:21 +08:00
Aubr.Cool eb56b832ef Add Can Drv 2015-05-14 16:52:48 +08:00
BernardXiong 2f5c5b676d [DeviceDrivers] Add GD25Q flash id in w25qxx.c 2015-05-13 21:28:02 +08:00
Bernard Xiong 77b5098ae2 [DeviceDriver] Add more exported symbols for completion. 2015-05-11 12:33:15 +08:00
Bernard Xiong 452432a15b [Sensor] Fix the call back issue in sensor. 2015-05-04 20:44:47 +08:00
Bernard Xiong 6459839f28 Add extern declaration for C++. 2015-04-24 11:48:25 +08:00
SchumyHao 88936f0836 format 2015-04-16 21:08:07 +08:00
SchumyHao 7d341d4e6e add w25q80 support to spi flash 2015-04-16 21:06:54 +08:00
ItsEddy 16bf2e7255 [DeviceDriver] Fix inverted logic on SConscript
Remove dataqueue/pipe if not enable RT_USING_HEAP, supply the missing `not`.
2015-04-04 02:17:26 +08:00
Bernard Xiong 40db28cfec [DeviceDriver] Remove dataqueue/pipe if not enable RT_USING_HEAP 2015-03-31 06:17:49 +00:00
Aubr.Cool 5d6ac1ed37 correct rx_fifo init size error 2015-03-26 13:26:13 +08:00
Aubr.Cool 7caabd2b7a mv device ctl cmd macros from serial.h to rtdef.h 2015-03-26 08:40:36 +08:00
KodakWang 29fd52dfb8 Update completion.c
fix: completion wait after, maybe can't clean the flag.
2015-03-24 15:54:08 +08:00
Bernard Xiong 827ff71933 Merge pull request #435 from AubrCool/fix-pinregisternameproblems
[BSP] Correct pin register name problems
2015-03-23 20:55:34 +08:00
Aubr.Cool 6dc5851c55 Correct pin register name problems 2015-03-23 09:38:09 +08:00
Bernard Xiong 767c16d596 [USBH] fix the spelling wrong 2015-03-19 08:52:28 +00:00
Bernard Xiong 3462537bdd [DeviceDrivers] Update SConcript file for sensor code 2015-02-01 08:50:54 +00:00
bernard 94e5d1e5e6 [DeviceDrivers] Add MPU6050 and BMI055 sensor. 2015-02-01 16:17:06 +08:00
Bernard Xiong 19ee2c7e09 Merge pull request #416 from bright-pan/master
[Driver/ringbuffer]: Fix put_force bug
2015-01-26 11:14:03 +08:00
Bright Pan 2d67fe6565 [Driver/ringbuffer]: Fix put_force bug
OXape reports: http://www.rt-thread.org/phpBB3/topic3939.html
          driver/ringbuffer: when data length is bigger than space length
          for rb, the read_index in rb is not update.
    When length > space, update the read_index, the bug can be fix, and
          works fine.
2015-01-23 13:27:52 +08:00
Bernard Xiong 73d5acecba [DeviceDrivers] Add pin.h in the rtdevice.h 2015-01-20 07:24:49 +00:00
Bernard Xiong 1bb425e839 [DeviceDrivers] code cleanup for hardware pin 2015-01-19 08:56:43 +00:00
Bernard Xiong d01b2ca84b [DeviceDrivers] Add pin io driver framework 2015-01-19 06:18:16 +00:00
bernard f6ed27b863 [DeviceDrivers] Fix sensor_poll issue. 2015-01-04 20:01:52 +08:00
bernard 06454fd484 [DeviceDrivers] change tab to space in sensor. 2015-01-04 13:14:53 +08:00
bernard a6251a439e Use open_flag for serial device. 2015-01-04 12:25:20 +08:00
bernard 46bca6f84a Add C programming language APIs. 2015-01-04 12:24:46 +08:00
bernard 58163f49e0 [DeviceDriver] change the name style of method of C++ code; Add raw mode for sensor. 2014-12-31 22:33:54 +08:00
bernard c26b999360 Fix the sensor list issue. 2014-12-01 12:22:17 +08:00
aozima 92fac29f70 update RW009 driver: add softAP support. 2014-11-15 16:11:24 +08:00
bernard 6281ab2bbe [DeviceDriver] Remove i2c_core_lock. 2014-11-01 16:38:53 +08:00
Bernard Xiong 0fa10629f7 [Sensor] code cleanup 2014-11-01 15:52:25 +08:00
Bernard Xiong 18cd95688d [Drivers] Add sensor framework 2014-11-01 09:09:52 +08:00
aozima 3c99a5bf8d update RW009 wifi driver. 2014-09-24 12:08:01 +08:00
aozima 03496f0700 update RW009 driver. 2014-09-08 16:59:52 +08:00
heyuanjie87 8a44c7dbfb [Serial] BUG Fix: data be send twice in mode that other than polling 2014-09-01 23:43:50 +08:00
aozima 69d089cac0 Update SConscript: add spi to include path. 2014-08-29 21:53:28 +08:00
Bernard Xiong 0ad17f462d [DeviceDrivers] Add modification under Linux 2014-08-04 16:40:40 +08:00
bernard 5397e18c56 [DeviceDrivers] Fix compiling warning. 2014-08-03 14:29:46 +08:00
aozima 0fc1ac6189 add more SPI device driver. 2014-07-31 16:58:43 +08:00
bernard c45f5a2490 [Drivers] re-write serial framework. 2014-07-18 06:45:54 +08:00
shaolin 64a2902fa9 1. Fix some spell error;
2. Fix data transfer size calculate error issue;
2014-07-13 17:19:34 +08:00
bernard 005014e7d0 [Drivers] Add workqueue implementation. 2014-07-13 07:27:57 +08:00
bernard d0debf9892 [Drivers] Make code cleanup in serial framework. 2014-07-10 13:32:16 +08:00
weety d5b0c94552 [USB]fix rt_usbd_set_config() BUG which set the USB device to configuration state before enumerating the device. 2014-04-06 21:02:23 +08:00
bernard 306e1ac43f [DeviceDrivers] Add watchdog driver frame work 2014-03-04 14:32:56 +08:00
shaolin 020e95d91b Merge branch 'master' of https://github.com/RT-Thread/rt-thread 2014-03-04 09:14:48 +08:00
shaolin 0fb9c54efd 1.replace API prefix usb* with usbh* in USB host stack to distinct with USB device stack;
2.adjust some viable and micro name
3.some other small fix
2014-03-04 08:59:53 +08:00
Grissiom f615c1e92d Revert "Merge pull request #241 from bright-pan/master"
This reverts commit 5aeedc4f3a, reversing
changes made to 3d80e414ff.

This merge breaks every uart driver in all BSPs. @bright-pan , is there
any way to get this done without breaking existing code?
2014-03-03 12:07:13 +08:00
Bright Pan 9ab853aca3 Fix rt_serial_control() bug for customized command and indent the code 2014-02-28 18:22:50 +08:00
Bright Pan 10c4b6263f Use DeviceDriver ringbuffer.
Add hardware flow support.
Use new struct serial_ringbuffer.
2014-02-26 11:06:14 +08:00
shaolin 8fd0a7f9c6 Update USB Device Stack to support more device controllers;
Pass USB CV test verification;
Code cleanup;
2014-02-16 17:42:35 +08:00
Bernard Xiong ec7fada97e [Drivers] Fix the block start issue in MTD Nand operators 2013-12-30 18:14:09 +08:00
bernard 42ae1c634d [Drivers] Add more debug utilities in MTD nand 2013-12-29 22:27:33 +08:00
Grissiom 6bb2c0f2ea Revert "serial: set the errno if and only if in thread context"
This reverts commit 07bd09fc0f.
The validation of the context is done with in `rt_set_errno`. So it's
safe to call it here.
2013-10-25 21:23:15 +08:00
Grissiom 07bd09fc0f serial: set the errno if and only if in thread context
The errno is associated with threads. It will crash the thread if we set
it in interrupt context.
2013-10-25 20:31:02 +08:00
Grissiom 21fb9a0bac serial: do onthing if the size of read/write is zero
Return early if the size is 0 as there is nothing to do.
2013-10-25 20:15:08 +08:00
Grissiom 0feefc03b6 device/pipe: add a control cmd to get the space left in pipe 2013-10-23 01:43:18 +08:00
joyhope 281e55e973 notification function: rt_err_t (*tx_complete)(rt_device_t dev, void
*buffer) with buffer pointer
2013-09-24 20:57:00 +08:00
Grissiom 246bdde8de dev/portal: fix bug in portal callback forwarding
When forwarding rx/tx callback from the underlaying device(pipe), the
"dev" argument should be the portal. So the portal callback could think
itself as called.
2013-08-22 16:43:06 +08:00
Grissiom 824261d3bc dev/portal: add checks on oflag
It does not make sense to open portal without a flag. One should open a
portal with RT_DEVICE_OFLAG_RDWR in most cases.
2013-08-22 15:12:00 +08:00
Grissiom 6e676e7754 dev/portal: implement portal device
Portal is a device that connect devices. Currently, you can only connect
pipes in portal. Pipes are unidirectional. But with portal, you can
construct a bidirectional device with two pipes.
2013-08-20 12:54:43 +08:00
Grissiom 7e68096a88 dev/pipe: make pipe a type of device
Pipe have many differences with char device. The main difference is
altough pipe have both read and write, it is unidirectional in nature.
2013-08-20 10:16:55 +08:00
Grissiom 0340300f89 dev/pipe: cleanup 2013-08-19 16:25:17 +08:00
Grissiom e8cca2315a dev/pipe: call rx_indicate the time we resume reader
Some reader(FinSh again) would like to block on a semaphore which is
released in rx_indicate. So we should invoke rx_indicate in
_rt_pipe_resume_reader.
2013-08-19 15:57:59 +08:00
Grissiom d683d32bd5 device/pipe: add nonblocking read/write and force write mode
The previous implementation will always blocks the reader/writer.
However, at least FinSh would expect the device to be nonblocking ---
read should return 0 when there is no data in it.
2013-08-19 15:35:56 +08:00
Grissiom 4919d29d69 ringbuffer: add put_force and putchar_force API
Add the APIs that will discard the old data when rb is full.
2013-08-19 15:32:42 +08:00
Grissiom 981d929b56 ringbuffer: fix the ambiguous name
RT_RINGBUFFER_SIZE could mean "the size of the whole buffer", "the size
of the empty space" or "the size of the data". Moreover, it's never a
micro anymore. Change it to rt_ringbuffer_data_len before it's too late.
Also, RT_RINGBUFFER_EMPTY is changed to rt_ringbuffer_space_len.
2013-08-19 14:12:35 +08:00
Grissiom 38ce3879d8 device/pipe: add rt_pipe_{init,detach}
This provide the possibility that allocate the buffer of the ringbuffer
on a specific region, instead of always mallocing it. It also bring us
the benefit of using pipe device on the systems without heap.
2013-08-19 12:28:59 +08:00
Bernard Xiong a431a25699 Merge pull request #135 from reynoldxu/K60Fxxxx
K60 fxxxx
2013-07-25 03:55:52 -07:00
reynoldxu 10c75c3dc6 remove a var for INT_TX. 2013-07-25 10:18:33 +08:00
reynoldxu 8f0fffc132 fix a bug in rt_hw_uart_init() where u CAN NOT init some feature. 2013-07-24 18:34:07 +08:00
bernard a124e7bd22 add initialization debug code 2013-07-24 07:33:48 +08:00
yiyue.fang 03cf76e7ef reformat the coding style in usbdevice/core/core.c 2013-06-29 10:32:27 +08:00
yiyue.fang 3359419d4f additional update 2013-06-28 00:39:11 +08:00
yiyue.fang 621fbdb90c Embedded GPLv2 license in drivers 2013-06-28 00:36:54 +08:00
Bernard Xiong 98c8a23e94 Add component initialization. 2013-06-23 07:48:42 +08:00
heyuanjie87 02869d7e67 udisk can be eject 2013-06-15 23:02:50 +08:00
Grissiom b02993c989 usbdevice/core: cope with some buggy drivers on USB_MSG_DATA_NOTIFY
Some driver will emit USB_MSG_DATA_NOTIFY before the USB get configured.
Filter out those events.
2013-06-11 11:50:05 +08:00
Grissiom ed19483cb4 usb: add USB_MSG_PLUG_OUT event
When the core received an USB_MSG_PLUG_OUT event, it will stop all the
classes. This make a chance that the classes could get rid off doing
useless stuff while the USB cable is plugged out.
2013-06-06 15:21:40 +08:00
heyuanjie87 376a08d89a return correct length of LangID string to host 2013-05-30 18:26:52 +08:00
weety 624d947e56 use __rt_ffs instead of ffs 2013-05-25 18:57:01 +08:00
qiuyiuestc a33e992724 Merge pull request #95 from grissiom/vcom
usbdevice/core: add reset function to support hotplug
2013-05-25 01:05:00 -07:00
qiuyiuestc 97a507e667 usbdevice/core: add reset function to support hotplug
When the USB got RESET packet from the host and the address is setup,
all the classes will got reset. The reset is done by class stop and than
class run. So the classes should reset their internal state in
class_{run,stop}.

Besides, the USB device driver could post a USB_MSG_RESET message on
every RESET packet.
2013-05-25 15:55:27 +08:00
qiuyiuestc 2e25159a83 Merge pull request #94 from grissiom/vcom
cdc_vcom: reset the vcom state in proper cases
2013-05-25 00:52:05 -07:00
Grissiom 046182be94 cdc_vcom: reset the vcom state in proper cases
Reset the vcom state in class_{run,stop} and when the PC is not
receiving data from me.
2013-05-25 15:25:32 +08:00
heyuanjie87 8aa4eb7924 make Host can halt endpoints 2013-05-23 12:33:22 +08:00
qiuyiuestc e822f87b1a Merge pull request #90 from heyuanjie87/ForPullRequest
For pull request
2013-05-17 06:39:05 -07:00
aozima c77c69c46e fix spelling error. 2013-05-17 20:59:38 +08:00
aozima 9a671a5002 move initial alarm event & mutex in system init. 2013-05-17 20:58:40 +08:00
aozima 36fc5520cb format code by Astyle. 2013-05-17 20:57:05 +08:00
heyuanjie87 8b4aadb4db add usb state 2013-05-17 20:53:05 +08:00
Grissiom b3e38f53b4 usbdevice/core: use static message queue
Although currently the only message send to the queue is struct
udev_msg, in order to keep backward compacity and for extention in the
future, we set the size of message to 32.
2013-05-12 15:43:30 +08:00
Grissiom f0d50a7b36 usbdevice/core: use static thread instead of dynamic thread
It also add two configurations for the USB device even loop thread:

    RT_USBD_THREAD_STACK_SZ to set the stack size, default to 2048
    RT_USBD_THREAD_PRIO     to set the priority, default to 8

You can overwrite the default values in rtconfig.h
2013-05-12 15:43:29 +08:00
Bernard Xiong f1e34eef11 Merge pull request #86 from grissiom/serial-rb-size
serial: use RT_SERIAL_RB_BUFSZ to define the size of ring buffer.
2013-05-11 23:18:18 -07:00
Bernard Xiong 8e9e7f3e7c serial: use RT_SERIAL_RB_BUFSZ to define the size of ring buffer. 2013-05-12 14:03:11 +08:00
Grissiom aa179e4438 cdc_vcom: not to start sending data when the data is already sending
We start the sending transaction in SOF handler. But if the data is
already sending, start an other transaction will cause data lose.
Implement a state machine is cdc_vcom and avoid that.
2013-05-12 13:27:13 +08:00
Grissiom 157af94af9 usbdevice/core: small optimization on the event loop
Sort the switch cases by the frequency of the events.
2013-05-12 13:07:03 +08:00
Grissiom d23ee75d2e cdc_vcom: send data as many as possible
The data filled into dcd_ep_write does not to be limited by
MaxPacketSize.
2013-05-10 17:50:07 +08:00
Grissiom 5de59429fe usbdevice/core: misc cleanup 2013-05-10 17:35:33 +08:00
Grissiom ffb1e62020 cdc_vcom: send a zero-length-packet at the end is transaction 2013-05-10 15:17:59 +08:00
Grissiom 778c4239b1 cdc_vcom: fix the bug that use ringbuffer pool as usb packet buffer
This commit set the buffer for packet to CDC_MaxPacketSize which is a
reasonable value for it. However, maybe we should make
CDC_{RX,TX}_BUFSIZE configurable as well.
2013-05-09 23:18:58 +08:00
Grissiom 952bc0d4ef ringbuffer: format the code to a more symmetric structure 2013-05-08 15:54:30 +08:00