int main(void) { HAL_Init(); led_gpio_init(); SystemClock_Config(); mima_init(); usbKB_init(); USBD_Init(&USBD_Device, &HID_Desc, 0); USBD_RegisterClass(&USBD_Device, USBD_HID_CLASS); USBD_CUSTOM_HID_RegisterInterface(&USBD_Device, &USBD_CustomHID_fops); USBD_Start(&USBD_Device); HAL_Delay(1000); USB_KB_type("Hello world", 11); while(1) { HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_7); mima_loop(); } }
static int __init tiny4412_led_char_init(void) { struct resource res; struct cdev *led_cdev = cdev_alloc( ); int ret; dev_t devid; pr_debug("%s\n", __func__); led = kmalloc(sizeof(struct tiny4412_led), GFP_KERNEL); memset(led, 0, sizeof(struct tiny4412_led)); res.start = GPM4_BAS; res.end = GPM4_BAS + GPM4_PUD - 1; led->gpm4_con = ioremap(res.start, resource_size(&res)); led_gpio_init(led); ret = alloc_chrdev_region(&devid, 0, 1, "tiny4412_led"); if (ret) { pr_err("alloc_chrdev_region fail\n"); return -EINVAL; } led->devid = devid; led->led_cdev = led_cdev; led->led_cdev->ops = &tiny4412_led_dev_fops; cdev_add(led->led_cdev, devid, 1); led->dev_class = class_create(THIS_MODULE, "tiny-led-dev"); if (IS_ERR(led->dev_class)) { ret = PTR_ERR(led->dev_class); return ret; } led->dev = device_create(led->dev_class, NULL, devid, NULL, "tiny-4412-%d", 0); led_light(1); return 0; }