fix .rodata._ctype_ overlap

Newer toolchain always complains:

arm-none-eabi/bin/ld: section .rodata._ctype_ loaded at
[0000000000007774,0000000000007877] overlaps section .data loaded at
[0000000000007774,000000000000779f]
collect2: error: ld returned 1 exit status
make: *** [main.bin] Error 1

We should reserve .rodata.* section as well.
remove unused function,  split shell function & kernel define
remove unused function,  split shell function & kernel define