Переглянути джерело

Merge branch 'master' of https://github.com/RT-Thread/rt-thread

Bernard Xiong 12 роки тому
батько
коміт
1161e7b3f8
3 змінених файлів з 9 додано та 3 видалено
  1. 1 0
      .travis.yml
  2. 2 2
      README.md
  3. 6 1
      components/drivers/usb/usbdevice/core/core.c

+ 1 - 0
.travis.yml

@@ -5,6 +5,7 @@ notifications:
 
 before_script:
 # travis has changed to 64-bit and we require 32-bit compatibility libraries
+  - sudo apt-get update
   - "sudo apt-get -qq install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386 || true"
   - "[ $RTT_TOOL_CHAIN = 'sourcery-arm' ] && curl -s https://sourcery.mentor.com/public/gnu_toolchain/arm-none-eabi/arm-2012.09-63-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 | sudo tar xjf - -C /opt && export RTT_EXEC_PATH=/opt/arm-2012.09/bin && /opt/arm-2012.09/bin/arm-none-eabi-gcc --version || true"
   - "[ $RTT_TOOL_CHAIN = 'sourcery-mips' ] && curl -s https://sourcery.mentor.com/public/gnu_toolchain/mips-sde-elf/mips-2012.09-98-mips-sde-elf-i686-pc-linux-gnu.tar.bz2 | sudo tar xjf - -C /opt && export RTT_EXEC_PATH=/opt/mips-2012.09/bin && /opt/mips-2012.09/bin/mips-sde-elf-gcc --version || true"

+ 2 - 2
README.md

@@ -1,6 +1,6 @@
-RT-Thread
-=========
+# RT-Thread #
 
 [![Build Status](https://travis-ci.org/RT-Thread/rt-thread.png)](https://travis-ci.org/RT-Thread/rt-thread)
 
 RT-Thread is an open source real-time operating system for embedded devices.
+

+ 6 - 1
components/drivers/usb/usbdevice/core/core.c

@@ -1237,7 +1237,6 @@ rt_err_t rt_usbd_set_altsetting(uintf_t intf, rt_uint8_t value)
 
     /* parameter check */
     RT_ASSERT(intf != RT_NULL);
-    RT_ASSERT(setting != RT_NULL);
 
     /* find an alternate setting */
     setting = rt_usbd_find_altsetting(intf, value);
@@ -1308,6 +1307,12 @@ static void rt_usbd_thread_entry(void* parameter)
                 rt_kprintf("invalid usb device\n");
             break;
         case USB_MSG_DATA_NOTIFY:
+            device = rt_usbd_find_device(msg.dcd);
+            if(device == RT_NULL)
+            {
+                rt_kprintf("invalid usb device\n");
+                break;
+            }
             ep = rt_usbd_find_endpoint(device, &cls, msg.content.ep_msg.ep_addr);
             if(ep != RT_NULL)
                 ep->handler(device, cls, msg.content.ep_msg.size);