您的位置:首页 > 科技 > 能源 > 搜索引擎大全_广州门户网站开发_近日发生的重大新闻_如何快速推广

搜索引擎大全_广州门户网站开发_近日发生的重大新闻_如何快速推广

2025/3/24 20:12:05 来源:https://blog.csdn.net/2302_81678505/article/details/145259791  浏览:    关键词:搜索引擎大全_广州门户网站开发_近日发生的重大新闻_如何快速推广
搜索引擎大全_广州门户网站开发_近日发生的重大新闻_如何快速推广

01 开发板的第 1 APP 实验


gcc -o hello hello.c
./hello
Hello, world!
./hello weidongshan
Hello, weidongshan!要想给 ARM 板编译出 hello 程序,需要使用交叉编译工具链
arm-buildroot-linux-gnueabihf-gcc -o hello hello.c
这样编译出来的 hello 程序才可以在 ARM 板子上运行

02 开发板的第 1 个驱动实验

编译内核

cd /home/book/100ask_imx6ull-sdk/Linux-4.9.88
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make mrproper
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make 100ask_imx6ull_defconfig
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make zImage -j4
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make dtbs
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ cp arch/arm/boot/zImage ~/nfs_rootfs
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ cp arch/arm/boot/dts/100ask_imx6ull-14x14.dtb ~/nfs_rootfs编译内核模块:
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make modules把模块安装在 nfs 目录“/home/book/nfs_rootfs/”下:
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make ARCH=arm INSTALL_MOD_PATH=/home/book/nfs_rootfs modules_install安装内核和模块到开发板上:
[root@imx6ull:~]# cp /mnt/zImage /boot
[root@imx6ull:~]# cp /mnt/100ask_imx6ull-14x14.dtb /boot
[root@imx6ull:~]# cp /mnt/lib/modules /lib -rfd
[root@imx6ull:~]# sync
[root@imx6ull:~]# reboot
[root@imx6ull:~]# uname -a
Linux imx6ull 4.9.88 #1 SMP PREEMPT Sun Jan 19 23:26:58 EST 2025 armv7l GNU/Linux

编译第一个hello驱动程序

对Ubuntu:

book@100ask:~$ cd nfs_rootfs/
book@100ask:~/nfs_rootfs$ ls
01_hello_drv  100ask_imx6ull-14x14.dtb  drivers_projects  lib  zImage
book@100ask:~/nfs_rootfs$ cd  01_hello_drv/
book@100ask:~/nfs_rootfs/01_hello_drv$ cd ~/100ask_imx6ull-sdk/Linux-4.9.88
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ pwd/home/book/100ask_imx6ull-sdk/Linux-4.9.88book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ cd -
/home/book/nfs_rootfs/01_hello_drv
book@100ask:~/nfs_rootfs/01_hello_drv$ vi Makefile
book@100ask:~/nfs_rootfs/01_hello_drv$ make all

对开发板:

 

同理驱动led程序:

对Ubuntu:

book@100ask:~/nfs_rootfs/drivers_projects$ ls
01_hello  01_hello_drv  02_led_drv
book@100ask:~/nfs_rootfs/drivers_projects$ cd 02_led_drv/
book@100ask:~/nfs_rootfs/drivers_projects/02_led_drv$ vi Makefile
book@100ask:~/nfs_rootfs/drivers_projects/02_led_drv$ ls
00_led_drv_simple             04_led_drv_template_bus_dev_drv
01_led_drv_template           04_led_drv_template_bus_dev_drv_unfinished
02_led_drv_for_boards         05_led_drv_template_device_tree
03_led_drv_template_seperatebook@100ask:~/nfs_rootfs/drivers_projects/02_led_drv$ ls
00_led_drv_simple             04_led_drv_template_bus_dev_drv
01_led_drv_template           04_led_drv_template_bus_dev_drv_unfinished
02_led_drv_for_boards         05_led_drv_template_device_tree
03_led_drv_template_seperate
book@100ask:~/nfs_rootfs/drivers_projects/02_led_drv$ cd 02_led_drv_for_boards/
book@100ask:~/nfs_rootfs/drivers_projects/02_led_drv/02_led_drv_for_boards$ ls
100ask_imx6ull-qemu_src_bin  board_atk_imx6ull-alpha.c  led_opr.h
100ask_imx6ull_src_bin       board_demo.c               ledtest.c
100ask_stm32mp157_src_bin    board_fire_imx6ull-pro.c   Makefile
am335x_src_bin               board_rk3288.c             rk3288_src_bin
atk_imx6ull-alpha_src_bin    board_rk3399.c             rk3399_src_bin
board_100ask_imx6ull-qemu.c  fire_imx6ull-pro_src_bin
board_am335x.c               leddrv.c
book@100ask:~/nfs_rootfs/drivers_projects/02_led_drv/02_led_drv_for_boards$ vi M                   akefilebook@100ask:~/nfs_rootfs/drivers_projects/02_led_drv/02_led_drv_for_boards$ make all
make -C /home/book/100ask_imx6ull-sdk/Linux-4.9.88 M=`pwd` modules
make[1]: Entering directory '/home/book/100ask_imx6ull-sdk/Linux-4.9.88'Building modules, stage 2.MODPOST 1 modules
make[1]: Leaving directory '/home/book/100ask_imx6ull-sdk/Linux-4.9.88'
arm-buildroot-linux-gnueabihf-gcc -o ledtest ledtest.c
book@100ask:~/nfs_rootfs/drivers_projects/02_led_drv/02_led_drv_for_boards$ ls
100ask_imx6ull-qemu_src_bin  am335x_src_bin               board_fire_imx6ull-pro.c  ledtest
100ask_imx6ull_src_bin       atk_imx6ull-alpha_src_bin    board_rk3288.c            ledtest.c
100ask_led.ko                board_100ask_imx6ull-qemu.c  board_rk3399.c            Makefile
100ask_led.mod.c             board_100ask_imx6ull-qemu.o  fire_imx6ull-pro_src_bin  modules.order
100ask_led.mod.o             board_am335x.c               leddrv.c                  Module.symvers
100ask_led.o                 board_atk_imx6ull-alpha.c    leddrv.o                  rk3288_src_bin
100ask_stm32mp157_src_bin    board_demo.c                 led_opr.h                 rk3399_src_bin
book@100ask:~/nfs_rootfs/drivers_projects/02_led_drv/02_led_drv_for_boards$ cp 100ask_led.ko ledtest ~/nfs_rootfs

对开发板:

fs /mntmx6ull:~]# mount -t nfs -o nolock,vers=3 192.168.5.11:/home/book/nfs_rootf
[root@imx6ull:~]# cp /mnt/100ask_led.ko ./
[root@imx6ull:~]# cp /mnt/ledtest ./
[root@imx6ull:~]# echo none > /sys/class/leds/cpu/trigger
-bash: /sys/class/leds/cpu/trigger: No such file or directory报错不影响
[root@imx6ull:~]# insmod 100ask_led.ko
[ 3702.921183] 100ask_led: loading out-of-tree module taints kernel.提示内核污染不影响
[root@imx6ull:~]# lsmod查看是否安装成功
Module                  Size  Used by
100ask_led              3995  0
inv_mpu6050_spi         2320  0
inv_mpu6050            11894  2 inv_mpu6050_spi
evbug                   2282  0
[root@imx6ull:~]# chmod +x ./ledtest
[root@imx6ull:~]# ./ledtest
Usage: ./ledtest <dev> <on | off>
[root@imx6ull:~]# ./ledtest /dev/100ask_led0 on
[root@imx6ull:~]# ./ledtest /dev/100ask_led0 off

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com