static void _eth_spi_configure() { DBG(D_ETH, D_DEBUG, "ethspi spigen init\n"); SPI_DEV_GEN_init( &_enc28j60_spi_dev, SPIDEV_CONFIG_CPHA_1E | SPIDEV_CONFIG_CPOL_LO | SPIDEV_CONFIG_FBIT_MSB | SPIDEV_CONFIG_SPEED_9M, _SPI_BUS(1), SPI_ETH_GPIO_PORT, SPI_ETH_GPIO_PIN); DBG(D_ETH, D_DEBUG, "ethspi spigen open\n"); SPI_DEV_GEN_open(&_enc28j60_spi_dev); DBG(D_ETH, D_DEBUG, "ethspi enc28j60 init\n"); enc28j60Init(mac_address, EIE_PKTIE | EIE_TXIE | EIE_RXERIE | EIE_TXERIE); DBG(D_ETH, D_DEBUG, "ethspi enc28j60 init done, chip rev %02x\n", enc28j60getrev()); DBG(D_ETH, D_DEBUG, "ethspi mac readback: %02x:%02x:%02x:%02x:%02x:%02x\n", enc28j60Read(MAADR5), enc28j60Read(MAADR4), enc28j60Read(MAADR3), enc28j60Read(MAADR2), enc28j60Read(MAADR1), enc28j60Read(MAADR0) ); SYS_hardsleep_ms(20); enc28j60PhyWrite(PHLCON,0x476); SYS_hardsleep_ms(20); // init eth/ip layer init_ip_arp_udp_tcp(mac_address, ip_address, 80); DBG(D_ETH, D_INFO, "ethspi setup finished, ip %i.%i.%i.%i @ mac %02x.%02x.%02x.%02x.%02x.%02x\n", ip_address[0], ip_address[1], ip_address[2], ip_address[3], mac_address[0], mac_address[1], mac_address[2], mac_address[3], mac_address[4], mac_address[5]); }
static int f_usb_keyboard_test(void) { print("This will generate a lot of keypresses.\n"); print("Please focus some window safe for garbled input.\n"); print("Pressing keys in...\n"); int i; for (i = 7; i > 0; i--) { print(" %i", i); SYS_hardsleep_ms(1000); } print("\n"); enum kb_hid_code code = 0; for (code = 0; code <= 0xbc; code++) { const keymap *km = USB_ARC_get_keymap(code); if (km != NULL && km->keys != NULL) { char hex_num[3]; sprint(hex_num, "%02x", code); usb_kb_type_char(hex_num[0]); usb_kb_type_char(hex_num[1]); usb_kb_type_char(' '); for (i = 0; i < strlen(km->name); i++) { usb_kb_type_char(km->name[i]); } usb_kb_type_char(' '); usb_kb_type(KB_MOD_NONE, code); usb_kb_type_char(' '); usb_kb_type(KB_MOD_NONE, KC_ENTER); } } usb_kb_type_char('O'); usb_kb_type_char('K'); usb_kb_type(KB_MOD_NONE, KC_ENTER); return 0; }