问题标签 [truestudio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jtag - Atollic TrueStudio 中调试程序的问题
我设计了一个电路,我在 PCB 上使用 STM32L452RETx 微控制器。这基本上是一个电流传感器。我正在使用 JTAG-20 连接器进行调试。我正在使用 Atollic TrueStudio IDE。
问题是当我通过在调试配置中选择 JTAG 选项在 TrueStudio 中调试程序时,它会给出错误,提示无法初始化 ST-Link 并且找不到目标,但是当我选择 SWD 时没有错误并且它编程成功。在 STM32CubeMx 中,我将调试设置为 JTAG 5 引脚配置,因为我在硬件中使用 JTAG 20。(串行外设-> 系统-> 调试-> Jtag 5 引脚)。程序正在调试没有错误,但串行终端没有输出。串行终端没有给出握手错误。
谁能告诉我这是正确的调试方式(TrueStudion 中的 SWD 和 STM32CubeMx 中的 JTAG),或者我犯了一个错误。
问候,
stm32 - Atollic 无法验证 ST 设备?
尝试从 Atollic TrueStudio 9.3 编程和调试 STM32F103 (Bluepill) 我收到以下消息:
STMicroelectronics ST-LINK GDB 服务器。版本 5.1.0 版权所有 (c) 2018,意法半导体。版权所有。
使用以下选项启动服务器:持久模式:禁用日志记录级别:1 侦听端口号:61234 状态刷新延迟:15 秒详细模式:禁用 SWD 调试:启用
供应商 = 0x55
初始化 ST-LINK 设备时出错。原因:ST-LINK:无法验证ST设备!中止连接。
尝试在 St-Link 实用程序中做同样的事情没有任何问题(也可以擦除和编程):
这可能是什么问题,为什么验证有问题?
Tnx 提前帮助!
c - gcc 弱属性不一致的行为
我在 windows10 的 powershell 中使用 gcc 编译器。gcc 带有 Atollic TrueSTUDIO ide。我这样做的原因是能够从 C 代码创建一个 .exe 文件,以便单元测试变得更容易。
当有一个函数被定义为弱并且该函数在另一个 .c 文件中使用时,我遇到了链接器错误(未定义的对“function_name”的引用)。
同时,如果我使用在 ubuntu 上运行的 arm-atollic-eabi-gcc 或 gcc,我不会收到此链接器错误。
这是一个简单的代码来演示这一点:
你好ç:
弱.c:
弱.h
主程序
创建目标文件和链接:
> gcc -c main.c weak.c 你好.c
> gcc -o main.exe main.o weak.o hello.o
> hello.o:hello.c:(.text+0x7): undefined reference to `iamweak' collect2.exe: error: ld returned 1 exit status
现在我用 gcc-nm 检查了 hello.o 的符号表:
> gcc-nm hello.o
00000000 b .bss
00000000 d .data
00000000 r .eh_frame
00000000 r .rdata$zzz
00000000 吨 .text
u_iamweak
00000000 T _whatever
weak.o 的符号表:
>gcc-nm 弱.o
00000000 b .bss
00000000 d .data
00000000 r .eh_frame
00000000 r .rdata
00000000 r .rdata$zzz
00000000 吨 .text
00000000 T .weak._iamweak。
w _iamweak
U_puts
现在,当我在 Ubuntu 上使用 gcc 时,我说一切正常。符号表也有些不同。
hello.o 的符号表:
纳米你好.o
U _GLOBAL_OFFSET_TABLE_
你是弱者
0000000000000000 T 不管怎样
weak.o 的符号表:
纳米弱.o
U _GLOBAL_OFFSET_TABLE_
0000000000000000 威弱
U看跌
从https://linux.die.net/man/1/nm它说“如果是小写,则符号是本地的;如果是大写,则符号是全局的(外部)。”
所以 iamweak 在 windows10 中是本地的,在 Ubuntu 中是全局的。这就是链接器看不到它的原因吗?我能做些什么呢?弱函数定义也在一些 HAL 库中,我不想修改它们。有解决方法吗?
stm32 - 为什么转换为浮点数会在 STM32F429ZI (App_Fault_ISR) 上遇到硬错误
为什么转换为浮点数会在 STM32F429ZI (App_Fault_ISR) 上遇到硬错误?
我不确定这里发生了什么。我在 Atollic TrueSTUDIO 上使用 Nucleo 板 STM32F429ZI
编码
上次崩溃的程序集
好像是搬家问题
硬故障检测窗口
总线、内存管理或使用错误 (FORCED) 额外细节 尝试执行协处理器指令 (NOCP)
这落在 App_Fault_ISR上,这似乎是一个硬故障
至于配置 Assembler、Compiler 和 C Linker 在设置中启用了 FPU (FPv4-SP-D16) Hardware Implementation selected
c - 在 Eclipse 和 C 中使用 Jenkins - 缺乏示例
我正在尝试将 Jenkins 用作 CI/CB 系统(包括单元测试),使用无头 Eclipse/TrueStudio 进行嵌入式 C。似乎没有很多示例,甚至 Jenkins 站点本身也没有詹金斯文件示例。我以前使用过像 CircleCI 这样的 CI,但这是一次糟糕的经历,因为他们正在从 CircleCI 1.0 过渡到 2.0,而且我使用的具体设置在很大程度上没有材料。我花了 100 多次提交将 Android Studio、Git 和 Firebase 链接在一起。任何人都有我可以查看的基于 C/C++ 的示例 Jenkinsfile 吗?
到目前为止,我已经得到了这个Jenkinsfile
:
我为此使用一台机器,因为该项目规模较小。代码存储在同一台机器上的 git repo 中。我们使用的是经过修改的 Eclipse TrueStudio,它有一个无头模式的 bat 文件。来自 bat 文件中注释的一个示例:
我目前正在同步 git repo 和 Jenkins。
stm32 - STM32调试问题
我正在使用 Nucleo F303RE 板。每当我尝试在 STM32cubemxIDE 中进行调试时。它总是显示启动 GDB 错误失败的错误。我附上了截图
我已经更新了 ST-Link 固件并检查了我的设备管理器。
我也试过禁用我的 Windows Defender。
我还尝试在调试配置下更改频率、接口、自动连接。
如果有人可以帮助我,那就太好了。我在工作中遇到了一个重要的演示。
我也在 Atollic TrueStudio 上尝试过,但仍然没有运气。在此处输入图像描述
谢谢
Atollic TrueStudio 上的详细错误:STMicroelectronics ST-LINK GDB 服务器。版本 5.1.0 版权所有 (c) 2018,意法半导体。版权所有。
使用以下选项启动服务器:持久模式:禁用日志记录级别:1 侦听端口号:61234 状态刷新延迟:15 秒详细模式:禁用 SWD 调试:启用
目标未找到设备
初始化 ST-LINK 设备时出错。原因:在目标上找不到设备。
c++ - c ++中的全局范围变量未正确初始化
我将代码从 stm32f072 移植到 stm32f105。从那以后,我遇到了全局变量的问题,似乎它们没有被初始化。我使用 Atollic TrueStudio 及其编译和构建工具。对于新平台,我尝试转换现有的“eclipse”项目,并从 CubeMx 创建一个新平台。
访问全局对象时出现硬故障。“解决方法”是new
在访问函数中移动语句。调试器显示,即使有 new 语句,全局 var 也是0x00
.
我还使用了一个 std::queue,它有一个size()
of 0xffffffe7
when 还没有插入任何东西,这让我相信这也来自于缺少初始化。
我想解决这个问题,而不是将所有 init 都移到 main 函数的开头作为解决方法。
我的代码看起来像这样:
stm32 - 错误:编译 truestudio IDE 的“SysTick_Handler”的多个定义
请希望寻求帮助。尝试使用 STM32F1 syst_tick 中断。我正在使用 Atollic truestudio 9.3.0。
我有 c++ 文件(tasks.cpp),我在这个文件中声明了中断处理程序,并希望它会覆盖默认处理程序,因为默认值在启动文件中具有属性 .weak。
但看起来很有趣,当我编译时,我收到错误:“`SysTick_Handler 的多个定义”这就是我声明它的方式。
TIM1、2、3、4 的其他中断处理程序在同一个文件中声明,它们工作正常,但 syst_tick 不是。问题,为什么?