<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          ARM-Linux模塊編譯與加載

          作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò) 收藏
          在linux下加載一個(gè)簡(jiǎn)單的模塊方法以及步驟:

          運(yùn)行環(huán)境:linux-2.6.12

          本文引用地址:http://www.ex-cimer.com/article/201611/317166.htm

          編譯環(huán)境:arm-linux-gcc(3.4.1)

          運(yùn)行平臺(tái):S3C2440

          1.編寫模塊程序Module.c

          #include

          #include

          #include

          static int hello_init(void)

          {

          printk("Hello, SmallBox! This is the first test module!n");

          return 0;

          }

          static void hello_exit(void)

          {

          printk("Small.BoxBye Bye!n");

          return;

          }

          module_init(hello_init);

          module_exit(hello_exit);

          MODULE_LICENSE("GPL");

          2.編寫Makefile

          obj-m +=Module.o

          KDIR:=/home/smallbox/hyh24x0_2.6.12/

          PWD=$(shell pwd)

          all:

          make -C $(KDIR) M=$(PWD) modules

          clean:

          rm -rf *.o

          注意:"make前面要空一個(gè)"Tab"

          KDIR為內(nèi)核的路徑,這個(gè)內(nèi)核要與S3C2440運(yùn)行的內(nèi)核相同(編譯器也要相同的,要不運(yùn)行不了)。

          /home/smallbox/hyh24x0_2.6.12/是arm-linux下的內(nèi)核

          3.編譯

          在linux下執(zhí)行:make

          /*注釋:/usr/local/arm/3.4.1/bin/arm-linux-gcc為交叉編譯環(huán)境的路徑*/

          生成Module.ko

          4.運(yùn)行

          ①將Module.ko通過(guò)串口或者網(wǎng)口下載到S3C2440的板子上

          ②執(zhí)行:chmod +xModule.ko修改模塊的屬性將其設(shè)為可執(zhí)行文件

          ③執(zhí)行:insmodModule.ko

          Hello, SmallBox! This is the first test module!

          執(zhí)行:rmmodModule.ko

          Small.BoxBye Bye!



          關(guān)鍵詞: ARM-Linux模塊編譯加

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();