十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

匠芯创soc sdk编译

匠芯创soc sdk编译 二、编译1、Luban1.1、编译构建makelist# 1. 选择板卡maked211_demo128_nand_defconfig# 2. 修改配置makemenuconfig# 3. 保存配置makesavedefconfig# 4. 编译makeall# 5. 修改 Kernel 后makelinux-rebuild# 6. 修改 U-Boot 后makeuboot-rebuild# 7. 需要完全重编译时makecleanmakeall或者OneStep快捷命令source tools/onestep.sh -- 一步直达命令 lunch d211_demo128_nand_defconfig -- 选择 d211_demo128_nand_defconfig m -- 编译打包1.2、常用命令1、配置# 查看所有支持的板级配置defconfigmakelist# 应用指定板卡配置makeboard_defconfig# 图形化配置界面类似 Linux menuconfigmakemenuconfig# 保存当前配置到 defconfigmakesavedefconfig2、编译# 编译整个工程Toolchain、Package、RootFS、Imagemakeall3、查看工程信息# 查看当前工程配置和编译信息makeinfo# 查看所有可编译 Packagemakeshow-targets4、Kernel# 编译 Linux Kernelmakelinux# 强制重新编译 Linux Kernelmakelinux-rebuild适用场景修改驱动修改DTS修改Kernel配置修改内核源码5、U-Boot# 编译 U-Bootmakeuboot# 强制重新编译 U-Bootmakeuboot-rebuild适用场景修改启动流程修改DDR初始化修改环境变量修改启动Logo6、RootFS# 生成 UBI 镜像makerootfs-ubi# 生成 UBIFS 文件系统makerootfs-ubifs常见输出output/images/rootfs.ubi output/images/rootfs.ubifs7、板卡管理# 创建新的板级配置makeadd_board# 删除板级配置makedel_board适用场景新项目立项新 LCD 屏新 DDR 配置新 Flash 型号8、清理# 清理编译结果makeclean# 恢复到初始状态makedistclean区别命令作用make clean删除编译输出保留配置make distclean删除编译输出和配置(.config)2、Luban lite2.1、编译构建OneStep快捷命令例如sourcetools/onestep.sh scons --list-def lunchrt-thread_defconfig_name# 选择 RT-Thread 应用工程me# 进入 RT-Thread / OS menuconfigbm# 进入对应 BootLoader menuconfigmb# 编译 BootLoader RT-Thread 打包镜像直接写配置名(不建议)sourcetools/onestep.sh scons --list-def# 1. 先编译匹配的 bootloaderscons --apply-def27scons# 2. 再编译 RT-Thread 应用和最终镜像scons --apply-def28scons2.2、scons命令1、项目配置与模块管理主要用于项目的初始化、板级配置切换以及功能组件的增删。命令参数详细说明典型使用场景--menuconfig打开可视化菜单配置界面 (基于Kconfig)需要图形化开启/关闭某个软件包或驱动时--apply-defNAME应用指定的板级默认配置文件 (defconfig)切换到某款开发板的出厂默认配置时--save-def将当前的配置保存为板级默认配置文件调好了一套配置想存下来以后直接用时--list-def列出当前支持的所有板级配置文件查看 SDK 到底支持哪些开发板型号--add-board添加一块全新的开发板配置移植系统到一块全新的硬件板卡时--pkgs-update在线更新项目依赖的软件包同步远程仓库最新的第三方库代码时--list-module列出当前工程中所有已开启的模块信息检查哪些驱动或组件被编译进了固件里2、构建、清理与工具链涉及代码的实际编译过程、环境清理以及底层工具的管理。命令参数详细说明典型使用场景--buildlibCOMPONENT单独构建指定组件的静态/动态库只修改了某个底层库不想全量重新编译时--cleanlib清理通过--buildlib生成的库文件配合上一条删除之前单独编译的库--distclean深度清理含工具链缓存和输出目录遇到莫名其妙的编译报错想彻底重来时--trim-toolchain裁剪工具链仅保留SDK需要的架构文件磁盘空间不足或者打包SDK给别人时--verbose打印构建过程中的详细日志信息编译失败需要看具体的编译器报错指令时--aicupg调用升级命令 (upgcmd) 烧录镜像编译完成后一键将固件烧录到设备中3、IDE工程与仿真调试用于生成第三方编辑器所需的工程文件以及在模拟器上运行程序。命令参数详细说明典型使用场景--targetTARGET生成指定的IDE工程文件 (如eclipse)习惯用Eclipse等图形界面写代码而非命令行时--run-qemu使用QEMU模拟器运行目标程序手边没有实体硬件板想先在电脑上跑通逻辑4、信息查询与配置转换用于查看项目的内存、大小等状态以及处理底层的配置文件格式。命令参数详细说明典型使用场景--info显示当前工程的综合概要信息快速了解当前编译的目标架构、版本等基础信息--list-mem列出所有的内存布局方案排查内存溢出或查看Flash/RAM分配情况时--list-size列出所有目标文件(.obj)的大小分析固件体积找出是哪个文件占用了大量空间--list-noboot列出不带Bootloader的板级配置寻找纯应用程序的配置模板时--apply-nobootNAME应用不带Bootloader的板级配置只需要编译应用层不需要编译引导程序时--genconfig从rtconfig.h反向生成.config文件只有头文件配置想恢复出菜单配置的状态时--useconfigFILE从指定的配置文件生成rtconfig.h导入别人的.config文件来更新本地的头文件配置3、修改输出镜像名称修改文件target/d21x/myboard-demo88nor/pack/image_cfg.json//修改后image:{info:{// Header information about imageplatform:d21x,product:demo88_nor,version:1.0.0,media:{type:spi-nor,device_id:0,}},//修改后image:{info:{// Header information about imageplatform:myproject,product:88nor,version:0.0.1,media:{type:spi-nor,device_id:0,}},3、debug默认的调试串口配置信息BaudRate115200 Data bits8 Stop bits1 ParityNone Flow controlNone4、烧录1、usb烧录进入烧写模式有如下几种方式终端设备为空片则上电直接进入USB烧写模式按住“烧录键”启动上电或者按“重启键”可直接进入烧录模式终端设备非空片进入串口终端执行命令aicupg系统直接重启进入烧写模式2、sd烧录拷贝在编译输出目录 (images) 下的两个文件到 SD 卡 FAT32 文件系统的根目录bootcfg.txtNAND输出的名字有些不同例如bootcfg.txt(page_2k_block_128k)xxx.img例如aic1602_demo_v1.0.0.img修改并确保bootcfg文件的名字为bootcfg.txt如果生成的名字为bootcfg.txt(page_2k_block_128k)则需要改为bootcfg.txt将SD卡插入板子重新上电即可从SD卡启动到U-Boot并执行烧录。烧录完成时需要拔出SD卡然后重新上电启动。
返回列表