问题标签 [stm32f4discovery]
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.
arm - STM32F4Discovery:接收 CAN 报文
我不知道如何在STM32F4Discovery上接收 CAN 消息。我在 Silent_Loopback 模式下使用它,这意味着所有发送的消息都应该到达 CAN 控制器本身。发送消息时,我得到 Transmit_OK 状态,但是 FIFO 邮箱中没有任何内容。我跳过了 CAN 过滤器配置,以便接收所有消息而不是过滤掉任何消息。我究竟做错了什么?
eclipse - 如何配置 Eclipse、GCC 和 OpenOCD 以与 STM32F4Discovery 板一起使用?
我拥有一个 STM32F4Discovery 板,它包含一个 STM32F4 微控制器和一个 ST-LINKv2 调试器接口。我想在这个设置上做一些简单的 C 编程,并想使用免费提供的工具来做。
以下是我所知道的:
- 可以将 Eclipse 配置为使用各种工具链(例如 YAGARTO 或其他工具链)为各种 ARM 目标进行交叉编译。
- Eclipse 可以使用 GDB 进行远程调试。
- OpenOCD 提供了一个 GDB 服务器。
- OpenOCD(最新版本)同时支持 ST-LINKv2 和 STM32F4Discovery 板(包括该板的脚本)。
这是我不知道的:如何将这些部分组合成一个连贯的整体。我相信所有必要的活动部件都存在,但我不知道如何组装它们。我发现了一些零碎的东西,通常从“安装 Eclipse Indigo”之类的东西开始。是否有简单的教程、步骤列表或要检查的内容?
usb - 有没有人在 ChibiOS 上成功使用 USB 转串口库?
我正在使用ChibiOS/RT操作系统,试图让USB 到串行库工作。我设法将所有文件链接在一起,并与 Yagarto 一起运行。但我似乎什至无法使用 USB to Serial lib 的启动功能。
我正在使用 STM32F4 Discovery 并希望将其 USB 用作与 PC 的连接。我已经使用 IAR 的 CDC 类完成了这项工作,但我想在这个项目中使用 ChibiOS,这一切似乎都过于复杂了。(我使用过 ChibiOS,但只有 UART 和一些端口切换 LED 等)。
你能给我一个启动USB的示例代码吗?我一直找不到任何东西。
linker - IAR 链接器无法识别 .a 库
我正在为 ST 的带有 ARM Cortex-M4F 内核的 STM32F4-Discovery 开发套件开发应用程序。
我在我的应用程序中使用 FreeRTOS,它旨在使用电路板的麦克风和扬声器输出。
我正在尝试使用 ST 的音频播放和录制演示作为设置麦克风 I2S 接口的示例。但是我在这个例子的 PDM 过滤器库上遇到了困难。该库作为.a
文件提供,当我尝试将其复制到我的项目中时,我在链接期间收到此消息:
致命错误[Li004]:文件“C:\Users\Daniel\Desktop\FreeRTOSV7.3.0\FreeRTOS\Demo\CORTEX_M4F_STM32F407ZG-SK\libPDMFilter_IAR.a”不是对象或存档文件
我试着弄乱链接器选项并说要手动添加这个库。但没有结果。有谁知道如何.a
在 IAR 中链接库?
arm - 将项目从 TrueSTUDIO 切换到 CrossWorks 时 memcpy 出现硬故障
我不幸被要求使用 CrossWorks 为 STM32F4 开发板进行开发,而我遇到了一个只有在使用 CrossWorks 构建和运行项目时才会出现的问题。
我正在使用 LwIP 创建一个 UDP 服务器,当我使用 TrueSTUDIO 时它工作得很好。但是,当我在 CrossWorks 下运行它时,ethernetif_input() 中出现了一个硬故障,它在数据包准备好读取时调用。它失败的具体点是它在数据包缓冲区之间移动数据包信息时调用 memcpy() 。
我不知道发生了什么变化——它是完全相同的代码,为相同的目标而构建,但它在 CrossWorks 中中断了。我希望有人能深入了解这个问题的任何部分……如果您对此有任何想法,那就太好了。
谢谢,如果您需要我的任何详细信息,请告诉我!
eclipse - stm32f3 发现 gcc-arm eclipse
有人有 STM32 F3 探索板的工作开源环境吗?有没有人有可以轻松从STM32 F4/F0移植到F3发现的教程?
gcc - 使用 CooCox 在 STM32F4-Discovery 上编译 CHIBIOS
我对 ARM 的编译非常陌生。
我从使用 CooCox 开始。创建项目后,我将所有 CHIBIOS 包含路径添加到项目中。我的代码本身是 stm32F4 发现的默认 Chibios 示例代码。
在编译时,我得到一个没有任何内容的输出文件。
但是,如果我在链接配置中取消选择“丢弃未使用的部分”,我会得到以下信息:
GCC HOME: C:\CooCox\CoIDE\GCC\bin
compile:
[mkdir] Skipping C:\CooCox\Code\Test3\test3_Flash\Debug\bin because it already exists.
[mkdir] Skipping C:\CooCox\Code\Test3\test3_Flash\Debug\obj because it already exists.
[cc] 2 total files to be compiled.
[cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wall -ffunction-sections -g -O0 -c -DSTM32F407VG -DSTM32F4XX -IC:\CooCox\Code\Test3 -IC:\CooCox\Code\chibitest\chibios_2.4.2\boards\st_stm32f4_discovery -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\ports\common\armcmx -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\ports\gcc\armcmx -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\src -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\various -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\kernel\src -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\ports\gcc\armcmx\stm32f4xx\ld -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\platforms\stm32 -IC:\CooCox\Code\chibitest\chibios_2.4.2\demos\armcm4-stm32f407-discovery -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\platforms\stm32\rtcv1 -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\include -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\ports\gcc\armcmx\stm32f4xx -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\platforms\stm32\usbv1 -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\platforms\stm32f4xx -IC:\CooCox\Code\chibitest\chibios_2.4.2\test -IC:\CooCox\Code\chibitest\chibios_2.4.2 -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\ports\common\armcmx\cmsis\include -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\platforms\stm32\gpiov2 -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\kernel\include C:\CooCox\Code\Test3\main.c C:\CooCox\Code\Test3\syscalls\syscalls.c
[cc] In file included from C:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\include/hal.h:39:0,
[cc] from C:\CooCox\Code\Test3\main.c:29:
[cc] C:\CooCox\Code\chibitest\chibios_2.4.2\boards\st_stm32f4_discovery/board.h:57:0: warning: "STM32F4XX" redefined [enabled by default]
[cc] <command-line>:0:0: note: this is the location of the previous definition
[cc] C:\CooCox\Code\Test3\main.c: In function 'Thread1':
[cc] C:\CooCox\Code\Test3\main.c:189:1: warning: no return statement in function returning non-void [-Wreturn-type]
[cc] Starting link
[cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wl -nostartfiles -g -Wl,-Map=test3_Flash.map -O0 -lgcc -lc -lm -lnosys -LC:\CooCox\CoIDE\workspace\test3_Flash -Wl,-TC:\CooCox\CoIDE\workspace\test3_Flash/arm-gcc-link.ld -g -o test3_Flash.elf ..\obj\main.o ..\obj\syscalls.o
[cc] ..\obj\main.o: In function
pwmpcb':
在最后一行之后,文件中几乎每个变量都以相同的方式列出。
现在我知道我的问题与链接器有关,但我不确定在哪里解决它。
也许我需要以不同的方式处理它?修复上述两个警告(分别注释和添加返回)并不能解决问题。
作为背景知识,我希望使用 Chibios 来驱动连接到 stm32F4 的相机和其他设备。如果 CooCox 变得很痛苦,我可以切换到对 makefile 更友好的东西(没有办法导入 makefile!)
此致
c - 为 STM32F4 编译 Makefile 错误
我对 Makefiles 还是很陌生,所以我遇到了一些麻烦。我正在尝试为 STM32F4 编译一些代码,我为 STM32F3 获得了这个 Makefile.common 并且只是更改了工具链和目录以反映我将用于我的开发的那些。不幸的是,我收到了这个编译错误,虽然我已经尝试过广泛地搜索它,但没有什么能帮助我解决它。
这是我得到的错误
制作:execvp:/home/wilfred/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin:权限被拒绝制作:* [startup_stm32f4xx.o] 错误 127
这是我的 Makefile.common 的代码。谢谢!
microcontroller - 为 EEPROM 仿真 STM32F4 保留闪存位置
我想在扇区 2 和 3 中模拟 EEPROM,以保持低擦除时间(小 16kb 扇区)。我的问题是如何保留这个闪存空间以防止编译器将程序代码放置在这些扇区中?
谁能指出我到目前为止没有发现任何有意义的信息?
谢谢
gcc - 带有 gcc 的 STM32F4 上的 FreeRTOS 堆栈损坏
我试图让 FreeRTOS 在我的 stm32f4discovery 板上运行。我已经安装了召唤臂工具链并创建了一个 Makefile 来编译我的代码。这是生成文件:
我修改了 FreeRTOS 演示项目的文件夹 CORTEX_M4F_STM32F407ZG-SK 中的项目(删除现有任务并创建我自己的)。这是主要功能:
我在 FreeRTOSConfig.h 中将 configMINIMAL_STACK_SIZE 配置为 4096,并且代码运行良好,因为任务计划程序启动并调用了我的 SampleTask0 函数。下面是任务代码:
任务 1 的功能与任务 0 几乎相同,只是它打印不同的信息。这些代码可以编译,并且在我将二进制文件写入我的开发板后,SampleTask0 无法按预期工作。通过 USART3 发送字符的 DebugPrintf 函数只打印“Tas”,然后一切都停止。我用gdb跟踪代码并逐步执行代码,打印了“Task 0 running”,但是当它返回到任务函数时(在“while(delay){delay--;}”之前)发生错误:
无法访问地址 0xa5a5a5a5 的内存
在 main.c 中的 SampleTask0 (pvParameters=0x0)...
根据 FreeRTOS文档,每个任务的堆栈在创建时填充 0xa5 字节。我认为堆栈可能有问题。我已将 configCHECK_FOR_STACK_OVERFLOW 设置为 2 以启用堆栈溢出检测,但发生这种情况时尚未调用我的钩子函数。
CORTEX_M4F_STM32F407ZG-SK 中的 startup_stm32f4xx.s 是为 EWARM 工具链创建的,我将其替换为我从 ST 网站下载的 STM32F4-Discovery_FW_V1.1.0 中的启动文件。所以它可能会破坏堆栈,但我不确定这一点。有人对此有想法吗?