精华内容
下载资源
问答
  • 编译环境准备 ​ Ardupilot源码下载和PX4 toolchain工具链下载 ...​ 注意:最新版本github已经支持下载工程项目中子模块。如果喜欢git bash终端指令下载,可见: ​ https://www.cnblogs.com/BlogsOfLei/p/...

    编译环境准备

    ​ Ardupilot源码下载和PX4 toolchain工具链下载

    ​ (见https://www.cnblogs.com/BlogsOfLei/p/7707485.html)

    注意:最新版本的github已经支持下载工程项目中的子模块。如果喜欢git bash终端指令下载,可见:

    https://www.cnblogs.com/BlogsOfLei/p/8624650.html

    终端编译

    ​ 打开终端PX4 Console,进入固件对用的文件下。此处以编译四旋翼固件为例,如下图:

    ​ make px4-v2编译选项,选择编译px4-v2固件,回车确定,等待编译完成。编译成功得到的固件在ArduCopter文件下,名称为***.px4。

    编译选项说明

    make px4-v2Build the Pixhawk firmware for a quad
    make px4-v3 Build The Cube firmware for a quad
    make px4-v4 Build the PixRacer firmware for quad
    make px4 Build both PX4 (obsolete) and PixHawk firmware for a quadcopter
    make clean “clean” the ardupilot directory
    make px4-clean “clean” the PX4Firmware and PX4NuttX directories so the next build will completely rebuild them
    make px4-cleandep “clean” .d and .o files from the PX4Firmware and PX4NuttX directories. faster but less complete rebuild compared to “px4-clean”
    make px4-v2-upload Build and upload the Pixhawk firmware for a quad (i.e. no need to upload using a ground station)

    Eclipse 编译

      

    • 新加编译选项

      

    • 点击编译选项进行编译,等待编译完成。编译成功后,生成的目标文件位于ArduCopter目录文件下,格式为***.px4。

    转载于:https://www.cnblogs.com/BlogsOfLei/p/10270637.html

    展开全文
  • 使用工程文件路径 (1)/home/u/riscv_pro 所有软件均安装在这个目录下 $mkdir /home/u/riscv_pro $cd /home/u/riscv_pro 1.下载交叉编译工具toolchain源码 $ git clone --recursive ...

    一.准备工作

    使用的软件
    (1)Oracle VM VirtuaBox
    (2)Ubuntu19.04		
    使用工程文件的路径
    (1)/home/u/riscv_pro
    
    所有软件均安装在这个目录下
    $mkdir /home/u/riscv_pro
    $cd /home/u/riscv_pro
    
    1.下载交叉编译工具toolchain源码
    	$ git clone --recursive  https://github.com/riscv/riscv-gnu-toolchain
    2.下载qemu源码
    	$wget  https://download.qemu.org/qemu-4.2.0-rc2.tar.xz
    3.下载busybox源码
    	$wget  http://busybox.net/downloads/busybox-1.26.2.tar.bz2
    4.下载linux内核源码
    	$wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.85.tar.xz
    5.下载riscv-pk包源码
    	$ git clone https://github.com/riscv/riscv-pk
    

    二.安装toolchain

    1.安装运行库
    	$ sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev
    2.配置安装路径
    	$ mkdir riscv-gnu-toolchain-build
    	$ cd riscv-gnu-toolchain-build
    	$ ../riscv-gnu-toolchain/configure --prefix=/opt/riscv
    3.编译
    	$ make linux
    参考:
    	/data/shenjx/work/riscv-tools/riscv-gnu-toolchain/riscv-gcc/configure --target=riscv64-unknown-linux-gnu --prefix=/data/shenjx/riscv-toolchain --with-sysroot=/data/shenjx/riscv-toolchain/sysroot --with-system-zlib --enable-shared --enable-tls --enable-languages=c,c++,fortran --disable-libmudflap --disable-libssp --disable-libquadmath --disable-nls --disable-bootstrap --src=.././riscv-gcc --enable-checking=yes --disable-multilib --with-abi=lp64d --with-arch=rv64imafd
    

    三.安装qemu

    1.安装运行库
    	$ sudo apt-get install gcc libc6-dev pkg-config bridge-utils uml-utilities zlib1g-dev libglib2.0-dev autoconf automake libtool libsdl1.2-dev
    2.配置qemu
    	$ tar -xvf qemu-4.2.0-rc2.tar.xz
    	$ mkdir qemu-4.2.0-rc2-build
    	$ cd qemu-4.2.0-rc2-build
    	$ ../qemu-4.2.0-rc2/configure --target-list=riscv64-linux-user,riscv64-softmmu
    3.编译
    	$ make
    

    四.安装busybox

    1.配置busybox
    	$ tar -xvjf busybox-1.26.2.tar.bz2
    	$ cd busybox-1.26.2
    	$ make allnoconfig
    	$ sudo apt-get install libncurses5-dev
    	$ make menuconfig
    

    在这里插入图片描述

    2.编译
    	$ make -j4
    3.安装
    	$ make install
    4.创建initramfs文件系统目录
    	$ mkdir  initramfs
    	$mkdir  -p  bin etc dev lib proc sbin sys tmp usr usr/bin usr/lib usr/sbin
    	$cp _install/* ./initramfs/ -a
    	$cd ./initramfs
    	$rm -f linuxrc
    	$cd ./etc 
    	$touch inittab
    	
    	Inittab文件中写入:
    	::sysinit:/bin/busybox mount -t proc proc /proc
    	::sysinit:/bin/busybox mount -t tmpfs tmpfs /tmp
    	::sysinit:/bin/busybox mount -o remount,rw /dev/htifblk0 /
    	::sysinit:/bin/busybox --install -s
    	/dev/console::sysinit:-/bin/ash
    	
    5.制作initrd
    	$cd ..
    	$ find . | cpio -H newc --quiet -o | gzip -9 > /home/u/riscv_pro/busybox-1.26.2/initramfs/initrd.gz
    

    五.编译linux内核

    1.配置linux内核
    	$ tar -xvf linux-4.19.85.tar.xz
    	$ cd linux-4.19.85
    	$ make ARCH=riscv defconfig
    	$ make ARCH=riscv menuconfig ( O=../build/  O选项指定kernel的编译目录 )
    	"General setup -> Initial RAM Filesystem..." (CONFIG_BLK_DEV_INITRD=y)
    	"General setup -> Initramfs source files ="/home/u/riscv_pro/busybox-1.26.2/initramfs/initrd.gz"(CONFIG_INITRAMFS_SRC=initramfs.txt)
    	添加debug:
    	在 kernel hacking->compile-time checks and compiler options 选项页,勾选第一个Compile the kernel with debug info
    2.编译
    	$ make -j4 ARCH=riscv CROSS_COMPILE=riscv64-unknown-linux-gnu-  vmlinux
    3.readelf -S vmlinux 查看vmlinux的section ,如果有.debug字段说明vmlinux中带有debug
    

    六.安装riscv-pk包装vmlinux

    1.配置
    	$ mkdir riscv-pk-build
    	$ cd riscv-pk-build
    	$../riscv-pk/configure --prefix=$RISCV --with-payload=/home/u/riscv_pro/linux-4.19.85/vmlinux --host=riscv64-unknown-linux-gnu
    2.编译
    	$ make bbl
    

    七.qemu模拟运行镜像bbl

    $/home/u/riscv_pro/qemu-4.2.0-rc2-build/riscv64-softmmu/qemu-system-riscv64 -nographic -machine virt -kernel /home/u/riscv_pro/riscv-pk-build/bbl -append "root=/dev/vda ro console=ttyS0" -drive file=/home/u/riscv_pro/busybox-1.26.2/busybox,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 
    
    $sudo riscv-qemu/riscv64-softmmu/qemu-system-riscv64 -machine virt -kernel riscv-pk/build/bbl -append "console=ttyS0"  -nographic -m 1024M
    

    八.扩展

    使用objcopy切割二进制文件,去掉无用的文件头elf部分
    	$riscv64-unknown-linux-gnu-objcopy  -O  binary  -S  bbl  bbl_cp
    
    输出二进制文件内容到txt文件中查看使用vim
    	$hexdump  bbl_cp  >  bbl_cp.txt
    
    反汇编
    	$riscv64-unknown-linux-gnu-objdump  -d  bbl  bbl_asm.txt
    
    展开全文
  • 编译指令 在开始进入编码之前,我们简要介绍一下常用的代码编译指令,在接下来的编码过程中,会...1、make:这是一个批处理的文件名称,在工程源码的根目录下,有一个make.bat的文件。在make后面的字段实际上都是给...

    编译指令

    在开始进入编码之前,我们简要介绍一下常用的代码编译指令,在接下来的编码过程中,会经常用到。对于刚接触MTK开发的人,可以把这一节的内容当作词典来用,不记得就查一查,没必要死记。在后面的开发中,我也会提示采用什么样的指令编译代码。

    编译指令通用格式:

    make [-debug] project  project_attr  command

     

    指令格式说明:

    1、 make:这是一个批处理的文件名称,在工程源码的根目录下,有一个 make.bat的文件。在make 后面的字段实际上都是给批处理传的参数,这个名称一般不允许更改,我们把它当做一个固定字段使用。

    2、 -debug:这个参数只用于编译模拟器。

    3、 project:这是我们要编译的项目名称。在工程源码的根目录下,有一个 make 文件夹,在这个文件夹里面有一个Verno_XXXXXX.bld文件,比如Verno_FengKe2502C_11C.bld。这个文件是项目的版本控制文件,在Verno_ 后面的FengKe2502C_11C 就是项目名称。在make文件夹下面,有可能存在多个这样的文件,那就说明在这个工程源码中,包含多个项目。

    4、 project_attr:这个字段为项目的属性,常用取值有gprs、gsm、none。其中gprs代码项目支持sim卡,可以打电话、发****,还能上网;gsm表示该项目也支持sim卡,可以打电话,可以发****,但无法上网,在这样的项目中,我们无法进行socket编程;none表示项目不支持sim卡。那么如何确定项目的属性呢?在上一条project的介绍中,我们提到了make目录下的项目版本控制文件——Verno_FengKe2502C_11C.bld。与之对应的还有一个项目配置文件——FengKe2502C_11C_XXXX.mak,比如FengKe2502C_11C_GPRS.mak。那么这个项目的属性就是 gprs。每一个项目在make文件夹中都必须包含这两个文件。

    5、 command:这是我们要用到的编译命令,采用什么样的方式生成二进制bin文件。取值及说明见如下表格:

    new

    这个指令耗时最长,它会重新编译所有模块,每一个项目第一次编译都要使用这个指令,在修改了项目配置,或者新增文件时都要使用这个指令重新编译整个项目。

    Remake(可简写为r)

    这个指令只是简单的重新编译链接有改动的部分。它不检查依赖关系,不扫描资源,只扫描代码的改变,有改变的重编,资源和无改变的代码不编。如果r后面没有其他字段,则重新编译所有模块,如果有其他模块字段,则重新编译单个模块或多个模块。比如:r mmi_app 则只重新编译 mmi_app模块,r mmi_app mmi_framework 则只重新编译两个模块。至于这些模块名称从哪里查找,在后面会有介绍。

    Updata(可以简写为 u)

    这个指令会扫描工程中文件和库的依赖关系,若依赖关系有变化会建立新的依赖关系,随后根据新的依赖关系重新编译链接有改动的部分。它跟remake 的用法类似。可以更新所有模块,也可以更新指定的模块,比如 u mmi_app, u mmi_app mmi_framework。但是r mmiresource 不会重新生成资源,u mmiresource 会重新生成资源,相当于 resgen 和r mmiresource的合并。

    Resgen

    编译资源。只要修改了.res 文件,都要用这个指令编译

    Gen_modis

    生成模拟器工程文件,可用 Visual Studio 2008 生成模拟器,调试mmi部分的代码。

     

    编译指令举例:

    make  FengKe2502C_11C GPRS  new

    make  FengKe2502C_11C GPRS  resgen

    make  FengKe2502C_11C GPRS  r

    make  FengKe2502C_11C GPRS  r  mmiresource

    make  FengKe2502C_11C GPRS  u  mmiresource(等同于make resgen 和 make r mmiresource)

    make  FengKe2502C_11C GPRS  r  mmi_app mmi_framework

    make  FengKe2502C_11C GPRS  u  mmi_app mmi_framework

     

    make  -debug  FengKe2502C_11C  GPRS  gen_modis

    make  -debug  FengKe2502C_11C  GPRS  codegen_modis

    make  -debug  FengKe2502C_11C  GPRS  new_modis(等同于make gen_modis 和 make codegen_modis)

     

    在后面的编码过程中,我会省略 project project_attr 用 make command 的格式提示大家用什么样的命令来编译代码。比如 make new就等同于make  FengKe2502C_11C GPRS  new,如果你的代码之前有使用该命令编译过,源码根目录中有FengKe2502C_11C_gprs.log 文件,那直接使用make new也是可以编译的,同理直接使用 make r 或者make r mmi_app都是可以直接编译。但是对于新手而言,不推荐使用这种简写的指令,防止忘记完整的指令格式。

    展开全文
  • 加特 指令跟踪可视化工具,旨在帮助逆向工程师在目标行为和代码... rgat本身经过编译,可以在x64主机上运行。 在去年没有发布某个时刻,我将仪器移到了PIN,因为它当时工作更可靠,尤其是在我AMD处理器上(这
  • FX2N源码V4.5版使用基本说明: 编译语言:C语言 FX2N源码V3.8版是根据三菱FX2NPLC通信协议、通信命令以及基于STM32F103系列单片机上编写运行程序,可以直接利用三菱编程软件编写梯形图下载运行,无需任何转换...
  • 在工具栏弄一个类似VisualAssist插件,添加文件时候拦截消息,增加文件CustomBuildStep 微软VC6.0和Office2007有冲突,工程添加不了文件,微软提供了一个Filetool.exe插件源码,可以在这个基础上修改。...

    1. 新建一个模板工程,增加ARM Debug和ARM Release两个config
    2. 在工具栏弄一个类似VisualAssist的插件,添加文件的时候拦截消息,增加文件的CustomBuildStep
        微软的VC6.0和Office2007有冲突,工程添加不了文件,微软提供了一个Filetool.exe的插件源码,可以在这个基础上修改。
        调用通过COM接口改变文件的编译属性
     
    在MFC程序中执行DOS命令不显示窗口
    WinExec( "Cmd.exe   /C   dir> d://test.txt ",   SW_HIDE);
    ShellExecute(NULL, "open ", "c://WINDOWS//system32//cmd.exe ", "/c   dir> d://test.txt ", " ",SW_SHOW); 
     
    展开全文
  • 编译指令 该软件使用PDCurses,因此编译器应已安装并链接它 另外,编译器指令应为C99。要编译的命令如下:gcc jogodaforca.c -o jogodaforca.exe -lpdcursesw -std = c99 该软件是在Windows 10 x64上开发和测试,...
  • 该框架包括一套功能齐全高端软件分析工具,使用户能够在包括Windows,macOS和Linux在内各种平台上分析编译代码。 功能包括反汇编,汇编,反编译,制图和脚本编写,以及数百种其他功能。 Ghidra支持多种...
  • cmake ubuntu卸载源码安装cmake

    万次阅读 2018-03-21 14:57:10
    cmake版本在ubuntu编译程序时至关重要,特别是编译他人的工程时,有时必须保证cmake版本与工程所有者相同。对于cmake卸载问题,现在一般博客中给指导是:sudo apt-get remove cmake但是此句指令是针对于通过...
  • 主要内容包括软件Visual C++2005开发技术、DirectSound开发音频、DirectShow/VFW开发视频、MMX/SSE进行多媒体汇编编程、DM642 DSP进行音视频算法优化和主流视频算法MPEG-4/H.264编码原理及工程实践。本书系统地...
  • 主要内容包括软件Visual C++2005开发技术、DirectSound开发音频、DirectShow/VFW开发视频、MMX/SSE进行多媒体汇编编程、DM642 DSP进行音视频算法优化和主流视频算法MPEG-4/H.264编码原理及工程实践。本书系统地...
  • 这样 我有一个库工程,已经编译好,生成了lib库。 这是 我又建立了一个app工程,想要链接库工程生成lib库。 我在app工程的源码目录编辑了一个CMakeLists.txt文件 如图 内容如下 ADD_EXECUTABLE(app app.c) ...
  • TriCore是英飞凌(infineon)公司专为嵌入式实时系统设计32位精简指令(RISC)芯片架构。汽车电子上用比较多。低中断;硬件自动切换都是它特点。 硬件 描述 芯片型号 TC264 / TC364 / TC377 CPU架构 三核...
  • mini-vue3.0主要涵盖5个功能点:模板编译,数据响应式,组件挂载和更新,指令编译,组件初始化调度更新: 指令编译及执行 组件调试更新 待办事项清单 vue3.0组件模板动静分离优化原理 vue架构图 简单一点渲染过程...
  • NaviGuiDemo-源码

    2021-03-21 08:36:04
    将得到的路线分解为一帧一帧的指令用于动画 所以一点都不难,就是加上一堆条件遍历 分工需求 画图,用现成的也行,但是得打好网格,算好坐标,保证路线为直角转弯,不然寻路算法和动画都会非常麻烦 将地图转换为文件...
  • 用Go编写模块化bug搜寻,渗透测试和webapp逆向工程框架。 如果您想详细了解这个想法是如何产生以及我是如何写这个,可以阅读。 但是,请注意,自从我撰写该文章以来,体系结构发生了很多变化。 goRE是为...
  • CMake指令详解

    2020-12-03 14:26:03
    1.add_definitions() 语法: add_definitions(-D${宏名字}) ...具体,在工程CMakeLists.txt 中,使用add_definitions()函数控制代码开启和关闭: option(TEST_DEBUG "option for debug" OFF) if (TEST_D.
  • 自主访问控制(DAC)与带有互斥角色约束基于角色访问控制(RBAC)演示程序,附带源码,...使用VS2008及以上可以直接打开工程,否则可以使用g++等编译。程序使用命令行形式控制,输入help命令可以查看各指令格式。
  • CFU-Playground-源码

    2021-03-12 16:18:05
    目的是抽象出大多数基础结构细节,以便用户可以快速上手,并专注于添加新处理器指令,在计算中利用它们并测量结果。 该项目可实现处理器改进方面快速迭代-每天多次迭代。 这是最高级别工作方式: 选择一个...
  • Vue.js_13_v-pre 指令

    2020-04-16 00:49:38
    本系列博客汇总在这里:Vue.js 汇总 v-pre 指令使用说明 ...源码工程文件为: 使用说明 v-pre 用于跳过这个元素和它子元素的编译过程,用于显示原本 Mustache 语法。 比如下面代码: 如有错误,欢迎指正! ...
  • Vue.js_14_v-cloak 指令

    2020-04-16 01:11:15
    本系列博客汇总在这里:Vue....源码工程文件为: 使用场景 在某些情况下,我们浏览器可能会直接显示出未编译的 Mustache 标签,就像下面这样。 这种情况我们也是可以做出调整,如下: 如有错误,欢迎指正! ...
  • 我们知道,Java是一种跨平台编程语言,其源码(.java文件)被编译成与平台无关字节码(.class文件),然后在运行期动态链接。这样,编译类文件中将包含有符号表,从而使得Java程序很容易被反编译。相信每一个...
  • 小脚本 整个项目包括三个东西: 创建了一个自己语言 编译器 ...工程思路不是我自己想出来,来自于慕课网《大学计算机必修课新讲-编译原理+操作系统+图形学》这个课程。理论主要是看《龙书》一部分
  • STM32仿三菱FX2N源码

    2018-11-22 17:53:11
    我们提供是项目工程文件,所以主要你MDK版本兼容直接编译就可以了; C语言单片机开发PLC-基于三菱FX2N,里面包括通讯,以及监控功能,指令执行,在线写入功能,店铺保证程序可以在MDK上编译通过,同时下载进...
  • 一、为什么需要对liunx源码进行配置? 嵌入式工程师有一个很重要也是工资很高职位就是:驱动工程师,复制驱动代码编写 而驱动代码的编译需要一个提前编译内核 编译内核就必须配置,...查找厂家.config指令
  • STM32仿三菱FX2N源码PCB

    2018-11-22 17:45:44
    4、目前至少支持的指令有:(其他指令亲可以自己添加) RST RSTS RSTTC OUT OUTS SET SETS ADD SUB MUL DIV LD LDI LDP LDF AND ANI OR ORI ANDP ANDF ORP ORF ADDP SUBP MULP DIVP MOV MOVP END FEND CJ CALL RET...
  • ✔ TypeScript支持类型,是JavaScript超集且可以编译成纯JavaScript代码。 ✔ TypeScript兼容所有浏览器,所有宿主环境,所有操作系统。 ✔ TypeScript是开源。 一大波新快速开始指南:React,Angular,...
  • 将Publish下所有文件(others和package.json)拷贝到工程根目录 在根目录执行 npm install 命令 运行npm指令: update-ltg 使用fgui导出ui工程 使用unity导出配置文件 编译并运行项目确认一切OK 开始写代码 npm命令...
  • 你们可以下载普通openssl源码,把里面Makefile.org拷贝到gmssl目录下,可用。 做完这些,还要安装: sudo apt-get install gcc-multilib sudo apt-get install g++-multilib ...
  • 我们提供是项目工程文件,所以主要你MDK版本兼容直接编译就可以了; 支持所有支持三菱PLC触摸屏 基本指令: LD LDI AND ANI OR ORI LDP LDF ANDP ANDF ORP ORF SET RST MPS MPP MRD ANB ORB OUT INV PLS ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 114
精华内容 45
关键字:

编译工程源码的指令