ããä¸é¢ä»¥uClinux为ä¾ï¼ä»ç»å¨ä¸ä¸ªä»¥æ¨¡åæ¹å¼åºç°ç驱å¨ç¨åºtest.cåºç¡ä¹ä¸ï¼å°å
¶ç¼è¯è¿å
æ ¸çä¸ç³»åæ¥éª¤ï¼
ããï¼1ï¼ æ¹å¨test.cæºå¸¦ä»£ç
ãã第ä¸æ¥ï¼å°åæ¥çï¼
ãã#include
ãã#include
ããchar kernel_version[]=UTS_RELEASE.
ããæ¹å¨ä¸ºï¼
ãã#ifdef MODULE
ãã#include
ãã#include
ããchar kernel_version[]=UTS_RELEASE.
ãã#else
ãã#define MOD_INC_USE_COUNT
ãã#define MOD_DEC_USE_COUNT
ãã#endif
ãã第äºæ¥ï¼æ°å»ºå½æ°int init_testï¼voidï¼
ããå°è®¾å¤æ³¨ååå¨æ¤å¤ï¼
ããresult=register_chrdev(254,"test",&.test_fops).
ããï¼2ï¼ å°test.cå¤å¶å°/uclinux/linux/drivers/charç®å½ä¸ï¼å¹¶ä¸å¨/uclinux/linux/drivers/charç®å½ä¸mem.cä¸ï¼int chr_dev_initï¼ ï¼å½æ°ä¸å¢å å¦ä¸ä»£ç ï¼
ãã#ifdef CONFIG_TESTDRIVE
ããinit_test().
ãã#endif
ããï¼3ï¼ å¨/uclinux/cinux/drivers/charç®å½ä¸Makefileä¸å¢å å¦ä¸ä»£ç ï¼
ããifeq($(CONFIG_TESTDRIVE),y)
ããL_OBJS =test.o
ããEndif
ããï¼4ï¼ å¨/uclinux/linux/arch/m68knommuç®å½ä¸config.inä¸å符设å¤æ®µéå¢å å¦ä¸ä»£ç ï¼
ããbool support for testdrive CONFIG_TESTDRIVE y
ããï¼5ï¼ è¿è¡make menuconfigï¼å¨menuconfigçå符设å¤é项éä½ å¯ä»¥çè§æ们ååæ·»å çsupport for testdriveé项ï¼å¹¶ä¸å·²ç»è¢«éä¸ï¼ï¼make depï¼make linuxï¼make linux.textï¼make linux.dataï¼cat linux.text linux.data > linux.bin.
ããï¼6ï¼ å¨ /uClinux/romdisk/romdisk/dev/ç®å½ä¸å建设å¤ï¼
ããmknod test c 254 0
ãã并ä¸å¨/uclinux/appsrc/ä¸è¿è¡makeï¼çææ°çRomdisk.s19æ件ã
ããå°è¿éï¼å¨uClinuxä¸å¢å 设å¤é©±å¨ç¨åºçå·¥ä½å¯ä»¥è¯´æ¯å®æäºï¼åªè¦å°æ°çlinux.binä¸Romdisk.s19ç§å
¥ç®æ æ¿ä¸ï¼ä½ å°±å¯ä»¥ä½¿ç¨èªå·±çæ°è®¾å¤testäºã
温馨提示:答案为网友推荐,仅供参考