编译xcDeserializer解串板 / xcSerializer串行相机驱动源代码(JetPack6.0 以前版本)

编译环境要求:

Ubuntu18.04 PC(电脑) 安装build-essential
sudo apt-get install build-essential

编译Kernel步骤:

第1步 解压缩源代码文件压缩包

tar xvf jetson_rXX.X.X_xxxxx.tar.gz

第2步 下载编译所必须的文件

cd jetson_rXX.X.X_xxxxx/binaries
./get.sh

第3步 定义板子

  1. 如果板子是 jetson nano b01
    export MY_BOARD=nano_sd
  2. 如果板子是 jetson xavier nx emmc版本
    export MY_BOARD=xavier_nx_emmc
  3. 如果板子是 jetson xavier nx sd卡版本
    export MY_BOARD=xavier_nx_sd
  4. 如果你的板子是 jetxon agx xavier
    export MY_BOARD=agx_xavier
  5. 假如你的板子是 jetson agx orin
    export MY_BOARD=agx_orin

第4步 编译kernel

cd jetson_rXX.X.X_xxxxx/Linux_for_Tegra/source/public/kernel/mybuild
./mybuild_all.sh
./mysign.sh

第5步 烧写Jetson开发板至对应的Jetpack

使用SDK Manager将Jetson烧写至对应版本。https://developer.nvidia.com/sdk-manager
可以使用 sudo apt-cache show nvidia-jetpack 命令查看JetPack版本号
可以使用 cat /etc/nv_tegra_release 命令查看l4t版本号

第6步 在Jetson上安装opencv

(在Jetson上) sudo apt-get update
(在Jetson上) sudo apt-get install nvidia-opencv

第7步 在Jetson上安装deepstream

(在Jetson上) sudo apt-get update
(在Jetson上) sudo apt-get install deepstream-6.x [不同JetPack下子版本号不一样,替换x为实际值]

第8步 替换文件

将jetson_rXX.X.X_xxxxx/Linux_for_Tegra/source/public/kernel/mybuild/bin_copy/下所有文件复制(覆盖)至您板子文件系统根目录。

  1. 将bin_copy文件夹复制至Jetson上。
  2. 覆盖替换文件
    (在Jetson上) sudo cp -rfvp ./bin_copy/* /
    注意:建议做好备份!

第9步 启动Jetson开发板,检测相机。

  1. 将Jetson断电
  2. 将xcDeserializer板子连接在 Jetson开发板。[解串板需要16伏以上电源]
  3. 连接好相机以及各电源电缆。[Jetson Nano 请连接相机在解串板的J100接口]
  4. 上电启动Jetson开发板
  5. 执行 ls /dev/video* 确认相机已经检测到。

第10步 打开相机

请参考链接:串行相机运行说明

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Jetpack Compose 中,`LazyColumn` 可以使用 `remember` 函数来缓存数据以提高性能。如果数据源发生更改,`LazyColumn` 需要能够检测到这些更改并更新 UI。为此,可以使用 `key` 参数来告诉 `LazyColumn` 如何区分不同的数据项。 以下是一个示例,演示如何使用 `LazyColumn` 和 `remember` 函数来显示一个字符串列表,并在列表中添加或删除字符串时更新 UI: ```kotlin @Composable fun LazyColumnDemo() { // 用 remember 关键字缓存数据源,并使用 key 参数来区分不同的数据项 val items = remember { mutableStateListOf("Item 1", "Item 2", "Item 3") } LazyColumn { items(items.size, key = { index -> // 使用 index 和 item 的哈希值来区分不同的数据项 items[index].hashCode() }) { index -> Text(text = items[index]) // 添加一个按钮,用于在列表中添加新项目 Button(onClick = { items.add("New Item") }) { Text("Add Item") } // 添加一个按钮,用于从列表中删除项目 Button(onClick = { items.removeAt(index) }) { Text("Remove Item") } } } } ``` 在这个示例中,我们使用 `remember` 函数来缓存字符串列表。我们还使用 `key` 参数来告诉 `LazyColumn` 如何区分不同的数据项。在 `LazyColumn` 中迭代数据项时,我们可以使用 `index` 来访问每个项目,并使用 `items[index]` 来显示每个项目的文本。 我们还向 UI 添加了两个按钮,一个用于在列表中添加新项目,另一个用于从列表中删除项目。当我们单击这些按钮时,我们更新 `items` 列表,这将触发 `LazyColumn` 重新运行并更新 UI。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值