本帖最后由 辛昕 于 2014-12-6 01:55 编辑
晚上我又接着看了 我之前寄予厚望的 LibOpenCm3.没想到,连编译都无法通过。而且能发现的情况是,不是小问题。好些头文件的位置完全不对,不是差什么路径的问题。要是逐个逐个改,按道理应该是可以解决,可惜实在太多了,而且做起来遇到了不少麻烦。
于是我开始放弃,中途我又折回去研究过一下 GNU_ARM工具里的例程,打算研究研究makefile要是有一丁点能看懂,理解,修改的可能性就好了。
可是看来看去还是不行......
时间过得很快,当我看到11点多的时候,突然感到很麻烦。想了想,我只不过是想找到一个可以编译真正跑起来的例程,作为一个我研究通用写法做法的起点而已。我完全可以找一个更简单的例程。只要有makefile和ld就好了。
于是我决定去搜索,我就跑到GitHub上搜索。GitHub上能搜到的不多,所幸(当然,如果是不幸的话,我就会通过其他途径继续搜索)。
所幸,我居然找到一个 stm32f3 discover的例程!我手头恰好有这个板子,而且我就一直在这个上面玩gnu_arm的尝试。
找这种单纯例程的好处是,不像 libopencm3或者gnu_arm这种一样,因为它们的定位是通用,因此相关的makefile或者ld文件就会显得比较复杂,我作为一个入门的看起来会非常痛苦。甚至连编译都成问题(刚才已经试过了)
果然,我马上下载下来,打开编译,噢yes!编译通过,成功了。为了验证果然能用。
我打开程序,这才发现原来这个程序居然还是官方释出的例程版本的内容。于是,我把八个LED轮流闪烁改成了四个LED轮流闪烁,然后st-util烧进去,噢yes!!成功!
今晚没时间继续往下倒腾了。只能放到周末什么的了。我先把文件发上来。编译起来很简单。解压文件,直接在根目录下,在msys环境下 make clean
make就可以了。 这个makefile特别好的地方还在于,它直接给你加入了 objcopy转换成bin的命令。你可以直接得到相应的bin文件直接烧写就可以。
另外就是,这个makefile还生成可以用于gdb调试的镜像。
总之,我想,它将是我们学会自己写自己的makefile以及ld,并适应自己的板子,cpu的良好起点!
PS:我在github上没搜到 针对stm32f0(30)的例子,如果你用的是这个你可以到其他地方试试搜索——建议雅虎英文搜索,别用百度中文,百度英文没用,太多乱七八糟的破玩意,没用。
github上还有 stm32f4xx的(但不是discover的版本),或者stm32fvl discover的版本,如果你碰巧有这两个板子,可以下来试试。
随后,我会试图慢慢理解这些makefile ld,然后自己把它改造成可以用于不同芯片的版本。
到了那一步,那这个事情才算真的可以告一段落了.
stm32f3discovery-test-c-master.zip
(509.85 KB, 下载次数: 79)
stm32f3discovery-test-c-master.zip
(509.85 KB, 下载次数: 79)