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

Linux开发stm32

1.为什么不是gcc 之前我们花了三篇文章介绍Linux如何进行C语言编程: Linux C语言编程(上篇) | gcc的使用 Linux C语言编程(中篇) | make的使用 Linux C语言编程...(下篇) | gdb的使用 这是为了给接下来的Linux嵌入式开发打好基础,尽快熟悉Linuxc编程,但是在开发stm32的时候,编译工具链要使用gcc-arm-none-eabi,为什么不是gcc...这就要说到linux的交叉编译了,因为我们要在PC机上编译出可以运行在ARM上的程序,使用gcc编译出的是在PC上运行的程序,所以我们要使用gcc-arm-none-eabi进行交叉编译~ 2.gcc-arm-none-eabi...如果系统可以提示,说明环境变量配置成功,可以开心的使用arm-none-eabi工具链啦~ 3.从裸机工程开始 3.1.硬件说明 这里我使用的是野火霸道开发板,板载芯片为STM32F103ZET6,下载器使用...==下一篇==:Linux开发stm32(二) | 使用openocd下载与调试 (https://blog.csdn.net/Mculover666/article/details/84900665

3.2K31

Linux开发stm32 ③ | 寄存器工程开发

先来回顾一前两篇 Linux开发stm32(一) | 使用gcc-arm-none-eabi工具链编译 Linux开发stm32(二) | 使用openocd下载与调试 前两篇我们介绍了如何创建一个空的裸机工程...然后将其转为bin格式或hex格式,使用openocd下载,最后编写了一个makefile雏形,并成功点亮了一个LED~ 但是这个LED我们是通过指针直接操作寄存器地址来完成的,接下来,我们在此基础上,引入stm32...头文件,其中包含了寄存器的宏定义,也就是使用寄存器进行开发~ 1.创建寄存器工程 首先将上一节中创建的裸机工程00-template-reg复制一份出来,改名为01-led-reg: ?...头文件不用编译,但是要注意 在编译含有该头文件的源文件时,如果头文件和源文件不在一个文件夹里,需要用-I(大写i)参数声明头文件路径; 头文件经常通过判断用户是否有宏定义来进行一些选择编译,可以使用-D

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

Linux开发stm32 ④ | 标准固件库工程开发

,这样一来既提高了开发效率,也减少了代码量,如果还不能在MDK里熟练使用固件库编程,建议先补基础~接下来,我们在上一节寄存器工程的基础上,添加固件库,使用固件库进行开发。...支持库 libraries:stm32固件库中的外设驱动库 user:存放用户自己的文件 doc:存放说明文档 ?...其实文件虽然多,但是仔细理一会发现可以分为以下几步: 找到全部的c文件; 将每个c文件编译为目标文件,不进行链接; 将所有的目标文件一起链接,生成可执行文件; 下面一步一步来~ 首先如何找到所有的c文件呢...可以在c文件全部使用相对于makefile的相对路径,显然这是最笨的办法,因为这么多文件,不可能一步一步添加,但是,在linux可以使用find命令来寻找目录下的文件,所以我们使用find ./ -name...这里我们的makefile就完成了,如果可以的话,还可以使用#添加必要的注释进去,最后进行一优化,让它默认生成bin文件和hex文件: ?

1.5K20

stm32可以Linux操作系统吗?

第一时间看干货文章 1 STM32是一款单片机,它由意法半导体公司制造。...值得注意的是,Cortex-M的处理器没有内存管理单元MMU。 2. 内存管理单元 MMU 内存管理单元简称MMU,它负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查。...图5 shell 2中的bash地址 既然是多进程依赖了内存管理单元,那么在使用嵌入式linux时只开一个进程可以吗?肯定是不可行的!...由于Cortex®-m处理器没有内存管理单元,因此跑不了linux系统。任何事情都不是绝对的,如果你重写了linux内核且搭配足够大的内存芯片,从理论上来说是可以省掉MMU的。...咱还是留个心眼吧 干货 | 详解 stm32 在线 IAP 升级 如何搭建一台永久运行的个人服务器?

4.2K30

Linux应用开发基础

应用程序开发方式 ? 在Linux开发应用程序可以调用两种接口来实现,一种是直接调用系统调用接口,另一种是调用库函数来实现。 1、什么是系统调用?...Linux环境, 使用的C库一般都是glibc, 它封装了几乎所有的系统调用, 代码中使用的“系统调用”, 实际上就是调用C库中的函数。 因为C库函数通过系统调用来实现,库函数对上层提供了C库接口。...实例:文件操作 Linux下文件操作应用程序结构如下: ? (图片来源:野火Linux开发实战指南) Linux,“一切皆文件”。...lseek 函数可以用与设置文件指针的位置,并返回文件指针相对于文件头的位置。...相关参考书籍: 《Linux环境编程:从应用到内核》 《野火Linux开发实战指南》 《嵌入式Linux上的C语言编程实践》 ?

2.7K40

Linux可以替换运行中的程序么?

今天被朋友问及“Linux可以替换运行中的程序么?”,以前依稀记得Linux可以的(而Windows就不让),于是随口答道“OK”。...查了查资料并动手分析了一,找到了比较满意的解释。cp并不改变目标文件的inode,事实上它的实现是这样的: # strace cp test2 test  2>&1 | grep open....这也可以解释为什么cp的目标文件会继承被覆盖文件的属性而非源文件。...不过想想也可以宽恕,毕竟ld也是用户态程序,没有权利去锁定inode,也不应与内核的文件系统底层实现耦合。 到这里都还算在情理之中,看起来Linux也都处理的很好。...;“rm & cp”与“cp覆盖”背后所隐藏的底层差异却可以成为你的救星。

6.3K20

WindowsCygwin可以使用哪些Linux命令

WindowsCygwin可以使用哪些Linux命令 目录 我们先来看下Cygwin安装后的目录结构,如图所示: 注:笔者的Cygwin安装在C盘根目录下。...没错,在bin目录下,已经实现了Windows和同linux同名的各种常用的命令 也就是说,在linux用到的命令,Cygwin基本都是支持 常用的命令 目录切换命令 #切换到当前目录下的dir目录...#切换到用户目录,比如是root用户,则切换到/root cd ~ #进入D盘 cd D: #进入带空格的目录,需要用引号把名称引起来 cd "C:\Program Files" 文件操作...–av soure_dir target_dir #文件改名 mv source target #用vi来编辑文件file vi file 在本文中就分享文件和目录操作常用命令,其他命令大家可以在...bin找到,然后只需看对应的linux命令的用法即可

3.1K50

Linux搭建Android开发环境

上一次说到在window搭建Android开发环境,总体比较简单。这一次就说说在Linux搭建Android开发环境,这里主要以很流行的Ubuntu 操作系统为例,其他的大同小异。...准备工作 其实准备工作和上一篇的window搭建的差不多,这里不再进行说明,请参见Window搭建Android开发环境 需要注意的是JDK以及Eclipse要下载Linux版本的....然后就可以安装了,执行sudo ./jdk-6u20-linux-i586.bin就开始安装JDK了,遇到协议和同意协议的时候回车或者输入Y回车即可。 安装好后我们就可以开始配置环境变量了。...Eclipse的安装 ADT的安装 SDK的API,DOC的下载 这些和Window下一样,可以参考Window搭建Android开发环境 小结 linux和window的配置步骤基本上一样,都是下载软件...,配置环境变量等,linux的难点还是对于shell命令的掌握以及对于环境变量的配置,说白了还是对于linux系统掌握的程度,是否能熟练使用?

3K10

STM32高级开发——使用VS Code搭建STM32开发环境

,我尝试过各种各样的开发环境,而在最近一段时间的开发中我使用了Visual Studio Code来作为代码编辑器,其优异的工程管理,超快的启动速度,各种各样功能强大的插件,使我立刻爱上了这个文本编辑器...但是在开发中来来回回在编辑器和Keil等IDE之间来回切换对我造成了不少不方便,另外由于希望能够在windows使用gcc工具链开发,所以我尝试使用插件来完整的在vscode上搭建了一个开发环境。...可以说这是我在windows平台下尝试过的最好用的一种搭配,下面我就来详细讲述一这个环境的搭建和基本使用方式。...,把有选择的那页全部勾选就行,这样就可以很方便的在文件夹目录下快速用VS Code打开文件或工程目录了。...settings.json 用于设定工程中 VS Code 的特殊设置 可以设置特定的如代码格式化样式等。

1.1K60

stm32开发教程_单片机STM32

有关stm32F1,stm32F4 固件驱动包的下载,请打开这篇文章: https://blog.csdn.net/xiaoeleis/article/details/105789061 STM32开发实战...上一段话包含两层意思:1、在不熟悉STM32的情况,如何入手学习相关的技术知识。2、在不熟悉STM32的情况,作为公司在职开发人员,如何快速进入STM32相关的项目开发工作中,保证开发效率。...3、在不用手册,通过观察CubeMX图形配置部分,然后明确具体有关时钟总线,外设关系的情况,就可以找到代码的问题所在。...然后参照上图详细总结一系统时钟的关系如下: 其中40kHz的LSI供独立看门狗IWDG使用,另外它还可以被选择为实时时钟RTC的时钟源。...另外,STM32可以选择一个时钟信号输出到MCO脚(PA8)上,可以选择为PLL输出的2分频、HSI、HSE、或者系统时钟。   系统时钟SYSCLK,它是供STM32中绝大部分部件工作的时钟源。

73920

LinuxAndroid开发环境的搭建

点击AndroidStudio欢迎界面的Configure的Create Desktop Entry就可以了。...首先要准备好你想要添加字体的.ttf文件,有的linux发行版能够直接打开进行安装,就像下图这样 ? 我只需要点击安装然后重启电脑就能在AndroidStudio中愉快的使用刚刚添加的字体了。...如果不能进行这样的操作,我们也可以通过终端来完成。 ? 之后我们打开AndroidStudio,把Show only momospaced fonts的勾选取消,就可以找到刚刚添加的字体了。 ?...科学上网 linux并没有有图形界面的ssr客户端,但是有一款ss客户端是有图形化界面的。这款软件需要我们搭配一款名为SwitchyOmega的Chrome插件来使用。 ?...之后把插件切换到auto switch模式,你就可以访问外国网站了。 ?

3.5K10
领券