- separate hal description template file and hal description
- add gpio hal