dawanpi 发表于 2015-3-14 12:42:12

在Linux和OS X上运行STM32Cube

虽然论坛里面对STM32Cube褒贬不一,不过对于非windows系统来说,由于ide支持少,因此有一个代码生成工具还是很方便的,而STM32Cube恰恰能满足这个需求。本来用虚拟机的方式运行这个程序,但仔细一看,原来STM32Cube是用java写的,那么可以跨平台的可能性就很大,于是花了一点时间研究了一下,终于成功跑起来了。
STM32Cube的安装目录:
STM32CubeMX.exe
plugins
├── clock.jar
├── filemanager.jar
├── ip
│   ├── adc.jar
│   ├── can.jar
│   ├── dma.jar
....................
│   └── usart.jar
├── ipmanager.jar
├── pinoutconfig.jar
├── power.jar
├── projectmanager.jar
└── updater.jar
.....
可执行文件就是一个exe和一些jar,那么根据经验,这个exe是一个java程序加载器的可能性很大,但是它的文件大小却不小,有7M之多,相比之下eclipse的单纯的加载器还是不到1M的,猜测这个exe是jar+加载器的构造,于是用7zfm打开,果然可以作为压缩包打开,大致看了一下,有很多java类。
那下面的事情就有思路了,首先在windows的命令提示符里面试试:
java -cp STM32CubeMX.exe;plugins\clock.jar;plugins\filemanager.jar;plugins\ipmanager.jar;plugins\pinoutconfig.jar;plugins\power.jar;plugins\projectmanager.jar;plugins\updater.jar;plugins\ip\adc.jar;plugins\ip\dma.jar;plugins\ip\fmc.jar;plugins\ip\genericplugin.jar;plugins\ip\i2c.jar;plugins\ip\ltdc.jar;plugins\ip\opamp.jar;plugins\ip\spi.jar;plugins\ip\tsc.jar;plugins\ip\can.jar;plugins\ip\fatfs.jar;plugins\ip\freertos.jar;plugins\ip\gpio.jar;plugins\ip\i2s.jar;plugins\ip\nvic.jar;plugins\ip\sai.jar;plugins\ip\tim.jar;plugins\ip\usart.jar com.st.microxplorer.maingui.IOConfigurator
成功!STM32Cube弹出来了,打开个之前的工程试试,发现可以正确生成代码,于是跑到Debian Linux里面试:

相同的命令,一样可以用。又在苹果机里面试了一下,同样可用:


最后在.profile里面加上这个可以不必每次都输入很长的命令了:
export STM32_CUBE_ROOT=$HOME/STM32Cube/STM32CubeMX
alias stm32cube="java -cp $STM32_CUBE_ROOT/STM32CubeMX.exe:$STM32_CUBE_ROOT/plugins/clock.jar:$STM32_CUBE_ROOT/plugins/filemanager.jar:$STM32_CUBE_ROOT/plugins/ipmanager.jar:$STM32_CUBE_ROOT/plugins/pinoutconfig.jar:$STM32_CUBE_ROOT/plugins/power.jar:$STM32_CUBE_ROOT/plugins/projectmanager.jar:$STM32_CUBE_ROOT/plugins/updater.jar:$STM32_CUBE_ROOT/plugins/ip/adc.jar:$STM32_CUBE_ROOT/plugins/ip/dma.jar:$STM32_CUBE_ROOT/plugins/ip/fmc.jar:$STM32_CUBE_ROOT/plugins/ip/genericplugin.jar:$STM32_CUBE_ROOT/plugins/ip/i2c.jar:$STM32_CUBE_ROOT/plugins/ip/ltdc.jar:$STM32_CUBE_ROOT/plugins/ip/opamp.jar:$STM32_CUBE_ROOT/plugins/ip/spi.jar:$STM32_CUBE_ROOT/plugins/ip/tsc.jar:$STM32_CUBE_ROOT/plugins/ip/can.jar:$STM32_CUBE_ROOT/plugins/ip/fatfs.jar:$STM32_CUBE_ROOT/plugins/ip/freertos.jar:$STM32_CUBE_ROOT/plugins/ip/gpio.jar:$STM32_CUBE_ROOT/plugins/ip/i2s.jar:$STM32_CUBE_ROOT/plugins/ip/nvic.jar:$STM32_CUBE_ROOT/plugins/ip/sai.jar:$STM32_CUBE_ROOT/plugins/ip/tim.jar:$STM32_CUBE_ROOT/plugins/ip/usart.jar com.st.microxplorer.maingui.IOConfigurator"

