Hi Rong
If you find missing support you can fall back on a turn-key solution for HID and K20s in the uTasker project (use the open source version on GitHub if you don't need support).
Kinetis K20:
- http://www.utasker.com/kinetis/FRDM-K20D50M.html
- http://www.utasker.com/kinetis/TWR-K20D50M.html
- http://www.utasker.com/kinetis/TWR-K20D72M.html
- http://www.utasker.com/kinetis/TEENSY_3.1.html
- http://www.utasker.com/kinetis/tinyK20.html
It has HID options for the typical HID classes:
#define USE_USB_HID_MOUSE // human interface device (mouse)
#define USE_USB_HID_KEYBOARD // human interface device (keyboard)
#define USE_USB_HID_RAW // human interface device (raw)
Link to composite device and keyboard testing: http://www.utasker.com/kinetis/USB_Device.html
Projects are included for Keil, IAR, KDS, Codewarrior, MCUXpresso, Green Hills, Rowley Crossworks, CooCox, Atollic, GCC makefile and VisualStudio simulation.
Regards
Mark