【Jetson-nano系统烧录与字符设备驱动实验】

本文介绍了如何在JetsonNano开发板上进行系统烧录,包括下载BSP驱动包、源码包和交叉编译器,以及烧录步骤。随后,作者详细讲解了字符设备驱动的测试过程,包括编译内核、编写驱动程序和应用测试代码,以及验证驱动功能的方法。
摘要由CSDN通过智能技术生成

Jetson-nano系统烧录与字符设备驱动

0 写在前面

刚入手了一块Jetson-nano开发板,准备学习一下CUDA编程。因为之前一直在学习驱动开发,所以刚一入手,还是习惯性的从交叉编译环境搭建,系统移植开始。之前学习驱动开发的时候也一直没有记录总结的习惯,现在也是想凑着这个机会,一方面做个记录,另一方面也是对知识的重新梳理,希望可以开个好头,一直坚持下去

1 系统烧录

链接: 官方资料下载中心.
链接: 开发指南.
链接: BSP开发包下载链接.

  1. 官网下载BSP驱动包和源码包以及交叉编译器

  2. 解压BSP驱动包和文件系统

tar -jxpf Jetson-210_Linux_R32.7.1_aarch64.tbz2
cd rootfs
sudo tar -jxpf ../../Tegra_Linux_Sample-Root-Filesystem_R32.7.1_aarch64.tbz2 
  1. 拷贝NVIDIA的依赖库
cd ..
sudo ./apply_binaries.sh
  1. 烧录
    用跳帽或者杜邦线短接FC REC和GND引脚,位置如下图,位于开发板底板上,进入recovery 模式,用数据线连接Jetson Nano的Micro USB接口到Ubuntu主机

先烧录核心板里的FLASH

sudo ./flash.sh jetson-nano-qspi mmcblk0p1

再烧录外接TF卡

sudo ./flash.sh jetson-nano-qspi-sd mmcblk0p1

烧录完成之后,去掉底板的跳帽,重新上电,启动时由核心板FLASH上系统引导进入外接TF上的系统

2 字符设备驱动测试

磁盘空间保证在30G以上,我分配了50G的空间

  1. 下载依赖包
sudo apt install build-essential bc
  1. 解压内核
tar -xjf public_sources.tbz2
cd Linux_for_Tegra/source/public
tar –xjf kernel_src.tbz2

经过两次解压后,内核源码就在Linux_for_Tegra/source/public/kernel/kernel-4.9目录下
3. 解压交叉编译器

sudo tar -xvf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
  1. 修改环境变量CROSS_COMPILE的值
    这里我们直接修改源码顶层目录下Makefile文件
cd Linux_for_Tegra/source/public/kernel/kernel-4.9
sudo vi Makefile


如图,添加第279行,CROSS_COMPILE设置为交叉编译器的绝对路径
5. 编译内核

# sudo make ARCH=arm64 O=/home/e/jetson/output menuconfig
make ARCH=arm64 O=/home/e/jetson/output tegra_defconfig
make ARCH=arm64 O=/home/e/jetson/output -j8

output目录根据自己情况选择

  1. 编写驱动程序
    驱动代码
/* chrdevbase.c */
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/delay.h>
#include <linux/ide.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/cdev.h>
#include <linux/device.h>


#define CHR_BASE_CNT		1		  	/* 设备号个数 */
#define CHR_BASE_NAME		"chrbase"	/* 名字 */

static char readbuf[</
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值