Beispiel #1
0
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;
}