/* Store a word value to a particular configuration word register eg.
* __CONFIG(4, DEBUGEN & LVPDIS); // write to config word 4
* config mask attributes (such as DEBUGEN) defined in chip-specific
* header file. */
#define __CONFIG(n, x) asm("\tpsect config,class=CONFIG");\ /**\t是制表符,格式需要;psect 是定义class的关键字,意思是将以下的代码放入CONFIG class 中,并命名为config(注意大小写);config为自定义的class名,可以为任何其他名字;CONFIG说明了这个class的起始地址,在连续命令中指定CONFIG的范围delta=2,规定就是这样的。**/
asm("global config_word" ___mkstr(n)); \ /***__mkstr(x)是一个将数字转换为字符的宏,目的是让编译器把一个数字当作是一个字符串来处理,如果不用__mkstr,你需要写成__CONFIG("0x0F")的形式,使用了__mkstr,直接写成__CONFIG(0x0F)的形式就行了,这一切只是为了用户更友好的使用这些宏,没什么特别的意思