设为首页 加入收藏

TOP

使用Free Pascal开发STM32程序(一)
2023-07-23 13:24:53 】 浏览:60
Tags:使用 Free Pascal 开发 STM32 程序

使用Free Pascal开发STM32程序

前言

大部分人都知道嵌入式开发,一般用的都是C语言,但是实际上,除C语言之外还有许多语言都可以开发,本文将介绍使用Free Pascal(简称FPC)开发STM32程序的方法。

你可以进Free Pascal的官网看看,其第一段话就是说这个编译器支持多少处理器多少操作系统的,事实上其支持绝大多数你知道的和不知道的处理器和系统(甚至开发版本还支持龙芯架构的Linux平台),当然本文的主题肯定不是教你怎么用这个编译器给各种各样的平台和架构开发程序,而是讲述如何使用构建其有关STM32的开发环境。

STM32系列是ST公司推出的微控制器(MCU)产品,有诸多的型号,但是所有MCU的内核都是基于Arm公司的Cortex-M处理器内核。对应到Free Pascal来说,其编译目标处理器架构(Target CPU)是Arm,而目标操作系统(Target OS)是Embedded(嵌入式,可以理解为裸机系统)。当然由于各种Cortex-M内核,所以还要区分目标处理器(Target Processor)内核,比如ARMV7M、ARMV7EM等。

目录

开发环境搭建

由于Free Pascal官网并不提供arm-embedded目标的编译器,所以我们需要使用一款叫fpcupdeluxe的软件来安装,同时,我们一般使用Lazarus IDE作为开发环境,可以在官网下载,或者通过fpcupdeluxe安装,也可以自己构建。

个人建议:对于新手或者不想麻烦的,使用fpcupdeluxe安装所有环境就行了;对于已经安装了Lazarus的,可以只安装编译器。

我自己是用fpcupdeluxe安装了稳定版编译器和开发版编译器,同时使用git拉取代码构建了稳定版和开发版的Lazarus。

如果你是使用FPC的老手,估计已经安装了Lazarus用来开发,可以跳过部分内容,如果你熟悉fpcupdeluxe这款软件,也可以部分内容。

注意:由于众所周知的原因,请在安装前确保网络通畅,可以正常访问github.com和gitlab.com这两个网站

其中gitlab主要是安装FPC和Lazarus的时候用到,而github主要是安装交叉编译器的时候用到。

本文会给出一些常见的问题及解决方法,主要是我自己遇到的。

下载使用fpcupdeluxe

fpcupdeluxe的GitHub链接是https://github.com/LongDirtyAnimAlf/fpcupdeluxe,在发布页面,可以看到许多不同的二进制文件,对于Windows系统,我们一般下载32位的(fpcupdeluxe-i386-win32.exe)比较好,当然64位的(fpcupdeluxe-x86_64-win64.exe)也是可以的,这里要注意的是,下载的版本会影响默认生成的编译器版本,当然可以改。对于Linux系统,基本上下64位的就行了,至于是qt5(fpcupdeluxe-x86_64-linux-qt5)、qt6(fpcupdeluxe-x86_64-linux-qt6)还是gtk(fpcupdeluxe-x86_64-linux)就自己看着选。

下载完成后放到一个单独的文件夹,然后运行软件。

第一次运行软件界面

注意第一步先改安装的文件夹,这里的建议是不要改安装的版本(当然如果你要开发版本的话就改trunk),根据需求点Only FPC或者Install/update FPC+Lazarus然后等着吧,这里会有很多问题,我后面会列出来的。

点击左下角的Setup+按钮进入设置界面,这里有很多细节可以说明。

设置界面

如果你安装Lazarus,建议按照图里的加上-O3 -Xs -g-以及去掉Debug的勾,然后勾上左边的两个,否则不用改别的。最后点右下角的OK就行了。

常见安装问题

下面说一说安装时候可能遇到的问题以及一些解决方法。

只要网可以搞定,大部分都不是问题(人家国外的开发者基本上不会考虑到网络问题的,毕竟他们很少懂我们的特色),咱们搞技术的,搞定这些应该都是基本能力。

界面卡死

这个基本出在第一次安装的时候,因为需要下载一些bootstrap的文件,如果你经常这样的话,建议按如下步骤来:

  1. 记住当前正在下载的文件,任务管理器关掉进程
  2. 找到你的安装目录,然后进入fpcbootstrap文件夹,删掉大小0KB的文件
  3. 重新打开软件,点击安装,接着卡死重复之前步骤,或者打开设置挂代理
  4. 或者可以去GitHub给作者提issue,让他想办法加点其他链接

注意,用任务管理器关闭进程,这个软件的代理设置是不会保存的,最好在修改完需要的设置后,关掉软件再重新打开。

只要你能成功一次,以后需要在其他文件夹安装这个,就可以把文件提前复制过去了,这些文件基本上可以用几年。

如果你还知道其他解决办法,欢迎补充。

git clone很久不动

基本上超过半小时一直卡git clone,可以确定是你的网访问gitlab有问题了,建议方法是挂代理,不过要在git里面设置。

HTTP使用:

git config --global http.proxy 127.0.0.1:7890

HTTPS使用:

git config --global https.proxy 127.0.0.1:7890

要取消代理设置,使用:

git config --global --unset http.proxy
git config --global --unset https.proxy

这些设置应该会保存到 C:\Users\用户名\.gitconfig

提示编译失败

这个只有在你选择安装trunk的时候有可能出现,因为开发人员有时候或提交无法编译的代码,这很正常,建议等一段时间再安装/更新,或者你可以去gitlab仓库(链接软件上就有)看代码的提交记录,看流水线的状态就可以判断能不能编译了。

安装交叉编译器

安装交叉编译器

如图步骤所示,到底选armv7em还是armv7m,这个去st官网查你的芯片型号,一般F103的Cortex-M3要选armv7m,而F4系列的Cortex-M4要选armv7em,都有的话依次全都安装了就行。

点击Install compiler之后,第一次安装的话会弹出对话框提示没有需要的文件,然后提示你可以下载,这个要选是,然后它会从GitHub下载所需的文件,所以要确保GitHub网络畅通。

下载使用OpenOCD

OpenOCD全称(Open On-Chip Debugger),是一个用来在嵌入式设备调试的工具。

你可以在官方存储库的发布页面下载最新的Windows二进制文件,如果你需要Linux或者macOS的,则可以去这个页面下载。注意,这两个页面都是GitHub的。

解压到文件夹后,记得配置环境变量,然后在终端用命令openocd就可以使用了,不过你还需要一个配置文件。

配置文件基本写法如下:

source [fi
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Zephyr入门教程 2 线程 下一篇C#开发ESP32E(3)Wifi配置使用

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目