Linux下怎样搭建stm32开发环境

Linux下怎样搭建stm32开发环境,第1张

Linux对于开发者来说真的是一个非常好的系统,为开发者来说应该不陌生,通常我们在Windows下开发stm32很方便,有非常多的工具,IDE等支持,同样是 *** 作系统,Linux开发STM32也一点不会差。

Linux下开发stm32也有很多方法:

1.使用makefile

2.使用eclipse

3.使用stm32cubemx+sw4stm32

4....

有大神使用第一种,本人对makefile一知半解,拿不出手。第二种,windows下可以使用eclipse开发,eclipse有linux版本,所以应该也是可以的,不过本人并没有试过。这里要说的就是第三种,当然除了这些,像Mbed之类的在线开发工具,只要有网,无论什么平台都能开发的就不说了。

stm32cubemx相信大家都已经很熟悉了,st推出的基于hal库的图形化配置和代码生成工具,不记得从哪个版本开始,这个工具添加了对linux的支持,st大力发展linux用户的野心昭然可见。除此之外,st还和ac6合作推出了stm32 ode,即sw4stm32,一款免费的可开发stm32的集成开发工具。sw4stm32是基于eclipse开发的,打开后的界面和eclipse基本完全一样,也同时支持windows和linux两种版本,这也说明了第二种方法是可行的。下面真正开始开发环境搭建工作:

1.准备工作

下载stm32cubemx:http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html

下载sw4stm32:http://www.openstm32.org/Downloading+the+System+Workbench+for+STM32+installer

这两个软件都需要j**a运行时环境(JRE),所以需要先安装好JRE,这里就不讲了,百度一下都有。

2.安装

其实这两个软件安装方式做得很类似windows下的安装了,解压双击即可安装,不过既然用了linux系统,就允许我装一下逼,用命令行来安装。

安装步骤:

1.完成前面的下载后得到两个文件

en.stm32cubemx.zip install_sw4stm32_linux_64bits-v1.8.run

首先解压压缩文件包,

unzipen.stm32cubemx.zip

得到

Readme.html

SetupSTM32CubeMX-4.15.0.exe

SetupSTM32CubeMX-4.15.0.app

SetupSTM32CubeMX-4.15.0.linux

四个文件,exe后缀是windows下的安装文件,很熟悉了,.linux后缀就是linux系统的安装文件,此处用这个文件安装,(前面已经说过,可以直接双击安装),直接执行该文件:

./SetupSTM32CubeMX-4.15.0.linux

(如果出错,查看文件是否有执行权限,加上权限后再执行)

效果如图:

此时就会跳出图形安装界面,

这个界面都很熟悉了吧,和windows下一样,按照提示一步一步安装就可以了,甚至可以一路next到底就行。如果双击安装,会直接来到这一步,后面的步骤省略!

到这里,安装就完成了,再安装文件夹下找到STM32CubeMX文件双击,或者通过命令行启动该文件,就可以打开STM32CubeMX软件,见到我们熟悉的界面,使用方法和windows下一模一样,

安装好相应的库之后就可以建立工程了,不过我们还没有开发环境,所以现在先安装开发环境:SW4STM32软件:

执行命令

chmod+x install_sw4stm32_linux_64bits-v1.8.run

给install_sw4stm32_linux_64bits-v1.8.run添加执行权限,可能需要超级权限,切换到root用户或者命令前加sudo执行,然后该文件就有了执行权限(前面多了x,颜色变了)

然后执行文件

./install_sw4stm32_linux_64bits-v1.8.run

开始安装,然后一路next,可以选择自定义安装路径,期间有可能需要输入root用户密码,安装过程和windows基本一样

出现这个界面的时候,恭喜,安装完成了!!!

这个界面和eclipse完全一样的,喜欢eclipse的会比较习惯这个,不过更方便的是直接安装eclipse下的插件。

现在STM32CUBEMX和SW4STM32都安装好了,接下来建一个工程测试一下,手边刚好有一块Nucleo-F429ZI的开发板,就用这块板来测试,用Cube新建工程应该都熟悉了,这里就不详细描述了

一般习惯不勾选Generate Under Root,这样文件结构更合理

生成工程后有这么些文件,然后用sw4stm32打开:

选择File->Import->General->Exist Project intoWorkspace

选择刚刚生成的工程的文件夹,Finish

编译一下工程,没有错误,没有警告,然后添加几行测试代码:

然后编译,运行,就可以看到板子上LD2蓝色LED以1 Hz的频率闪烁,电脑上打开串口助手,就能接收到板子发送过来的测试信息,如下图所示

至此,说明linux下编写stm32程序的环境已经完全搭建成功,并且成功创建了第一个可以运行的测试程序,接下来,就可以愉快的开发自己的stm32应用程序啦

附上出处链接:http://www.eefocus.com/zero99/blog/16-06/386318_752b3.html?=blog

不可以吧。不知道你的STM32是什么型号,至少STM32F1、F2、F3、F4系列的这些都不行吧。其他系列型号的芯片我就不知道了。我觉得主要有几下几点原因.

1、CPU处理速度,这些型号的cpu处理速度不是很高,可能F4的能达到176MHz(我记得好像是这个数,要不就是差不多这个数)速度还好一点,100MHz一下的跑linux系统会显得很慢。

2、RAM空间不足,这些系列的RAM有限,我觉得是不够支撑linux系统的运行。

3、Flash空间问题,虽然NAND Flash的空间足够,能存放linux的内核和文件系统代码。但是NAND Flash中的代码是不能够直接运行,必须复制到RAM空间或Flash空间才能够直接运行,光一个linux的内核小一点的也有1M多,一般的也有2、3M那样,这样庞大的内核STM32根本就装不下。

如果你用的STM32芯片比较高级,那就另当别论。我也不会。

stm32没必要跑linux,毕竟linux系统面向服务器、多媒体、文件系统、网络等比较偏高级的应用,必然需要较大的flash和sram了,而stm32跑linux是非常吃力的,stm32可以考虑uc/os,RTOS等;和s3c2440的最大区别可以说是主频了,stm32 F4系列最高主频144M,而s3c2440就400多M了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8792793.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-21
下一篇 2023-04-21

发表评论

登录后才能评论

评论列表(0条)

保存