你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

使用Visual Studio+VisualGDB开发ARM,告别keil  

[复制链接]
Stm32McuLover 发布时间:2016-5-27 20:47
阅读主题, 点击返回1楼
赞 收藏 17 评论68 发布时间:2016-5-27 20:47
68个回答
any012 回答时间:2017-1-4 08:45:45
vs2015太过庞大了吧,相对来说eclipse也挺好的。
5265325 回答时间:2017-1-4 09:19:26
奏奏奏 回答时间:2017-1-4 10:59:24
本帖最后由 奏奏奏 于 2017-1-4 11:01 编辑
4 b1 u0 u- y5 y( F% x' i4 S( i. a( u$ Y0 ^- G; t
问题在于Visual  studio是需要付费的
Stm32McuLover 回答时间:2017-1-4 11:14:01
奏奏奏 发表于 2017-1-4 10:59' @8 f3 D' x, T% v3 C) X
问题在于Visual  studio是需要付费的
% _6 ^* u6 A8 R3 r8 i' s1 [
社区版免费啊
damiaa 回答时间:2017-1-4 11:47:29
奏奏奏 回答时间:2017-1-5 05:36:21
哈佛祖安智 发表于 2017-1-4 11:142 x9 g: n1 ]& V- e
社区版免费啊

2 U& p* D: l1 i: g我仔细查了一下# k4 Z6 ]" F9 p+ U* k/ u0 i% _
微软的Visual Studio使用社区版确实是免费的,功能上够开发用了
# e$ c: [+ w: j, [2 I0 D但是VisualGDB并非免费,首次使用后只能免费试用一个月9 J' E- h3 W. F0 h6 H
官网的原话是  W. M3 ?8 z' m9 O
“You can download a free fully functional trial of VisualGDB. The trial will expire in 30 days after the first run.”
liuyangzys 回答时间:2017-3-6 10:44:55
本帖最后由 liuyangzys 于 2017-3-6 10:50 编辑
' F! N) d5 N& p" R9 q  ^" b) A/ r
" m. p% ~' M! \  ]5 ?求教一个问题啊。我用的板子是stm32f405rg,0x8000000到0x8010000段存着bootloader,0x8010000后存着主程序,那么主程序的工程我应该修改哪些东西来做好这个偏移量?
  1. SCB->VTOR = FLASH_BASE | 0x10000;
