I changed one line of code in the file with path name: USBDeviceHT/targets/TARGET_Maxim

Fork of USBDeviceHT by Helmut Tschemernjak

Committer:
dev_alexander
Date:
Fri Jun 01 21:43:55 2018 +0000
Revision:
6:c1f162fd7777
Parent:
3:bddd92cd3a17
Child:
5:fb690c44c0b1
Fixed Error with code not compiling due to an issue with there not being a (uint32_t) cast of a (void) pointer. Maxim was the only mbed vendor to not have this one (uint32_t) cast in the spot it was added to. Look into public repos for similar cases.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Helmut Tschemernjak 3:bddd92cd3a17 1 /*
Helmut Tschemernjak 3:bddd92cd3a17 2 * $Id: bulkserial.h,v 1.3 2018/02/23 15:04:29 grimrath Exp $
Helmut Tschemernjak 3:bddd92cd3a17 3 * This is an unpublished work copyright (c) 2018 HELIOS Software GmbH
Helmut Tschemernjak 3:bddd92cd3a17 4 * 30827 Garbsen, Germany
Helmut Tschemernjak 3:bddd92cd3a17 5 */
Helmut Tschemernjak 3:bddd92cd3a17 6 #ifndef __USBSERIALBUFFERED_H__
Helmut Tschemernjak 3:bddd92cd3a17 7 #define __USBSERIALBUFFERED_H__
Helmut Tschemernjak 3:bddd92cd3a17 8
Helmut Tschemernjak 3:bddd92cd3a17 9 #include "USBSerial.h"
Helmut Tschemernjak 3:bddd92cd3a17 10
Helmut Tschemernjak 3:bddd92cd3a17 11 /** This class is a wrapper around @ref USBSerial such that sending
Helmut Tschemernjak 3:bddd92cd3a17 12 * of serial data over USB is supported in (and outside) of interrupt context.
Helmut Tschemernjak 3:bddd92cd3a17 13 * In addition it buffers characters (similiar to the I/O buffering of stdio)
Helmut Tschemernjak 3:bddd92cd3a17 14 * before starting a USB data transmit. Silently discards data if the
Helmut Tschemernjak 3:bddd92cd3a17 15 * @ref USBSerial object is not connected to the USB host.
Helmut Tschemernjak 3:bddd92cd3a17 16 */
Helmut Tschemernjak 3:bddd92cd3a17 17 class USBSerialBuffered : public USBSerial {
Helmut Tschemernjak 3:bddd92cd3a17 18 public:
Helmut Tschemernjak 3:bddd92cd3a17 19 USBSerialBuffered(int MaxBuffSize = 128, uint16_t vendor_id = 0x1f00, uint16_t product_id = 0x2012, uint16_t product_release = 0x0001, bool connect_blocking = true);
Helmut Tschemernjak 3:bddd92cd3a17 20 ~USBSerialBuffered();
Helmut Tschemernjak 3:bddd92cd3a17 21
Helmut Tschemernjak 3:bddd92cd3a17 22 /** sends internally queued but not yet sent data. Is blocking. Must not
Helmut Tschemernjak 3:bddd92cd3a17 23 * be called from interrupt context. */
Helmut Tschemernjak 3:bddd92cd3a17 24 void flush();
Helmut Tschemernjak 3:bddd92cd3a17 25
Helmut Tschemernjak 3:bddd92cd3a17 26 /** Writes a formatted string into an internal buffer for later sending.
Helmut Tschemernjak 3:bddd92cd3a17 27 * with e.g. @ref flush . Explicitly designed to be called from interrupt
Helmut Tschemernjak 3:bddd92cd3a17 28 * context. If the string does not fit into the internal buffer it is
Helmut Tschemernjak 3:bddd92cd3a17 29 * silently truncated. */
Helmut Tschemernjak 3:bddd92cd3a17 30 int printf_irqsafe(const char *fmt, ...) __attribute__((format(printf,2,3)));
Helmut Tschemernjak 3:bddd92cd3a17 31
Helmut Tschemernjak 3:bddd92cd3a17 32 /** the varargs variant of printf_ */
Helmut Tschemernjak 3:bddd92cd3a17 33 int vprintf_irqsafe(const char *fmt, std::va_list ap);
Helmut Tschemernjak 3:bddd92cd3a17 34
Helmut Tschemernjak 3:bddd92cd3a17 35 protected:
Helmut Tschemernjak 3:bddd92cd3a17 36 /** Called from @ref Stream::printf and other stdio-like methods from the base class @ref Stream . */
Helmut Tschemernjak 3:bddd92cd3a17 37 virtual int _putc(int c);
Helmut Tschemernjak 3:bddd92cd3a17 38
Helmut Tschemernjak 3:bddd92cd3a17 39 private:
Helmut Tschemernjak 3:bddd92cd3a17 40 enum {
Helmut Tschemernjak 3:bddd92cd3a17 41 CorkBuffSize = MAX_PACKET_SIZE_EPBULK,
Helmut Tschemernjak 3:bddd92cd3a17 42 };
Helmut Tschemernjak 3:bddd92cd3a17 43
Helmut Tschemernjak 3:bddd92cd3a17 44 static inline bool RunningInInterrupt() {
Helmut Tschemernjak 3:bddd92cd3a17 45 return SCB->ICSR & SCB_ICSR_VECTACTIVE_Msk;
Helmut Tschemernjak 3:bddd92cd3a17 46 }
Helmut Tschemernjak 3:bddd92cd3a17 47
Helmut Tschemernjak 3:bddd92cd3a17 48 int irqbuff_acquire();
Helmut Tschemernjak 3:bddd92cd3a17 49 void irqbuff_release(int buffused);
Helmut Tschemernjak 3:bddd92cd3a17 50
Helmut Tschemernjak 3:bddd92cd3a17 51 void putc_normal(int c);
Helmut Tschemernjak 3:bddd92cd3a17 52
Helmut Tschemernjak 3:bddd92cd3a17 53 private:
Helmut Tschemernjak 3:bddd92cd3a17 54 int mFullBuffSize;
Helmut Tschemernjak 3:bddd92cd3a17 55 char *m_buff;
Helmut Tschemernjak 3:bddd92cd3a17 56 int m_irq_buffused;
Helmut Tschemernjak 3:bddd92cd3a17 57 };
Helmut Tschemernjak 3:bddd92cd3a17 58
Helmut Tschemernjak 3:bddd92cd3a17 59 #endif // __USBSERIALBUFFERED_H__