对于生成的代码,由于多数IDE都只支持windows,大家可以用eclipse+gcc或者干脆写makefile来编译。

hyz_avr 发表于 2015-3-14 14:34:06

支持下,楼主看可不可以分别打个包,这样就有linux版和osx版了.

落叶随风 发表于 2015-3-14 15:30:24

这个强大了,第一次真正意义上体会到了跨平台的强大之处!

ahfong2006 发表于 2015-3-14 15:57:30

很不错{:biggrin:}{:biggrin:}{:biggrin:}

philix 发表于 2015-3-14 16:03:57

支持下..mark

dawanpi 发表于 2015-3-14 19:18:18

hyz_avr 发表于 2015-3-14 14:34
支持下,楼主看可不可以分别打个包,这样就有linux版和osx版了.

工具本身加上代码有几百兆呢,太大了上传不方便,大家可以按照我的步骤把windows版的弄到Linux里面。

cqsrmxxzyx 发表于 2015-3-14 19:24:16

太赞了,终于能在Mac上用了

brieve 发表于 2015-3-14 19:27:22

虽然不懂,但是感觉楼主很牛逼。

huangqi412 发表于 2015-3-14 20:21:07

完整开发环境?

dawanpi 发表于 2015-3-14 21:54:07

huangqi412 发表于 2015-3-14 20:21
完整开发环境?

不是的,是一个图形化的生成代码工具,可以根据所选择的硬件配置生成初始化代码,最后生成ide工程文件。

hyz_avr 发表于 2015-3-14 23:50:16

dawanpi 发表于 2015-3-14 21:54
不是的,是一个图形化的生成代码工具,可以根据所选择的硬件配置生成初始化代码,最后生成ide工程文件。 ...

我是说直接编译成可执行文件.

pcwhy 发表于 2015-3-15 01:03:24

没用,st-link的支持呢?

dawanpi 发表于 2015-3-15 13:00:58

pcwhy 发表于 2015-3-15 01:03
没用,st-link的支持呢?

https://github.com/texane/stlink

dawanpi 发表于 2015-3-15 13:02:54

hyz_avr 发表于 2015-3-14 23:50
我是说直接编译成可执行文件.

不能编译的,需要用ide打开生成好的工程或者手写makefile。

hyz_avr 发表于 2015-3-15 14:08:33

dawanpi 发表于 2015-3-15 13:02
不能编译的,需要用ide打开生成好的工程或者手写makefile。

要运行这个软件必须先安装IDE?只能在IDE里面运行?

mlnet 发表于 2015-3-15 16:48:24

感觉好先进的说,黑苹果也可以用上 stm32cube了

dawanpi 发表于 2015-3-15 17:14:57

hyz_avr 发表于 2015-3-15 14:08
要运行这个软件必须先安装IDE?只能在IDE里面运行?

运行完之后安装ide也可以的。

bart 发表于 2015-3-15 20:13:08

用cubemx生成TrueStudio工程,然后用我的工具转Makefile https://github.com/baoshi/CubeMX2Makefile

日日♂夜夜 发表于 2015-3-16 14:30:00

java 不是write once debug anywhere么{:titter:}

jeansonm 发表于 2015-4-30 17:39:10

虽然没看懂,但是感觉很厉害啊{:smile:}

3050311118 发表于 2015-5-1 12:38:52

赞赞         
页: [1]
查看完整版本: 在Linux和OS X上运行STM32Cube