复制代码
这个已经在系统初始化设置写了。貌似makefile文件和lds文件还需修改一些东西。
  1. //* Generated by LinkerScriptGenerator [http://visualgdb.com/tools/LinkerScriptGenerator]: [" Y: N  H+ s; I: E, g* k
  2. * Target: STM32F405RG
    - ]& R  t/ x' @. W! o# O3 q- v4 B" s
  3. * The file is provided under the BSD license.+ A- d2 ?% O& n) P9 z
  4. */
    / R# Q" A% ]- t) C
  5. ' M) _1 g6 ?1 l# U" J& |
  6. ENTRY(Reset_Handler)
    ( T) n8 O/ o3 W6 Q3 W+ n6 i

  7. - b: F9 [2 _* r/ d( W& n
  8. MEMORY
    % D1 `+ l0 O/ H+ [3 N- L4 J8 ]/ i
  9. {//* 这里改了一下,应该还有别处需要修改*/6 N. Q* W4 m# v" y! z3 q
  10. FLASH (RX)   : ORIGIN = 0x08000000 + 0x10000, LENGTH = 1M1 I$ q) l% ?7 U0 c
  11.         SRAM (RWX)   : ORIGIN = 0x20000000, LENGTH = 128K
    ; n% F9 K0 d1 U
  12.         CCMRAM (RWX) : ORIGIN = 0x10000000, LENGTH = 64K* M6 N8 a4 \! t! b* k
  13. }* `) a5 C" C& N9 l3 v5 ~2 A

  14. 5 V7 C8 m, c4 @3 R2 k; g1 R6 V
  15. _estack = 0x20020000;! `; h5 i7 G# C7 ^6 t5 A# T( c, h
  16. : d! C! r& I% i! B" A
  17. SECTIONS& h9 r& W- w5 d( c& ?/ v* ~  D8 p
  18. {
    * i" l0 J' _$ s3 i. P
  19.         .isr_vector :
    ( _) }& B; L: Q! f5 T& A+ o
  20.         {8 x) j: x& B3 ~. s4 G7 V
  21.                 . = ALIGN(4);$ k+ p; u0 R8 d' J) \- ~
  22.                 KEEP(*(.isr_vector))7 G( b" w/ X8 ~4 N2 Y  L
  23.                 . = ALIGN(4);2 U- T! W7 x, P) n
  24.         } > FLASH$ x2 f& i- r  g# ^5 f. \
  25. 8 M  _, W  y0 l- Y+ A* A# ?
  26.         .text :, v, \0 O! \4 Y, u: }2 X5 j9 z" J& |
  27.         {$ A5 o8 ^- F. ~$ |) F3 n
  28.                 . = ALIGN(4);; }8 k! @$ s' U6 ~
  29.                 _stext = .;
    , v) g3 }* y1 \% v1 e& I4 m

  30. ' O+ o+ m5 {  @9 u
  31.                 *(.text)9 n; ]; O* ^8 ?: l
  32.                 *(.text*)
    0 L, ?! Z- r3 U3 O- G6 u9 g7 f, P
  33.                 *(.rodata); o5 Q, Q3 G1 s- Q
  34.                 *(.rodata*)
    4 z& `8 e6 c9 j; h  K6 ~, r  V
  35.                 *(.glue_7)5 H# H) u2 e  ^) U2 {
  36.                 *(.glue_7t)5 I$ T2 a5 l0 {9 o6 e2 e
  37.                 KEEP(*(.init))
    ( ^' n2 p$ I* k& U( N3 j/ R$ [$ B' ?
  38.                 KEEP(*(.fini))
    3 w* h5 W7 {+ a" j% r+ i
  39.                 . = ALIGN(4);
      P) s8 U% `- Q' y% w
  40.                 _etext = .;
    9 L5 r* P: W4 S3 p
  41. & s$ T, _  X7 U' U1 B" T' _8 P' R
  42.         } > FLASH- {, I: c" p6 `, C5 m3 c

  43. + z8 R% z9 L1 K0 g
  44.         .ARM.extab :
    " M$ r8 ?) R% s" {+ b) j
  45.         {
    0 m; |6 W$ V) W
  46.                 . = ALIGN(4);
    / `) x& ?/ O: @7 i, D" D
  47.                 *(.ARM.extab)4 e+ E! y: P% a: R/ e
  48.                 *(.gnu.linkonce.armextab.*)+ W1 `9 K, Z7 d2 ?
  49.                 . = ALIGN(4);
    & t9 ^# G2 @" F  w; g
  50.         } > FLASH
    + n. N" H  E6 y5 o
  51. 0 `( c" n; {: m+ D7 e# x0 h7 r
  52.         .exidx :
    ' g. \; L4 W; J) e* n) f% P! x
  53.         {% i' {5 i! ?/ F/ K1 `# D
  54.                 . = ALIGN(4);
    & S4 l9 `$ y  N9 c
  55.                 PROVIDE(__exidx_start = .);% E( b0 I( h4 a
  56.                 *(.ARM.exidx*)- ?$ o% c5 I4 O  p6 M! N
  57.                 . = ALIGN(4);
    " Z( i, N3 F! X" |% m$ c
  58.                 PROVIDE(__exidx_end = .);
    9 ^: P" G0 e+ t2 x  W- V
  59.         } > FLASH$ E8 f% g' R, z3 c' b! [
  60. ! w! M4 Y% [% e; Y5 b
  61.         .ARM.attributes :4 d7 M- R5 q: _; s& c+ O
  62.         {1 ?- s# W( g, p  U$ r
  63.                 *(.ARM.attributes)- p- Q. \* O# e7 ]& B: B
  64.         } > FLASH, u8 M. R" _0 ]; U! k
  65. ( \# Q& F: ]! t5 ~
  66.         .preinit_array :
    # ]# V4 H& g" `5 ^! K5 ~
  67.         {3 X+ j- W! g( U: E# Y
  68.                 PROVIDE(__preinit_array_start = .);
    " w$ y7 L: I% \) O
  69.                 KEEP(*(.preinit_array*))+ e+ ]5 d8 T$ Y/ E
  70.                 PROVIDE(__preinit_array_end = .);
    9 U8 b: d% N, ~( v7 F* I
  71.         } > FLASH
    4 u% h9 W+ H5 P, t( C
  72. . z; y1 Z- s3 r: n; ^% l: u& P, Z
  73.         .init_array :( m  A4 y. z, o
  74.         {
    * ~- ^0 {# e  c
  75.                 PROVIDE(__init_array_start = .);
    . {+ r7 }3 L- G% u4 g' o6 B
  76.                 KEEP(*(SORT(.init_array.*)))) C% V* C/ \4 K% l, _
  77.                 KEEP(*(.init_array*))
    : [0 _2 y% d( W
  78.                 PROVIDE(__init_array_end = .);
    ) e/ w! r4 M! a# t& b
  79.         } > FLASH/ m/ p/ ?8 @) ?
  80. # o3 @4 @+ m5 ^1 J  }
  81.         .fini_array :+ r. j9 w/ I! p" }4 \7 l
  82.         {
    5 |3 i) J' {7 v; B7 j9 ?
  83.                 PROVIDE(__fini_array_start = .);% u7 n; a, Y# Q/ O
  84.                 KEEP(*(.fini_array*))* y7 W8 t5 F) ~" r/ i
  85.                 KEEP(*(SORT(.fini_array.*)))
    # S! S9 J  ]6 P
  86.                 PROVIDE(__fini_array_end = .);
    , f. {$ E% y' H% J, r
  87.         } > FLASH
    , q$ ]7 @' K0 j4 G, x

  88. - K. t) C) ?. O6 a( d2 F
  89.         . = ALIGN(4);, s8 Y$ P( u: J" |- o6 Q
  90.         _sidata = .;3 |1 d$ a  X  _  i( w# F/ S) f/ o

  91. ' ^7 x$ E7 A( [# [) S7 y
  92.         .data : AT(_sidata)4 b% F1 ]; ^* k0 \0 Z
  93.         {* b/ d# i' X8 C7 D$ m+ X
  94.                 . = ALIGN(4);- c; `* O$ U/ C0 n# W" l% s  s# `
  95.                 _sdata = .;
    2 u: w. l+ N1 ], a4 G- A

  96. $ ?) ~) r7 h+ e# n4 J0 r' }4 z
  97.                 PROVIDE(__data_start__ = _sdata);
    - B0 p1 w" q& v1 h& l# p4 ]
  98.                 *(.data)+ f; K0 l- d# U, h
  99.                 *(.data*)
    ; R3 j( p; {, g- u
  100.                 . = ALIGN(4);1 C2 |5 ?$ A/ v3 P- B0 E
  101.                 _edata = .;1 e7 U7 Z3 k+ j4 w  O- ]

  102. $ j1 H4 ?: b% m
  103.                 PROVIDE(__data_end__ = _edata);) x% q9 |. w  q4 X) w3 c- |& i
  104.         } > SRAM
    0 t  g8 W( {5 T, [: P7 j/ J1 r2 E1 r0 k

  105. ; x3 s) H, e2 T' f- o
  106.         .bss :/ d* D0 ?) a* U5 Q: J2 Z6 d
  107.         {
    $ x: v4 g, y) ~/ }* e
  108.                 . = ALIGN(4);
    0 Q9 h; b1 g+ o6 e
  109.                 _sbss = .;+ u' q! y' }* w

  110. : o. ]4 c7 Z& O; c8 S
  111.                 PROVIDE(__bss_start__ = _sbss);
    5 t% k9 X5 x: w6 K6 F
  112.                 *(.bss)
    ; h( b& h' U6 l9 Z
  113.                 *(.bss*)
    + I( z. ^6 Y5 ^7 n3 `7 ]& ]
  114.                 *(COMMON)$ F/ a1 t  K$ U9 L* e! r5 L
  115.                 . = ALIGN(4);1 o2 c/ U0 B% @0 X; b5 u
  116.                 _ebss = .;9 {+ `( f" {5 i5 A" t: h- ~

  117. ) A; H1 j( m! {8 a( K! n! o
  118.                 PROVIDE(__bss_end__ = _ebss);
    ! j3 h( _+ _+ R" j7 M7 S- b
  119.         } > SRAM' E9 D2 T( O4 e. |9 n! X. @: K* s

  120. & b1 d8 i5 E2 A
  121.         PROVIDE(end = .);
    0 w0 F6 [* Q2 S. P# R* X
  122. # U: I! z$ J/ G) u
  123.         .heap (NOLOAD) :: Y$ m: q- n2 i, q% S
  124.         {) ~# b% r, {7 W; E& h* \
  125.                 . = ALIGN(4);/ O( ]# l  m" t" m6 T, N
  126.                 PROVIDE(__heap_start__ = .);6 o( ?6 L: B# S3 F
  127.                 KEEP(*(.heap))( E( L9 `6 c5 e, [$ v6 D
  128.                 . = ALIGN(4);
    4 W5 {; w0 B. [- o, Z& j
  129.                 PROVIDE(__heap_end__ = .);
    5 a* g' W2 @0 p' x- X( E: Y
  130.         } > SRAM
    : G' c( c: V7 z0 @% |

  131. : m* {+ q/ V+ n) S  W7 J
  132.         .reserved_for_stack (NOLOAD) :
    . |# \! C$ g" A1 c& X
  133.         {+ M) c5 u, i! i/ v  b- A
  134.                 . = ALIGN(4);
    # \6 s# x( a' ?$ u1 A
  135.                 PROVIDE(__reserved_for_stack_start__ = .);
    ) x# k+ d3 h) s5 X6 R7 s1 w
  136.                 KEEP(*(.reserved_for_stack))/ y+ x8 U# f7 Z+ W% V$ y
  137.                 . = ALIGN(4);; z, J3 }2 _# ]' q3 A- w# P+ J
  138.                 PROVIDE(__reserved_for_stack_end__ = .);
    2 g) q2 B: d8 T6 G' }' t
  139.         } > SRAM
    $ M6 |4 I& {6 K& h7 H- I
  140. 6 b2 p% a( l3 q' x9 j
  141. }</div>
复制代码
8 w* l7 a! j% |

: t3 p( {( X+ ]1 c4 P6 n( C5 k
donatello1996 回答时间:2017-3-6 11:03:38
项目管理的确秒杀keil,可是崩溃几率和占用资源程度也秒杀keil...我感觉vs唯二的用处就是做网页和写c#
Ian-392967 回答时间:2017-3-11 18:31:29
mfvmv,vx,mvxm,vx,.mvx.ifskfjdksssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssjklvxvvf
sym21ic 回答时间:2017-3-23 13:08:28
STM32CubeMX图形化配置工具
wofei1314 回答时间:2017-3-23 14:13:11
watershade 发表于 2016-5-27 21:33) N/ E2 v2 X& ~& e) D% h6 B
这个看着不错呀,有啥特色,除了用visual studio
$ L  O2 D- T+ ]' C0 _
特色自然就是Visual Studio
ashion 回答时间:2017-6-14 08:35:11
可以帮我看看是什么原因吗?启动调试的时候一直弹出GDB无法附加到进程‘Demo1.elf', 如图所示
QQ截图20170614083520.jpg
alisa123 回答时间:2017-6-14 08:54:06
感觉挺高大上的!谢谢楼主分享
Ian-392967 回答时间:2017-7-8 15:31:52
功能强大就需要电脑配置好啊
sefwin 回答时间:2017-10-11 21:54:41
有没有用visu assist x啊?

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版