From 3accd8fcee87299b51de0abde3c8d9c83368d871 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 7 Jun 2015 01:34:12 +0100 Subject: tidyup --- app/consumer.c | 63 +++++++------ app/keyboard.c | 168 ++++++++++++++++++++--------------- app/keymap.c | 250 ++++++++++++++++++++++++++-------------------------- app/ring.c | 17 ++-- app/stdio.c | 93 +++++++++---------- app/ticker.c | 21 ++--- app/tims_keyboard.c | 22 ++--- app/usart.c | 20 ++--- app/usb.c | 31 ++++--- 9 files changed, 354 insertions(+), 331 deletions(-) (limited to 'app') diff --git a/app/consumer.c b/app/consumer.c index c61c4cc..79d25bb 100644 --- a/app/consumer.c +++ b/app/consumer.c @@ -10,25 +10,25 @@ static const uint8_t consumer_report_descriptor[] = { 0x75, 0x01, /* Report size (1) */ 0x95, 0x10, /* Report count (16) */ - 0x09, 0xb5, /* USAGE (Scan Next Track) */ - 0x09, 0xb6, /* USAGE (Scan Prev Track) */ - 0x09, 0xb7, /* USAGE (Stop) */ - 0x09, 0xcd, /* USAGE (Play/Pause) */ - - 0x09, 0xe2, /* USAGE (Mute) */ - 0x09, 0xe9, /* USAGE (Volume up) */ - 0x09, 0xea, /* USAGE (Volume down) */ - 0x0a, 0x21, 0x02, /* USAGE (www search) */ - - 0x0a, 0x23, 0x02, /* USAGE (www home) */ - 0x0a, 0x24, 0x02, /* USAGE (www back) */ - 0x0a, 0x25, 0x02, /* USAGE (www forward) */ - 0x0a, 0x26, 0x02, /* USAGE (www stop) */ - - 0x0a, 0x27, 0x02, /* USAGE (www refresh) */ - 0x0a, 0x2a, 0x02, /* USAGE (www favourites) */ - 0x0a, 0x8a, 0x01, /* USAGE (Mail) */ - 0x0a, 0x92, 0x01, /* USAGE (Calculator) */ + 0x09, 0xb5, /* USAGE (Scan Next Track) */ + 0x09, 0xb6, /* USAGE (Scan Prev Track) */ + 0x09, 0xb7, /* USAGE (Stop) */ + 0x09, 0xcd, /* USAGE (Play/Pause) */ + + 0x09, 0xe2, /* USAGE (Mute) */ + 0x09, 0xe9, /* USAGE (Volume up) */ + 0x09, 0xea, /* USAGE (Volume down) */ + 0x0a, 0x21, 0x02, /* USAGE (www search) */ + + 0x0a, 0x23, 0x02, /* USAGE (www home) */ + 0x0a, 0x24, 0x02, /* USAGE (www back) */ + 0x0a, 0x25, 0x02, /* USAGE (www forward) */ + 0x0a, 0x26, 0x02, /* USAGE (www stop) */ + + 0x0a, 0x27, 0x02, /* USAGE (www refresh) */ + 0x0a, 0x2a, 0x02, /* USAGE (www favourites) */ + 0x0a, 0x8a, 0x01, /* USAGE (Mail) */ + 0x0a, 0x92, 0x01, /* USAGE (Calculator) */ 0x81, 0x62, /* Input (data, variable, relative, preferreed) */ 0xC0 /* End Collection */ @@ -61,7 +61,7 @@ const struct usb_endpoint_descriptor consumer_endpoint = { .bEndpointAddress = CONSUMER_EP, .bmAttributes = USB_ENDPOINT_ATTR_INTERRUPT, .wMaxPacketSize = 2, - .bInterval = 0x1 //0x20, + .bInterval = 0x1 //0x20, }; const struct usb_interface_descriptor consumer_iface = { @@ -92,33 +92,32 @@ consumer_get_descriptor (uint8_t ** buf, uint16_t * len) } - + static void consumer_send (uint16_t keys) { /*Last byte is the power wakeup stuff that we don't yet support */ uint8_t buf[CONSUMER_EP_TXN_SIZE] = { keys & 0xff, keys >> 8 }; - usbd_ep_write_packet (usbd_dev, CONSUMER_EP, buf, sizeof(buf)); + usbd_ep_write_packet (usbd_dev, CONSUMER_EP, buf, sizeof (buf)); } -void consumer_dispatch(int bit,int updown) +void +consumer_dispatch (int bit, int updown) { -static uint16_t keys; + static uint16_t keys; -if (updown) - keys|=bit; -else - keys &= ~bit; + if (updown) + keys |= bit; + else + keys &= ~bit; #ifdef DEBUG -printf("CNS> %02x %02x\r\n",keys & 0xff, keys >>8 ); + printf ("CNS> %02x %02x\r\n", keys & 0xff, keys >> 8); #endif -consumer_send(keys); + consumer_send (keys); } - - diff --git a/app/keyboard.c b/app/keyboard.c index a20e070..cecbd58 100644 --- a/app/keyboard.c +++ b/app/keyboard.c @@ -30,30 +30,30 @@ static const uint8_t keyboard_report_descriptor[] = { // 0x2A, 0xff, 0x03, /* Usage maximum (1023) */ 0x81, 0x00, /* Input (data, array) */ - 0x05, 0x08, /* Usage page (leds) */ + 0x05, 0x08, /* Usage page (leds) */ 0x75, 0x01, /* Report size (1) */ 0x95, 0x03, /* Report count (3) */ 0x19, 0x01, /* Usage minimum (1) */ 0x29, 0x03, /* Usage maximum (3) */ - 0x91, 0x02, /* Output (data, variable, absolute ) */ + 0x91, 0x02, /* Output (data, variable, absolute ) */ 0x75, 0x05, /* Report size (5) */ 0x95, 0x01, /* Report count (1) */ - 0x91, 0x01, /* Output (constant ) */ - - 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */ - 0x09, 0x80, /* USAGE (System Control) */ - - 0xA1, 0x01, /* COLLECTION (Application) */ - 0x75, 0x02, /* REPORT_SIZE (2) */ - 0x95, 0x01, /* REPORT_COUNT (1) */ - 0x15, 0x01, /* LOGICAL_MIN (1) */ - 0x25, 0x03, /* LOGICAL_MAX (3) */ - 0x09, 0x82, /* USAGE (System Sleep) */ - 0x09, 0x81, /* USAGE (System Power Down) */ - 0x09, 0x83, /* USAGE (System Wake Up) */ - 0x81, 0x60, /* INPUT (Data Ary Abs NPrf Null) */ - 0x75, 0x06, /* REPORT_SIZE (6) */ - 0x81, 0x03, /* INPUT (Cnst Var Abs) */ + 0x91, 0x01, /* Output (constant ) */ + + 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */ + 0x09, 0x80, /* USAGE (System Control) */ + + 0xA1, 0x01, /* COLLECTION (Application) */ + 0x75, 0x02, /* REPORT_SIZE (2) */ + 0x95, 0x01, /* REPORT_COUNT (1) */ + 0x15, 0x01, /* LOGICAL_MIN (1) */ + 0x25, 0x03, /* LOGICAL_MAX (3) */ + 0x09, 0x82, /* USAGE (System Sleep) */ + 0x09, 0x81, /* USAGE (System Power Down) */ + 0x09, 0x83, /* USAGE (System Wake Up) */ + 0x81, 0x60, /* INPUT (Data Ary Abs NPrf Null) */ + 0x75, 0x06, /* REPORT_SIZE (6) */ + 0x81, 0x03, /* INPUT (Cnst Var Abs) */ 0xc0, /* END COLLECTION */ @@ -87,7 +87,7 @@ const struct usb_endpoint_descriptor keyboard_endpoint = { .bEndpointAddress = KEYBOARD_EP, .bmAttributes = USB_ENDPOINT_ATTR_INTERRUPT, .wMaxPacketSize = 9, - .bInterval = 0x1 //0x20, + .bInterval = 0x1 //0x20, }; const struct usb_interface_descriptor keyboard_iface = { @@ -117,26 +117,30 @@ keyboard_get_descriptor (uint8_t ** buf, uint16_t * len) } - + static void -keyboard_send (uint8_t modifiers, uint8_t *key_list) +keyboard_send (uint8_t modifiers, uint8_t * key_list) { /*Last byte is the power wakeup stuff that we don't yet support */ - uint8_t buf[KEYBOARD_EP_TXN_SIZE] = { modifiers, 0, key_list[0], key_list[1], key_list[2], key_list[3], key_list[4], key_list[5] ,0}; + uint8_t buf[KEYBOARD_EP_TXN_SIZE] = + { modifiers, 0, key_list[0], key_list[1], key_list[2], key_list[3], +key_list[4], key_list[5], 0 }; - usbd_ep_write_packet (usbd_dev, KEYBOARD_EP, buf, sizeof(buf)); + usbd_ep_write_packet (usbd_dev, KEYBOARD_EP, buf, sizeof (buf)); } -void keyboard_dispatch(int sc,int updown) +void +keyboard_dispatch (int sc, int updown) { -static uint8_t modifiers; -static uint8_t key_list[KEY_LIST_LEN]; -int i; + static uint8_t modifiers; + static uint8_t key_list[KEY_LIST_LEN]; + int i; /*Windows needs the modifiers spliting out, so we do this as per our * descriptor, others need them in the list so we do that as well */ -switch (sc) { + switch (sc) + { case USB_K_SC_LEFTCTRL: case USB_K_SC_LEFTSHIFT: case USB_K_SC_LEFTALT: @@ -145,70 +149,88 @@ switch (sc) { case USB_K_SC_RIGHTSHIFT: case USB_K_SC_RIGHTALT: case USB_K_SC_RIGHTMETA: - if (updown) - modifiers |= 1 <<(sc-USB_K_SC_LEFTCTRL); - else - modifiers &= ~(1 <<(sc-USB_K_SC_LEFTCTRL)); -} + if (updown) + modifiers |= 1 << (sc - USB_K_SC_LEFTCTRL); + else + modifiers &= ~(1 << (sc - USB_K_SC_LEFTCTRL)); + } /* Some oses are picky and need these not to move about so we make * a list of the down keys */ -if (updown) { -for (i=0;i %02x %02x %02x %02x %02x %02x %02x\r\n",modifiers, key_list[0], key_list[1], key_list[2], key_list[3], key_list[4], key_list[5]); + printf ("KBD> %02x %02x %02x %02x %02x %02x %02x\r\n", modifiers, + key_list[0], key_list[1], key_list[2], key_list[3], key_list[4], + key_list[5]); #endif -keyboard_send(modifiers,key_list); + keyboard_send (modifiers, key_list); } - -int keyboard_control_request(usbd_device * usbd_dev, struct usb_setup_data *req, - uint8_t ** buf, uint16_t * len, - void (**complete) (usbd_device * usbd_dev, - struct usb_setup_data * req)) -{ -uint8_t at_leds=0; - - if (req->bmRequestType != (USB_REQ_TYPE_CLASS|USB_REQ_TYPE_INTERFACE)) return 0; - if (req->bRequest!=USB_REQ_SET_CONFIGURATION) return 0; - if (req->wValue!=0x200) return 0; - if (req->wIndex) return 0; - if (!len) return 0; - if (*len!=1) return 0; - if (!buf || !*buf) return 0; - - if (**buf & USB_LED_CAPS) at_leds|=AT_LED_CAPS; - if (**buf & USB_LED_NUMLOCK) at_leds|=AT_LED_NUMLOCK; - if (**buf & USB_LED_SCROLLLOCK) at_leds|=AT_LED_SCROLLLOCK; +int +keyboard_control_request (usbd_device * usbd_dev, struct usb_setup_data *req, + uint8_t ** buf, uint16_t * len, + void (**complete) (usbd_device * usbd_dev, + struct usb_setup_data * req)) +{ + uint8_t at_leds = 0; + + if (req->bmRequestType != (USB_REQ_TYPE_CLASS | USB_REQ_TYPE_INTERFACE)) + return 0; + if (req->bRequest != USB_REQ_SET_CONFIGURATION) + return 0; + if (req->wValue != 0x200) + return 0; + if (req->wIndex) + return 0; + if (!len) + return 0; + if (*len != 1) + return 0; + if (!buf || !*buf) + return 0; + + + if (**buf & USB_LED_CAPS) + at_leds |= AT_LED_CAPS; + if (**buf & USB_LED_NUMLOCK) + at_leds |= AT_LED_NUMLOCK; + if (**buf & USB_LED_SCROLLLOCK) + at_leds |= AT_LED_SCROLLLOCK; #ifdef DEBUG - printf("LEDS> %x\r\n",at_leds); + printf ("LEDS> %x\r\n", at_leds); #endif atkbd_set_leds (at_leds); - return 1; + return 1; } - - diff --git a/app/keymap.c b/app/keymap.c index f6e529d..515e0f6 100644 --- a/app/keymap.c +++ b/app/keymap.c @@ -1,142 +1,142 @@ #include "project.h" -static int at_to_usb_keyboard[AT_SC_MAX]={ - [ AT_SC_GRAVE ] = USB_K_SC_GRAVE, - [ AT_SC_1 ] = USB_K_SC_1, - [ AT_SC_2 ] = USB_K_SC_2, - [ AT_SC_3 ] = USB_K_SC_3, - [ AT_SC_4 ] = USB_K_SC_4, - [ AT_SC_5 ] = USB_K_SC_5, - [ AT_SC_6 ] = USB_K_SC_6, - [ AT_SC_7 ] = USB_K_SC_7, - [ AT_SC_8 ] = USB_K_SC_8, - [ AT_SC_9 ] = USB_K_SC_9, - [ AT_SC_0 ] = USB_K_SC_0, - [ AT_SC_MINUS ] = USB_K_SC_MINUS, - [ AT_SC_EQUAL ] = USB_K_SC_EQUAL, - [ AT_SC_BACKSPACE ] = USB_K_SC_BACKSPACE, - [ AT_SC_TAB ] = USB_K_SC_TAB, - [ AT_SC_Q ] = USB_K_SC_Q, - [ AT_SC_W ] = USB_K_SC_W, - [ AT_SC_E ] = USB_K_SC_E, - [ AT_SC_R ] = USB_K_SC_R, - [ AT_SC_T ] = USB_K_SC_T, - [ AT_SC_Y ] = USB_K_SC_Y, - [ AT_SC_U ] = USB_K_SC_U, - [ AT_SC_I ] = USB_K_SC_I, - [ AT_SC_O ] = USB_K_SC_O, - [ AT_SC_P ] = USB_K_SC_P, - [ AT_SC_LEFTBRACE ] = USB_K_SC_LEFTBRACE, - [ AT_SC_RIGHTBRACE ] = USB_K_SC_RIGHTBRACE, - [ AT_SC_BACKSLASH ] = USB_K_SC_BACKSLASH, - [ AT_SC_CAPSLOCK ] = USB_K_SC_CAPSLOCK, - [ AT_SC_A ] = USB_K_SC_A, - [ AT_SC_S ] = USB_K_SC_S, - [ AT_SC_D ] = USB_K_SC_D, - [ AT_SC_F ] = USB_K_SC_F, - [ AT_SC_G ] = USB_K_SC_G, - [ AT_SC_H ] = USB_K_SC_H, - [ AT_SC_J ] = USB_K_SC_J, - [ AT_SC_K ] = USB_K_SC_K, - [ AT_SC_L ] = USB_K_SC_L, - [ AT_SC_SEMICOLON ] = USB_K_SC_SEMICOLON, - [ AT_SC_APOSTROPHE ] = USB_K_SC_APOSTROPHE, - [ AT_SC_ENTER ] = USB_K_SC_ENTER, - [ AT_SC_LEFTSHIFT ] = USB_K_SC_LEFTSHIFT, - [ AT_SC_Z ] = USB_K_SC_Z, - [ AT_SC_X ] = USB_K_SC_X, - [ AT_SC_C ] = USB_K_SC_C, - [ AT_SC_V ] = USB_K_SC_V, - [ AT_SC_B ] = USB_K_SC_B, - [ AT_SC_N ] = USB_K_SC_N, - [ AT_SC_M ] = USB_K_SC_M, - [ AT_SC_COMMA ] = USB_K_SC_COMMA, - [ AT_SC_DOT ] = USB_K_SC_DOT, - [ AT_SC_SLASH ] = USB_K_SC_SLASH, - [ AT_SC_RIGHTSHIFT ] = USB_K_SC_RIGHTSHIFT, - [ AT_SC_LEFTCTRL ] = USB_K_SC_LEFTCTRL, - [ AT_SC_LEFTALT ] = USB_K_SC_LEFTALT, - [ AT_SC_SPACE ] = USB_K_SC_SPACE, - [ AT_SC_RIGHTALT ] = USB_K_SC_RIGHTALT, - [ AT_SC_RIGHTCTRL ] = USB_K_SC_RIGHTCTRL, - [ AT_SC_INSERT ] = USB_K_SC_INSERT, - [ AT_SC_DELETE ] = USB_K_SC_DELETE, - [ AT_SC_LEFT ] = USB_K_SC_LEFT, - [ AT_SC_HOME ] = USB_K_SC_HOME, - [ AT_SC_END ] = USB_K_SC_END, - [ AT_SC_UP ] = USB_K_SC_UP, - [ AT_SC_DOWN ] = USB_K_SC_DOWN, - [ AT_SC_PAGEUP ] = USB_K_SC_PAGEUP, - [ AT_SC_PAGEDOWN ] = USB_K_SC_PAGEDOWN, - [ AT_SC_RIGHT ] = USB_K_SC_RIGHT, - [ AT_SC_NUMLOCK ] = USB_K_SC_NUMLOCK, - [ AT_SC_KP7 ] = USB_K_SC_KP7, - [ AT_SC_KP4 ] = USB_K_SC_KP4, - [ AT_SC_KP1 ] = USB_K_SC_KP1, - [ AT_SC_KPSLASH ] = USB_K_SC_KPSLASH, - [ AT_SC_KP8 ] = USB_K_SC_KP8, - [ AT_SC_KP5 ] = USB_K_SC_KP5, - [ AT_SC_KP2 ] = USB_K_SC_KP2, - [ AT_SC_KP0 ] = USB_K_SC_KP0, - [ AT_SC_KPASTERISK ] = USB_K_SC_KPASTERISK, - [ AT_SC_KP9 ] = USB_K_SC_KP9, - [ AT_SC_KP6 ] = USB_K_SC_KP6, - [ AT_SC_KP3 ] = USB_K_SC_KP3, - [ AT_SC_KPDOT ] = USB_K_SC_KPDOT, - [ AT_SC_KPMINUS ] = USB_K_SC_KPMINUS, - [ AT_SC_KPPLUS ] = USB_K_SC_KPPLUS, - [ AT_SC_KPENTER ] = USB_K_SC_KPENTER, - [ AT_SC_ESC ] = USB_K_SC_ESC, - [ AT_SC_F1 ] = USB_K_SC_F1, - [ AT_SC_F2 ] = USB_K_SC_F2, - [ AT_SC_F3 ] = USB_K_SC_F3, - [ AT_SC_F4 ] = USB_K_SC_F4, - [ AT_SC_F5 ] = USB_K_SC_F5, - [ AT_SC_F6 ] = USB_K_SC_F6, - [ AT_SC_F7 ] = USB_K_SC_F7, - [ AT_SC_F8 ] = USB_K_SC_F8, - [ AT_SC_F9 ] = USB_K_SC_F9, - [ AT_SC_F10 ] = USB_K_SC_F10, - [ AT_SC_F11 ] = USB_K_SC_F11, - [ AT_SC_F12 ] = USB_K_SC_F12, - [ AT_SC_SYSRQ ] = USB_K_SC_SYSRQ, - [ AT_SC_SCROLLLOCK ] = USB_K_SC_SCROLLLOCK, - [ AT_SC_PAUSE ] = USB_K_SC_PAUSE, - [ AT_SC_LEFTMETA ] = USB_K_SC_LEFTMETA, - [ AT_SC_RIGHTMETA ] = USB_K_SC_RIGHTMETA, - [ AT_SC_MENU ] = USB_K_SC_MENU, - [ AT_SC_POWER ] = USB_K_SC_POWER, - [ AT_SC_SLEEP ] = USB_K_SC_SLEEP, -// [ AT_SC_WAKEUP ] = USB_K_SC_WAKEUP, +static int at_to_usb_keyboard[AT_SC_MAX] = { + [AT_SC_GRAVE] = USB_K_SC_GRAVE, + [AT_SC_1] = USB_K_SC_1, + [AT_SC_2] = USB_K_SC_2, + [AT_SC_3] = USB_K_SC_3, + [AT_SC_4] = USB_K_SC_4, + [AT_SC_5] = USB_K_SC_5, + [AT_SC_6] = USB_K_SC_6, + [AT_SC_7] = USB_K_SC_7, + [AT_SC_8] = USB_K_SC_8, + [AT_SC_9] = USB_K_SC_9, + [AT_SC_0] = USB_K_SC_0, + [AT_SC_MINUS] = USB_K_SC_MINUS, + [AT_SC_EQUAL] = USB_K_SC_EQUAL, + [AT_SC_BACKSPACE] = USB_K_SC_BACKSPACE, + [AT_SC_TAB] = USB_K_SC_TAB, + [AT_SC_Q] = USB_K_SC_Q, + [AT_SC_W] = USB_K_SC_W, + [AT_SC_E] = USB_K_SC_E, + [AT_SC_R] = USB_K_SC_R, + [AT_SC_T] = USB_K_SC_T, + [AT_SC_Y] = USB_K_SC_Y, + [AT_SC_U] = USB_K_SC_U, + [AT_SC_I] = USB_K_SC_I, + [AT_SC_O] = USB_K_SC_O, + [AT_SC_P] = USB_K_SC_P, + [AT_SC_LEFTBRACE] = USB_K_SC_LEFTBRACE, + [AT_SC_RIGHTBRACE] = USB_K_SC_RIGHTBRACE, + [AT_SC_BACKSLASH] = USB_K_SC_BACKSLASH, + [AT_SC_CAPSLOCK] = USB_K_SC_CAPSLOCK, + [AT_SC_A] = USB_K_SC_A, + [AT_SC_S] = USB_K_SC_S, + [AT_SC_D] = USB_K_SC_D, + [AT_SC_F] = USB_K_SC_F, + [AT_SC_G] = USB_K_SC_G, + [AT_SC_H] = USB_K_SC_H, + [AT_SC_J] = USB_K_SC_J, + [AT_SC_K] = USB_K_SC_K, + [AT_SC_L] = USB_K_SC_L, + [AT_SC_SEMICOLON] = USB_K_SC_SEMICOLON, + [AT_SC_APOSTROPHE] = USB_K_SC_APOSTROPHE, + [AT_SC_ENTER] = USB_K_SC_ENTER, + [AT_SC_LEFTSHIFT] = USB_K_SC_LEFTSHIFT, + [AT_SC_Z] = USB_K_SC_Z, + [AT_SC_X] = USB_K_SC_X, + [AT_SC_C] = USB_K_SC_C, + [AT_SC_V] = USB_K_SC_V, + [AT_SC_B] = USB_K_SC_B, + [AT_SC_N] = USB_K_SC_N, + [AT_SC_M] = USB_K_SC_M, + [AT_SC_COMMA] = USB_K_SC_COMMA, + [AT_SC_DOT] = USB_K_SC_DOT, + [AT_SC_SLASH] = USB_K_SC_SLASH, + [AT_SC_RIGHTSHIFT] = USB_K_SC_RIGHTSHIFT, + [AT_SC_LEFTCTRL] = USB_K_SC_LEFTCTRL, + [AT_SC_LEFTALT] = USB_K_SC_LEFTALT, + [AT_SC_SPACE] = USB_K_SC_SPACE, + [AT_SC_RIGHTALT] = USB_K_SC_RIGHTALT, + [AT_SC_RIGHTCTRL] = USB_K_SC_RIGHTCTRL, + [AT_SC_INSERT] = USB_K_SC_INSERT, + [AT_SC_DELETE] = USB_K_SC_DELETE, + [AT_SC_LEFT] = USB_K_SC_LEFT, + [AT_SC_HOME] = USB_K_SC_HOME, + [AT_SC_END] = USB_K_SC_END, + [AT_SC_UP] = USB_K_SC_UP, + [AT_SC_DOWN] = USB_K_SC_DOWN, + [AT_SC_PAGEUP] = USB_K_SC_PAGEUP, + [AT_SC_PAGEDOWN] = USB_K_SC_PAGEDOWN, + [AT_SC_RIGHT] = USB_K_SC_RIGHT, + [AT_SC_NUMLOCK] = USB_K_SC_NUMLOCK, + [AT_SC_KP7] = USB_K_SC_KP7, + [AT_SC_KP4] = USB_K_SC_KP4, + [AT_SC_KP1] = USB_K_SC_KP1, + [AT_SC_KPSLASH] = USB_K_SC_KPSLASH, + [AT_SC_KP8] = USB_K_SC_KP8, + [AT_SC_KP5] = USB_K_SC_KP5, + [AT_SC_KP2] = USB_K_SC_KP2, + [AT_SC_KP0] = USB_K_SC_KP0, + [AT_SC_KPASTERISK] = USB_K_SC_KPASTERISK, + [AT_SC_KP9] = USB_K_SC_KP9, + [AT_SC_KP6] = USB_K_SC_KP6, + [AT_SC_KP3] = USB_K_SC_KP3, + [AT_SC_KPDOT] = USB_K_SC_KPDOT, + [AT_SC_KPMINUS] = USB_K_SC_KPMINUS, + [AT_SC_KPPLUS] = USB_K_SC_KPPLUS, + [AT_SC_KPENTER] = USB_K_SC_KPENTER, + [AT_SC_ESC] = USB_K_SC_ESC, + [AT_SC_F1] = USB_K_SC_F1, + [AT_SC_F2] = USB_K_SC_F2, + [AT_SC_F3] = USB_K_SC_F3, + [AT_SC_F4] = USB_K_SC_F4, + [AT_SC_F5] = USB_K_SC_F5, + [AT_SC_F6] = USB_K_SC_F6, + [AT_SC_F7] = USB_K_SC_F7, + [AT_SC_F8] = USB_K_SC_F8, + [AT_SC_F9] = USB_K_SC_F9, + [AT_SC_F10] = USB_K_SC_F10, + [AT_SC_F11] = USB_K_SC_F11, + [AT_SC_F12] = USB_K_SC_F12, + [AT_SC_SYSRQ] = USB_K_SC_SYSRQ, + [AT_SC_SCROLLLOCK] = USB_K_SC_SCROLLLOCK, + [AT_SC_PAUSE] = USB_K_SC_PAUSE, + [AT_SC_LEFTMETA] = USB_K_SC_LEFTMETA, + [AT_SC_RIGHTMETA] = USB_K_SC_RIGHTMETA, + [AT_SC_MENU] = USB_K_SC_MENU, + [AT_SC_POWER] = USB_K_SC_POWER, + [AT_SC_SLEEP] = USB_K_SC_SLEEP, +// [ AT_SC_WAKEUP ] = USB_K_SC_WAKEUP, // [ AT_SC_DBE_KATAKANA ] = USB_K_SC_DBE_KATAKANA, // [ AT_SC_DBE_SBCSCHAR ] = USB_K_SC_DBE_SBCSCHAR, -// [ AT_SC_CONVERT ] = USB_K_SC_CONVERT, -// [ AT_SC_NONCONVERT ] = USB_K_SC_NONCONVERT, +// [ AT_SC_CONVERT ] = USB_K_SC_CONVERT, +// [ AT_SC_NONCONVERT ] = USB_K_SC_NONCONVERT, }; -static int at_to_usb_consumer[AT_SC_MAX]={ - [ AT_SC_HOMEPAGE ] = USB_C_BF_HOMEPAGE, - [ AT_SC_MUTE ] = USB_C_BF_MUTE, - [ AT_SC_VOLUMEUP ] = USB_C_BF_VOLUMEUP, - [ AT_SC_VOLUMEDOWN ] = USB_C_BF_VOLUMEDOWN, - [ AT_SC_KEY_PREVIOUSSONG ] = USB_C_BF_PREVIOUSSONG, - [ AT_SC_KEY_PLAYPAUSE ] = USB_C_BF_PLAYPAUSE, - [ AT_SC_KEY_STOPCD ] = USB_C_BF_STOPCD, - [ AT_SC_KEY_NEXTSONG ] = USB_C_BF_NEXTSONG, +static int at_to_usb_consumer[AT_SC_MAX] = { + [AT_SC_HOMEPAGE] = USB_C_BF_HOMEPAGE, + [AT_SC_MUTE] = USB_C_BF_MUTE, + [AT_SC_VOLUMEUP] = USB_C_BF_VOLUMEUP, + [AT_SC_VOLUMEDOWN] = USB_C_BF_VOLUMEDOWN, + [AT_SC_KEY_PREVIOUSSONG] = USB_C_BF_PREVIOUSSONG, + [AT_SC_KEY_PLAYPAUSE] = USB_C_BF_PLAYPAUSE, + [AT_SC_KEY_STOPCD] = USB_C_BF_STOPCD, + [AT_SC_KEY_NEXTSONG] = USB_C_BF_NEXTSONG, }; -void scancode_dispatch(int key,int updown) +void +scancode_dispatch (int key, int updown) { -if (at_to_usb_keyboard[key]) - keyboard_dispatch(at_to_usb_keyboard[key],updown); + if (at_to_usb_keyboard[key]) + keyboard_dispatch (at_to_usb_keyboard[key], updown); -if (at_to_usb_consumer[key]) - consumer_dispatch(at_to_usb_consumer[key],updown); + if (at_to_usb_consumer[key]) + consumer_dispatch (at_to_usb_consumer[key], updown); } - diff --git a/app/ring.c b/app/ring.c index 8f13567..db9401a 100644 --- a/app/ring.c +++ b/app/ring.c @@ -54,13 +54,16 @@ ring_write (volatile ring_t * r, uint8_t * buf, size_t len, int blocking) { while (len--) { - if (blocking) { - while (ring_write_byte (r, *buf)); - buf++; - } else { - if (ring_write_byte (r, *(buf++))) - return -EAGAIN; - } + if (blocking) + { + while (ring_write_byte (r, *buf)); + buf++; + } + else + { + if (ring_write_byte (r, *(buf++))) + return -EAGAIN; + } } return 0; diff --git a/app/stdio.c b/app/stdio.c index b3fee4f..29c00a1 100644 --- a/app/stdio.c +++ b/app/stdio.c @@ -1,83 +1,76 @@ #include "project.h" int -_open (const char *name, - int flags, - int mode) +_open (const char *name, int flags, int mode) { errno = ENOSYS; return -1; /* Always fails */ - -} /* _open () */ - + +} /* _open () */ + int -_close (int file) +_close (int file) { errno = EBADF; return -1; /* Always fails */ - -} /* _close () */ - + +} /* _close () */ + int -_write (int file, - char *buf, - int nbytes) +_write (int file, char *buf, int nbytes) { int ret; - ret=usart1_write(buf,nbytes, 1); - - if (ret<0) { - errno=-ret; - return -1; - } + ret = usart1_write (buf, nbytes, 1); + + if (ret < 0) + { + errno = -ret; + return -1; + } return ret; -} /* _write () */ - - +} /* _write () */ + + int -_read (int file, - char *buf, - int nbytes) +_read (int file, char *buf, int nbytes) { - - errno=-EAGAIN; - return -1; /* EOF */ - -} /* _read () */ - + + errno = -EAGAIN; + return -1; /* EOF */ + +} /* _read () */ + #if 0 int -_fstat (int file, - struct stat *st) +_fstat (int file, struct stat *st) { st->st_mode = S_IFCHR; - return 0; - -} /* _fstat () */ + return 0; + +} /* _fstat () */ #endif - + int -_lseek (int file, - int offset, - int whence) +_lseek (int file, int offset, int whence) { - return 0; - -} /* _lseek () */ - + return 0; + +} /* _lseek () */ + int -isatty (int file) +isatty (int file) { - return 1; - -} /* _isatty () */ + return 1; + +} /* _isatty () */ -void stdio_drain(void) +void +stdio_drain (void) { -usart1_drain(); + usart1_drain (); } diff --git a/app/ticker.c b/app/ticker.c index 0f7d856..37884a6 100644 --- a/app/ticker.c +++ b/app/ticker.c @@ -3,7 +3,7 @@ static volatile uint32_t delay_ms_count; volatile uint32_t ticks; -static uint32_t scale=10; +static uint32_t scale = 10; void delay_us (uint32_t d) @@ -33,20 +33,23 @@ delay_ms (uint32_t d) while (delay_ms_count); } -int timed_out(uint32_t then,unsigned int ms) +int +timed_out (uint32_t then, unsigned int ms) { -then=ticks-then; + then = ticks - then; -if (then>ms) return 1; -return 0; + if (then > ms) + return 1; + return 0; } -void ticker_init(void) +void +ticker_init (void) { - uint32_t v,w; + uint32_t v, w; - /*Start periodic timer*/ + /*Start periodic timer */ systick_set_clocksource (STK_CSR_CLKSOURCE_AHB_DIV8); /* 48MHz / 8 = > 6Mhz */ @@ -72,5 +75,3 @@ void ticker_init(void) } - - diff --git a/app/tims_keyboard.c b/app/tims_keyboard.c index 1b69d7b..c3c947b 100644 --- a/app/tims_keyboard.c +++ b/app/tims_keyboard.c @@ -9,32 +9,32 @@ main (void) // rcc_clock_setup_in_hsi_out_48mhz (); //nvic_set_priority_grouping(NVIC_PriorityGroup_4); - /*set up pll*/ - rcc_clock_setup_in_hse_8mhz_out_72mhz(); + /*set up pll */ + rcc_clock_setup_in_hse_8mhz_out_72mhz (); - /*turn on clocks to periferals*/ + /*turn on clocks to periferals */ rcc_periph_clock_enable (RCC_GPIOA); rcc_periph_clock_enable (RCC_GPIOB); rcc_periph_clock_enable (RCC_GPIOC); rcc_periph_clock_enable (RCC_AFIO); rcc_periph_clock_enable (RCC_USART1); rcc_periph_clock_enable (RCC_USART1); - dwt_enable_cycle_counter(); + dwt_enable_cycle_counter (); /*Change interrupt priorities so that USART trumps Timer trumps ATKBD */ - nvic_set_priority(NVIC_USART1_IRQ, 0x40); - nvic_set_priority(NVIC_SYSTICK_IRQ, 0x80); - nvic_set_priority(NVIC_EXTI0_IRQ, 0xc0); + nvic_set_priority (NVIC_USART1_IRQ, 0x40); + nvic_set_priority (NVIC_SYSTICK_IRQ, 0x80); + nvic_set_priority (NVIC_EXTI0_IRQ, 0xc0); - usart_init(); + usart_init (); - ticker_init(); + ticker_init (); #ifdef DEBUG - printf("Hello world!\r\n"); + printf ("Hello world!\r\n"); #endif - atkbd_init(); + atkbd_init (); usb_init (); diff --git a/app/usart.c b/app/usart.c index 74e5383..1a97105 100644 --- a/app/usart.c +++ b/app/usart.c @@ -27,7 +27,7 @@ usart1_isr (void) ((USART_SR (USART1) & USART_SR_RXNE) != 0)) { data = usart_recv (USART1); - ring_write_byte(&rx1_ring,data); + ring_write_byte (&rx1_ring, data); } /* Check if we were called because of TXE. */ @@ -37,8 +37,8 @@ usart1_isr (void) if (ring_read_byte (&tx1_ring, &data)) { - /*No more data, Disable the TXE interrupt, it's no longer needed. */ - usart_disable_tx_interrupt(USART1); + /*No more data, Disable the TXE interrupt, it's no longer needed. */ + usart_disable_tx_interrupt (USART1); } else { @@ -53,7 +53,7 @@ void usart1_queue (uint8_t d) { ring_write_byte (&tx1_ring, d); - usart_enable_tx_interrupt(USART1); + usart_enable_tx_interrupt (USART1); } void @@ -64,13 +64,13 @@ usart1_drain (void) int -usart1_write (char *ptr, int len,int blocking) +usart1_write (char *ptr, int len, int blocking) { int ret; - ret = ring_write (&tx1_ring, (uint8_t *) ptr, len,blocking); - usart_enable_tx_interrupt(USART1); - return ret; + ret = ring_write (&tx1_ring, (uint8_t *) ptr, len, blocking); + usart_enable_tx_interrupt (USART1); + return ret; } @@ -83,8 +83,8 @@ usart_init (void) nvic_enable_irq (NVIC_USART1_IRQ); - MAP_AF(USART1_TX); - MAP_AF_PU(USART1_RX); + MAP_AF (USART1_TX); + MAP_AF_PU (USART1_RX); usart_set_baudrate (USART1, 38400); diff --git a/app/usb.c b/app/usb.c index 8dd38c6..767ad69 100644 --- a/app/usb.c +++ b/app/usb.c @@ -25,7 +25,7 @@ const struct usb_interface ifaces[] = { { .num_altsetting = 1, .altsetting = &consumer_iface, - }, + }, { .num_altsetting = 1, .altsetting = &dfu_iface, @@ -62,14 +62,16 @@ usbd_device *usbd_dev; static int usb_control_class_request (usbd_device * usbd_dev, struct usb_setup_data *req, - uint8_t ** buf, uint16_t * len, - void (**complete) (usbd_device * usbd_dev, - struct usb_setup_data * req)) + uint8_t ** buf, uint16_t * len, + void (**complete) (usbd_device * usbd_dev, + struct usb_setup_data * req)) { - if (keyboard_control_request(usbd_dev,req,buf,len,complete)) return 1; - if (dfu_control_request(usbd_dev,req,buf,len,complete)) return 1; + if (keyboard_control_request (usbd_dev, req, buf, len, complete)) + return 1; + if (dfu_control_request (usbd_dev, req, buf, len, complete)) + return 1; -return 0; + return 0; } static int @@ -90,9 +92,9 @@ usb_control_request (usbd_device * usbd_dev, struct usb_setup_data *req, consumer_get_descriptor (buf, len); return 1; } - - *len = 0; - return 0; + + *len = 0; + return 0; *len = 0; @@ -106,11 +108,14 @@ usb_set_config (usbd_device * usbd_dev, uint16_t wValue) (void) wValue; (void) usbd_dev; - usbd_ep_setup (usbd_dev, KEYBOARD_EP, USB_ENDPOINT_ATTR_INTERRUPT, KEYBOARD_EP_TXN_SIZE, NULL); - usbd_ep_setup (usbd_dev, CONSUMER_EP, USB_ENDPOINT_ATTR_INTERRUPT, CONSUMER_EP_TXN_SIZE, NULL); + usbd_ep_setup (usbd_dev, KEYBOARD_EP, USB_ENDPOINT_ATTR_INTERRUPT, + KEYBOARD_EP_TXN_SIZE, NULL); + usbd_ep_setup (usbd_dev, CONSUMER_EP, USB_ENDPOINT_ATTR_INTERRUPT, + CONSUMER_EP_TXN_SIZE, NULL); usbd_register_control_callback (usbd_dev, - USB_REQ_TYPE_STANDARD | USB_REQ_TYPE_INTERFACE, + USB_REQ_TYPE_STANDARD | + USB_REQ_TYPE_INTERFACE, USB_REQ_TYPE_TYPE | USB_REQ_TYPE_RECIPIENT, usb_control_request); -- cgit v1.2.3