有在Linux下玩stm32的朋友吗?是用的什么工具呢(硬件和软件)?

2019-12-13 18:27发布

我想用JLink那个linux的测试版,曾经试过,已经驱动上,进到

JLink > _

里面了,

而且用命令已经可以识别我的芯片型号 cortex-m3,可是Download的时候总是出错,失败

所以不知道具体还应该做什么?

还需要什么开发环境吗?用的是什么工具链呢?或者干脆不用JLink直接用串口线?

望不吝赐教~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
librae8226
2019-12-15 07:09
本帖最后由 librae8226 于 2013-7-25 22:42 编辑

抱歉,好久没来看过了。
这些年在一家芯片公司工作,环境一直是linux,包括自己的机器和公司服务器,所以几乎不会用到windows,除了打实况 :P

关于stm32的开发,详细的方法可以参考我们的一个开源项目:
https://github.com/LeafGrass/ousia

这个项目里采用 linux host 作为开发环境,有完整的 build system,可以方便地添加/删减模块。
实现的是一个极其简化的操作系统,有最笨的调度和最简单的内存“管理”,最初就在stm32上进行开发成型的。
整个系统连上USB就可以玩了,类似arduino,不需要其它调试设备,只有第一次使用的时候需要烧写一遍bootloader。因此开发也变得非常方便。
相信对于初级阶段的学习非常合适。

有需要的朋友可以随便拿去用,pitolan大大曾教我们饮水思源,非常乐意帮助后来的同学,有问可以直接邮件联系我:
    我的论坛名字@gmail点com

这里把 README 内容贴出来:
  1.         Ousia
  2. =======================
  3. COPYRIGHT (C) LEAFGRASS


  4. Introduction
  5. ------------
  6. "Ousia" is picked from Greek.
  7. Mainly intend to represent the essence of Real-Time Theory.
  8. Developed following K-I-S-S principle.


  9. Source Tree Architecture
  10. ------------------------
  11. * core/
  12.     Ousia core routines.

  13. * doc/
  14.     Complete documentation of Ousia.

  15. * driver/
  16.     Different kinds of device drivers based on Ousia.
  17.     They are all configurable.

  18. * framework/
  19.     Framework based on Ousia. Such as shell, vfs, etc.
  20.     They are scalable and configurable, either.

  21. * include/
  22.     Header files of main routines of Ousia.

  23. * platform/
  24.     Chip and board specific code, e.g. low-level library.
  25.     Ousia porting code are also placed here.

  26. * project/
  27.     Project source code. Include several sample project instances.

  28. * script/
  29.     Useful scripts used while Ousia developing.

  30. * support/
  31.     Basic supporting stuffs for Ousia developing and building.
  32.     Useful template files are placed here, such as porting code template.


  33. How to Start for Fresh New Environment
  34. --------------------------------------
  35. -   Install toolchain
  36. -   Make
  37.     For a general purpose, these steps are enough, but there are some more
  38.     steps needs to do for each platform.

  39.     As for stm32 on linux host, we use dfu/serial/jtag to upload firmware,
  40.     setup like below:
  41. -   Install Codesourcery toolchain. (e.g. arm-2011.03-42-arm-none-eabi)
  42. -   Install dfu-util/pyserial/openocd (it's up to your preference).
  43.     Ps: In fedora or ubuntu, yum/apt-get install them is ok.
  44. -   Resolve usb or serial access problems.
  45.     (e.g. copy ousia/support/dfu/45-maple.rules to /etc/udev/rules.d/)
  46. -   Install minicom for console print if you want to debug with uart.
  47.     Ps: Default port is /dev/ttyACMx
  48. -   Do 'make' and 'make install'.


  49. Create User Project Steps
  50. -------------------------
  51. -   Create a directory named PROJECT_NAME in folder "project".
  52. -   Add user source code.
  53. -   Create a file rules.mk to specify source code related rules for makefile.
  54. -   Update TARGET_PLATFORM and PROJECT_NAME in main Makefile, then make.

  55. Ps: Refer to existing projects for further detailed information.


  56. Core Developing Steps
  57. ---------------------
  58. -   Choose or create a branch of yourself to work on.
  59. -   Update source code, include those version related strings.
  60. -   Modify related Makefiles and configuration files.
  61. -   Build then do some testing on this branch.
  62. -   Commit it.
  63. -   Tag a new one if a new version is commited.
  64. -   Push this branch to remote repo.
  65. -   If this is a release version, update Ousia Release Notes.


  66. Porting Steps
  67. -------------
  68. -   Create a directory named PLATFORM_NAME in folder "platform", then enter it.
  69. -   Create three files: rules.mk config.mk target.mk.
  70.         @rules.mk: makefile source code related rules
  71.         @config.mk: parameters or flags for toolchains and environment
  72.         @target.mk: rules for building target
  73. -   Create a directory named "port" there then create three files in it.
  74.         @ousia_cfg.h: os scalability related configurations
  75.         @ousia_port.h: header of porting code
  76.         @ousia_port.c: implentation of porting
  77. -   Create other porting related stuffs, such as linker scripts, if necessary.
  78. -   Update TARGET_PLATFORM and PROJECT_NAME in main Makefile, then make.

  79. Ps: If modified porting related code, should not edit directly in "core/port",
  80. do that in specific platform directory instead, e.g. "platform/stm32/port".
  81. Makefile will copy them into "core/port" automatically depend on specific cpu
  82. types.


  83. Build A Different Platform
  84. --------------------------
  85. Only modify the header TODO in root Makefile
  86. -   Assign specific TARGET_PLATFORM and PROJECT_NAME


  87. Download Code to Target Chip
  88. ----------------------------
  89. -   Modify related User Customization Items in Makefile in source tree.
  90.     For stm32, you need to decide which MEMORY_TARGET to use:
  91.     jtag, flash, or ram.
  92. -   Do proper operation on hardware. (i.e. change boot jumper or reset or sth.)
  93. -   Then type 'make install' and it will do everything for you.

  94. Ps: For stm32, there may be a bootloader, 'make bootloader' will download
  95. bootloader code to chip via serial. And for simulation on x86, no code
  96. downloading procedure is needed. See Makefile for detailed information.


  97. Acknowledgments
  98. ---------------
  99. Parts of make system and libmaple stm32 low-level code are borrowed from libmaple.
  100. Thanks to their excellent works! - http://leaflabs.com
  101. Many code are originally come or inspired from Nuttx, a perfect and stable operating system.
  102. Also great appreciations to the contributors! - http://nuttx.org
复制代码上两幅简单的图吧








一周热门 更多>