首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux下开发stm32 ② | 使用openocd下载程序

1.openocd介绍 openocd(http://openocd.org)全名叫做Open On-Chip Debugger,是一个自由开放的片上调试工具编程工具,目前已经发布0.10.0版本,...2.2.权限授权 sudo:在编译安装的时候最好带上使用sudo,防止因为管理权限出错; contrib / 60-openocd.rules:在Linux上使用USB设备时,需要将此文件复制/etc...它下面scripts文件夹存放着openocd使用文件,在interface文件夹下存放着下载器接口的文件,在target下存放着目标芯片的配置文件: ? 在这里插入图片描述 ? ?...-f -f 即可成功连接到目标芯片: 接口配置文件在interface文件夹下; 目标芯片配置文件在target文件夹下; ?...退出可使用ctrl+]即可退出,然后输入q退出。 5.openocd下载文件命令写入makefile 修改makefile: ?

5.3K21

Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行发布过程解析

(Qt4Qt5大同小异) 3. 命令行所有操作一定是要在项目文件夹,例如这里的hello项目。 4. 掌握qmake工具的使用,在之后纯代码实现HelloWorld的时候要用到。 5....步骤二:创建程序文件夹 此时创建的程序直接双击运行会弹出错误框哦!还需要做以下处理才能发给别人用! (1)新建一个文件夹,盛放程序发布要用的dll文件exe可执行程序。...(3)这次双击exe文件是不是可以运行了呢!(也可通过命令行完成以上操作,见说明1.①) 步骤三:打包文件夹发布! (1)App文件夹现在有19M,App文件夹压缩起来,看看多大: ?...Makefile文件包含了要创建的目标文件或可执行文件、创建目标文件所依赖的文件创建每个目标文件时需要运行的命令等信息。...使用mingw32-make命令时会为每一个源文件生成一个对应的.o目标文件,最后这些目标文件进行链接来生成最终的可执行文件。与vc++6.0运行程序时编译、链接、运行三个按钮相似。

4.3K11
您找到你想要的搜索结果了吗?
是的
没有找到

makefile文件编写「建议收藏」

makefile文件用于管理组织代码工程的编译链接,其不是可执行文件,其被make工具解析并完成相关动作,下面笔者介绍makefile中常用的一些语法说明: 1、文件包含: 语法:include...通常我们一些配置选项分开成一个独立的makefile文件,这样有利于makefile文件的管理,或模块代码的依赖关系需要编译文件信息独自写到一个 makefile文件,最终通过include命令形成一个顶层...makefile文件来完成整个工程代码的编译链接。...比如 dirs := C_DIR S_DIR file := (foreach dir,(dirs),(wildcard (dir)/*)) C_DIRS_DIR文件夹下面的所有文件添加到file变量...,这样当头文件信息改变后,make程序就知道如何更新目标文件了,而不是整个进行重编译,但这个操作可以看出是非常消耗时间及傻瓜式的,作为解决方案我们可以通过使用 编译器命令 –M选项来自动完成该工作,比如在

2.2K10

Linux环境下通过GDB调试C项目实战

g 默认情况下,gcc在编译时不会建个调试符号插入生成的二进制代码,如果需要生成调试符号信息,可以使用gcc -g选项,一般不加调试选项,否则会使代码增大。...我们可以看到文件的目录结构是一个典型的C语言项目架构:Makefile,include文件夹下是预先定义好的库函数,粗看文件结构应该可以想到array.c是一个具体实现函数功能的文件,main.c则是总的主函数...这个Makefile的几条命令大致为: make clean:清除已经存在的result可执行文件 make/make result:已经得到的可执行文件main.o与array.o链接成可执行文件...result,不开启O2优化或采用O0优化,在此之前main.carray.c分别编译成可执行文件main.oarray.o make_clean:清除已经存在的main.o可执行文件 array_clean...,用以提高目标代码的运行速度.) array_optimize:编译mian.c生成main.o文件,开启O2优化(该优化选项会牺牲部分编译速度,除了执行-O1所执行的所有优化之外,还会采用几乎所有的目标配置支持的优化算法

5.2K50

6_Makefile与GCC

预处理就是将要包含(include)的文件插入原文件宏定义展开、根据条件编译命令选择要使用的代码,最后这些东西输出到一个“.i”文件中等待进一步处理。...6.2.2.3 链接库选项 (详细使用方法查看下一节:gcc编译器2_深入讲解链接过程) ​ 1) 添加库文件搜索目录(-Ldirname) ​ dirname目录加入文件的搜索目录列表。 ​...6.2.2.5 调试选项 ​ 代码目录在**git仓库(6_Makefile与GCC/001_gcc_02)**文件夹下 ​ gcc支持数种调试选项: ​ -g 产生能被GDB调试使用调试信息。 ​...行6:最终目标文件的名字100ask,赋值给TARGET。 ​ 行7:替换CC的默认之cc,改为gcc。 ​ 行8:显示所有的警告信息选项gdb调试选项赋值给变量CFLAGS。 ​...行12:编译生成可执行程序100ask,并将可执行程序生成output目录 ​ 行15:文件生成对应的目标文件。 ​ 行17:伪目标,避免当前目录有同名的clean文件。 ​

3.5K10

Windows上使用 OpenOCD 给 STM32 下载程序

Linux下开发stm32(二) | 使用openocd下载程序 一、OpenOCD介绍 openocd全名叫做Open On-Chip Debugger,是一个自由开放的片上调试工具编程工具,目前已经发布...安装openOCD 这是第三方编译好的软件,解压后配置环境变量即可。 ? openocd可执行程序在 bin 目录下, bin 目录路径添加到环境变量: ? 配置好之后「重启电脑」。 3....连接到目标芯片 openOCD连接目标芯片的命令格式为: openocd -f -f ❝接口配置文件目标芯片配置文件需要使用绝对路径。...目标芯片配置文件是openOCD支持的目标芯片,在 scripts\target 文件夹下; ? 比如这里我使用ST-Link v2-1下载器+STM32L431RCT6,结果如图: ? 2....四、添加到makefile实现一键下载 1. 添加makefile目标 openOCD虽然可以通过一行命令完成下载,每次都要输入这么多过于麻烦。

12.4K53

qmake:变量手册

将被复制应用程序的 libs 文件夹并在启动时加载的外部库列表。 例如,这可用于在应用程序启用 OpenSSL。...以下 CONFIG 值控制编译链接器标志: release:项目在发布模式下构建。如果还指定了 debug,则最后一个生效。 debug:项目在调试模式下构建。...shared、dll:目标是共享对象/DLL。 正确的包含路径、编译器标志库将自动添加到项目中。dll也可以在所有平台上使用创建具有目标平台(.dll 或 .so)的适当后缀的共享库文件。...31、IDLSOURCES 此变量仅在 Windows 上用于 Visual Studio 项目生成,以指定文件放在 Generated Files 文件夹。...可以通过分别修改 QMAKE_CFLAGS_DEBUG QMAKE_CFLAGS_RELEASE 变量来调整特定于调试发布模式的标志。

3.5K20

如何方便快速的整编Android 9.0系统源码?

前言 有时候我们顺利的AOSP下载了下来,很多时候我们不仅仅需要去查看源码,还有以下的几个需求: 动态调试Android系统源码 定制Android系统 最新版本的Android系统刷入自己的Android...kati kati是谷歌专门为了Android而开发的一个小项目,基于GolangC++。 目的是把AndroidMakefile,转换成Ninja文件。...使用Docker编译,支持Mac OSWindows 其中需要注意的是,Docker的最低支持版本为Windows7,建议用Windows10环境下使用Docker,因为在Windows7种还需要借助...1.初始化环境 在AOSP的根目录,输入如下的命令: source build/envsetup.sh // 编译前删除build文件夹A make clobber 使用 build目录的envsetup.sh...BUILDTYPE 指的是编译类型,有以下三种: user:用来正式发布市场的版本,权限受限,如没有 root 权限,不能 dedug,adb默认处于停用状态。

2.7K20

Windows下Qt静态编译全解

,用于跳过错误继续编译其它文件) 经过这样编译的Qt库不依赖mingwm10.dll,libgcc_s_dw2-1.dll,但依赖Qt库的Dll文件微软的CRT运行时库,使用此Qt库编译Windows...平台下的程序,发布时需带上用到的Qt链接库Dll文件微软的CRT运行时库Dll文件。...Qt库不依赖于任何Dll文件(如微软的CRT运行时库),使用此Qt库编译Windows平台下的程序发布时不需要附带任何额外的Dll文件。...编译事项说明 编译完成后可以删除bin目录中所有不是当前编译日期的文件。 建议编译前移除examplesdemos文件夹的所有文件,避免重编译这两个文件夹,加快编译速度。...WebKit的可以删除此选项 -qt-style-windowsxp -qt-style-windowsvista 支持XPVista主题样式 注意:使用静态编译的程序通常较大,建议发布使用UPX

48820

gdbmakefile的讲解

Linux调试器-gdb使用 gdb可以用于Linux环境下的程序的调试,就例如vs环境下的打断点,然后逐步分析语句等 1 gdb的背景 程序的发布方式有两种,debug模式release模式 我们在使用...-g test编译后的debug版本命名为test-debug 然后你就可以看到一个debug的文件,你就用gdb 对他进行调试即可: 下图对第五行进行打一个断点 2 gdb的使用 2.1...1 make/makefile的背景 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力 一个工程的源文件不计数,其按类型、功能、模块分别放在若干个目录makefile定义了一系列的规则来指定...可见,makefile都成为了一种在工程方面的编译方法。 make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建。...如果找到,它会找文件的第一个目标文件(target),在上面的例子,他会找到“test3”这个文件, 并把这个文件作为最终的目标文件。 3.

7510

用GCC开发STM32,正点原子开发板的一个库函数版本例程示例

熟悉Makefile主要还是实践,按照李云博客介绍的方法,多使用echo,或者使用make的调试命令make –D > 1.txt,这样可以熟悉其中的依赖关系建立顺序。...$@:代表规则目标文件名:可以使用@-->at 代表目标的意思    $%:规则的目标文件是一个静态库文件时,代表静态库的一个成员名.    $<:规则的第一个依赖文件名.   ...-S    只激活预处理编译文件汇编到汇编代码,相当于程序生成.s文件.   ...-MM    同上,忽略#include造成的依赖关系    -MD    -M相当,但是输出导入.d文件. gcc -MDtest.c 输出依赖关系    放在test.d文件里    -MF...-MMD    -MM相当,忽略#include造成的依赖关系    -l(library)    用于指定编译的时候使用的库. gcc-lgtk test.c 则程序使用gtk库进    行编译.不过需要注意的是

1.4K20

使用VisualGDB开发Keil MDK-ARM项目

前言 本教程展示了如何使用VisualGDB使用Keil MDK-ARM编译器构建项目,使用VisualGDB智能感知包括CodeMap,并使用Visual Studio调试它。...现在我们需要从uVision项目导入编译链接器标志。打开uVision目标属性,复制编译器控制字符串: ? 指定的选项需要分为3类: 包括目录预处理器宏。这些选项对于智能感知很重要。...现在,我们更改Makefile,以使用Keil编译器而不是GCC,并提供特定于Keil的标志。打开mcu.mak文件: ?...然后,我们将使用objcopy工具编辑.elf文件,用.bin文件的内容替换复制闪存的数据。这将确保GDB初始化数据以Keil期望的方式放入FLASH: ?...如果您现在构建项目,Visual Studio正确显示错误警告: ? 如果您正在使用VisualGDBKeil编译器,请在论坛告诉我们。

2.3K30

Makefile总结

Makefile是一个规定了怎么去编译链接程序的脚本文件,在执行make命令时会执行该文件,window环境下的IDE,如visual studio已经集成了该功能,不需要关心程序的编译规则,在linux...目前centos 7.3 GNU的make版本是3.82 为什么要用Makefile 在做C/C++开发过程,比如有如下文件: a.c b.c main.c 编译生成可执行二进制文件 gcc a.c...这种情况可以使用目标来解决,可避免在makefile定义的执行命令目标当前目录下实际文件名冲突。 一旦定义为伪目标,make执行规则不会去查找隐含规则,同样也提高了效率。...在上边的Makefile把clean定义为伪目标即可 .PHONY:clean 还有个特表的伪目标 all ,如我们通过Makefile创建多个可执行文件时,可以使用到: 如: all: bin1 bin2...,添加文件夹,把源码都放入srclib文件夹,保持增量编译,即为Makefile通用模板 EXE = helloworld GCC = g++ SUBDIR = src lib CPP_SOURCES

93010

qtqmake的详解

一般顺序是先创建.pro文件,然后由.pro文件生成Makefile文件makefile文件保存了编译连接器的参数选项,还表述了所有源文件之间的关系(源代码文件需要的特定的包含文件,可执行文件要求包含的目标文件模...–程序需要编译的头文件列表....VERSION – 目标库的版本号,如 2.3.1 编译成一个插件 插件的编译使用lib模板,正如上面所描述的那样,这告诉 qmake生成的Makefile是将要编译成为每个平台都适当的形式的插件...·d 列出qmake的调试信息 由于工程需要在每个目标平台上进行不同的编译,并有很多子目录, 你可以在运行qmake的时候使用下面的选项来设置相应的指定平台的变量。.../qt 实验2 本实验并没有用到上面所讲的方式,而是直接使用了默认值,但是假设说该文件夹下有两个cpp文件,如下图 这时候再执行命令:qmake -project会怎么样呢?

2.4K40

Qt高级——QMake快速入门

如,工程文件是hello.pro,Windows平台的目标名称是hello.exe,Unix平台的目标名称是hello。如果要使用不同的目标名称,需要在工程文件hello.pro设置。...不能直接增加这两个文件SOURCES变量,因为这会导致这两个文件直接生成MakeFile文件,需要在qmake所运行的平台的代码块独立处理。...除非在应用程序构建过程中使用console设置,否则看不到输出状态信息。通过console增加到CONFIG变量可以在生成的MakeFile文件中生成相应的设置。...1、QMake创建应用程序 app模板会告诉qmake生成一个构建应用程序的MakeFile使用app模板,应用的类型可以增加一个选项CONFIG变量定义。...为目标提供不同的名称可以确保目标相互间不会被覆盖。 当qmake处理工程文件时,会生成一个允许支持debugrelease模式的MakeFile规则。

1.3K21

第1章Hello world 45:对比RustJavaC++创建和运行Hello world全过程:运行第一个程序

/source/main.cpp编译cargo build会在target/debug文件夹编译构建(同上)运行以下4行命令进行编译调试构建:第一行mkdir build第二行cd build第三行...编译:Rust:使用cargo build,在target/debug文件夹编译构建我们的Rust代码。Java:使用....用于开发自测的构建:Rust:使用cargo build,编译构建我们的Rust代码。Java:使用./gradlew build,在app/build文件夹构建jar包。...构建发布包:Rust:使用cargo build --release,为我们的Rust项目在target/release文件夹创建发布包。Java:使用....这个表格总结了使用三种语言,在不同编程环境从设置环境、创建项目、编写格式化代码,检查错误、编译、运行清理构建文件的整个Hello world创建和运行流程。

15353

Linux — Makefile的学习笔记以及多级目录下Makefile的编写

零、简单说明(2020.3.9追加) 1、由于Makefile对于制表符(tab)、还有unixwindows对于换行符的不同等等原因,本文中所有的Makefile文件的内容不建议您直接复制然后粘贴使用...Makefile文件文件的内容来执行大量的编译工作,Make编译改动的代码文件,而不用完全编译。...Make命令makefile文件的结合提供了有一个在项目管理领域十分强大的工具,不仅可以用于控制源代码的编译,而且还可以用于手册也的编写以及应用程序安装到目标目录。...,比如例子的,可以新建四个文件夹,分别是: Main add sub obj main.c移动到main文件夹,并且新建makefile,输入内容: $(OBJDIR)/main.o:main.c.../sub/sub.h" add.cadd.h移动到add文件夹, $(OBJDIR)/add.o:add.c $(CC) -c $^ -o $@ sub.csub.h移动到sub文件夹

5K10

Linux 下的make命令与Makefile

所有#define删除,并展开所有宏定义 2 处理所有条件预编译指令#if #ifdef #elif #else #endif等 3 处理#include 预编译指令,包含的文件插入编译指令的位置...(递归进行,所包含的文件可能包含其他文件) 4 删除所有注释// /* */ 5 添加行号和文件名标识,如:#2 hello_kitty.c 2 ,用于编译编译器产生调试信息编译时产生的错误警告时能显示行号...在Unix世界,软件发布时,特别是GNU这种开源软件的发布时,其makefile都包含了编译、安装、打包等功能。 我们可以参照这种规则来书写我们的makefile目标。...这个参数输出的信息会包含着你的makefile文件文件行号,所以,用这个参数来调试你的makefile会是很有用的,特别是当你的环境变量很复杂的时候。...) 我们可以注意,这个Makefile并没有写下如何生成hello.okitty.o这两目标的规则命令。

10.1K20

从 Element UI 源码的构建流程来看前端 UI 库设计

那么输入 make 命令将会执行 Makefile 文件的某个目标命令。...对定义大概是这样: ❝Makefile 是一个适用于 C/C++ 的工具,较早作为工程化工具出现在 UNIX 系统, 通过 make 命令来执行一系列的编译连接操作。...在拥有 make 环境的目录下, 如果存在一个 Makefile 文件。那么输入 make 命令将会执行 Makefile 文件的某个目标命令。...❞ 这里我以make install为例简要说明下执行流程: 执行 make 命令, 在该目录下找到 Makefile 文件。 找到 Makefile 文件对应命令行参数的 install 目标。...组件开发 参考大多数 UI 组件库的做法,可以 examples 下的示例代码组织起来并暴露一个入口,使用 webpack 配置一个 dev-server,后续对组件的调试、运行都在此 dev-server

2.3K20
领券