在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来编译。 支持下,楼主看可不可以分别打个包,这样就有linux版和osx版了. 这个强大了,第一次真正意义上体会到了跨平台的强大之处! 很不错{:biggrin:}{:biggrin:}{:biggrin:} 支持下..mark hyz_avr 发表于 2015-3-14 14:34
支持下,楼主看可不可以分别打个包,这样就有linux版和osx版了.
工具本身加上代码有几百兆呢,太大了上传不方便,大家可以按照我的步骤把windows版的弄到Linux里面。 太赞了,终于能在Mac上用了 虽然不懂,但是感觉楼主很牛逼。 完整开发环境? huangqi412 发表于 2015-3-14 20:21
完整开发环境?
不是的,是一个图形化的生成代码工具,可以根据所选择的硬件配置生成初始化代码,最后生成ide工程文件。 dawanpi 发表于 2015-3-14 21:54
不是的,是一个图形化的生成代码工具,可以根据所选择的硬件配置生成初始化代码,最后生成ide工程文件。 ...
我是说直接编译成可执行文件. 没用,st-link的支持呢? pcwhy 发表于 2015-3-15 01:03
没用,st-link的支持呢?
https://github.com/texane/stlink hyz_avr 发表于 2015-3-14 23:50
我是说直接编译成可执行文件.
不能编译的,需要用ide打开生成好的工程或者手写makefile。 dawanpi 发表于 2015-3-15 13:02
不能编译的,需要用ide打开生成好的工程或者手写makefile。
要运行这个软件必须先安装IDE?只能在IDE里面运行? 感觉好先进的说,黑苹果也可以用上 stm32cube了 hyz_avr 发表于 2015-3-15 14:08
要运行这个软件必须先安装IDE?只能在IDE里面运行?
运行完之后安装ide也可以的。 用cubemx生成TrueStudio工程,然后用我的工具转Makefile https://github.com/baoshi/CubeMX2Makefile java 不是write once debug anywhere么{:titter:} 虽然没看懂,但是感觉很厉害啊{:smile:} 赞赞
页:
[1]