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

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

[复制链接]
哈佛祖安智 发布时间:2016-5-27 20:47
阅读主题, 点击返回1楼
收藏 17 评论68 发布时间:2016-5-27 20:47
68个回答
奏奏奏 回答时间:2017-1-5 05:36:21

我仔细查了一下
微软的Visual Studio使用社区版确实是免费的,功能上够开发用了
但是VisualGDB并非免费,首次使用后只能免费试用一个月
官网的原话是
“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 编辑

求教一个问题啊。我用的板子是stm32f405rg,0x8000000到0x8010000段存着bootloader,0x8010000后存着主程序,那么主程序的工程我应该修改哪些东西来做好这个偏移量?
  1. SCB->VTOR = FLASH_BASE | 0x10000;
复制代码
这个已经在系统初始化设置写了。貌似makefile文件和lds文件还需修改一些东西。
  1. //* Generated by LinkerScriptGenerator [http://visualgdb.com/tools/LinkerScriptGenerator]
  2. * Target: STM32F405RG
  3. * The file is provided under the BSD license.
  4. */

  5. ENTRY(Reset_Handler)

  6. MEMORY
  7. {//* 这里改了一下,应该还有别处需要修改*/
  8. FLASH (RX)   : ORIGIN = 0x08000000 + 0x10000, LENGTH = 1M
  9.         SRAM (RWX)   : ORIGIN = 0x20000000, LENGTH = 128K
  10.         CCMRAM (RWX) : ORIGIN = 0x10000000, LENGTH = 64K
  11. }

  12. _estack = 0x20020000;

  13. SECTIONS
  14. {
  15.         .isr_vector :
  16.         {
  17.                 . = ALIGN(4);
  18.                 KEEP(*(.isr_vector))
  19.                 . = ALIGN(4);
  20.         } > FLASH

  21.         .text :
  22.         {
  23.                 . = ALIGN(4);
  24.                 _stext = .;

  25.                 *(.text)
  26.                 *(.text*)
  27.                 *(.rodata)
  28.                 *(.rodata*)
  29.                 *(.glue_7)
  30.                 *(.glue_7t)
  31.                 KEEP(*(.init))
  32.                 KEEP(*(.fini))
  33.                 . = ALIGN(4);
  34.                 _etext = .;

  35.         } > FLASH

  36.         .ARM.extab :
  37.         {
  38.                 . = ALIGN(4);
  39.                 *(.ARM.extab)
  40.                 *(.gnu.linkonce.armextab.*)
  41.                 . = ALIGN(4);
  42.         } > FLASH

  43.         .exidx :
  44.         {
  45.                 . = ALIGN(4);
  46.                 PROVIDE(__exidx_start = .);
  47.                 *(.ARM.exidx*)
  48.                 . = ALIGN(4);
  49.                 PROVIDE(__exidx_end = .);
  50.         } > FLASH

  51.         .ARM.attributes :
  52.         {
  53.                 *(.ARM.attributes)
  54.         } > FLASH

  55.         .preinit_array :
  56.         {
  57.                 PROVIDE(__preinit_array_start = .);
  58.                 KEEP(*(.preinit_array*))
  59.                 PROVIDE(__preinit_array_end = .);
  60.         } > FLASH

  61.         .init_array :
  62.         {
  63.                 PROVIDE(__init_array_start = .);
  64.                 KEEP(*(SORT(.init_array.*)))
  65.                 KEEP(*(.init_array*))
  66.                 PROVIDE(__init_array_end = .);
  67.         } > FLASH

  68.         .fini_array :
  69.         {
  70.                 PROVIDE(__fini_array_start = .);
  71.                 KEEP(*(.fini_array*))
  72.                 KEEP(*(SORT(.fini_array.*)))
  73.                 PROVIDE(__fini_array_end = .);
  74.         } > FLASH

  75.         . = ALIGN(4);
  76.         _sidata = .;

  77.         .data : AT(_sidata)
  78.         {
  79.                 . = ALIGN(4);
  80.                 _sdata = .;

  81.                 PROVIDE(__data_start__ = _sdata);
  82.                 *(.data)
  83.                 *(.data*)
  84.                 . = ALIGN(4);
  85.                 _edata = .;

  86.                 PROVIDE(__data_end__ = _edata);
  87.         } > SRAM

  88.         .bss :
  89.         {
  90.                 . = ALIGN(4);
  91.                 _sbss = .;

  92.                 PROVIDE(__bss_start__ = _sbss);
  93.                 *(.bss)
  94.                 *(.bss*)
  95.                 *(COMMON)
  96.                 . = ALIGN(4);
  97.                 _ebss = .;

  98.                 PROVIDE(__bss_end__ = _ebss);
  99.         } > SRAM

  100.         PROVIDE(end = .);

  101.         .heap (NOLOAD) :
  102.         {
  103.                 . = ALIGN(4);
  104.                 PROVIDE(__heap_start__ = .);
  105.                 KEEP(*(.heap))
  106.                 . = ALIGN(4);
  107.                 PROVIDE(__heap_end__ = .);
  108.         } > SRAM

  109.         .reserved_for_stack (NOLOAD) :
  110.         {
  111.                 . = ALIGN(4);
  112.                 PROVIDE(__reserved_for_stack_start__ = .);
  113.                 KEEP(*(.reserved_for_stack))
  114.                 . = ALIGN(4);
  115.                 PROVIDE(__reserved_for_stack_end__ = .);
  116.         } > SRAM

  117. }</div>
复制代码


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
这个看着不错呀,有啥特色,除了用visual studio

特色自然就是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啊?

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版