问题标签 [renesas-rx]

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.

0 投票
1 回答
642 浏览

c - 中断和用户代码之间的以下“标志”变量访问是否安全?

我们继承了我一直在关注的针对瑞萨 RX231 微控制器的项目。

这个 uC 只有一条指令可以锁定总线原子性 (XCHG)。

因为处理器是访问 RAM 内存的唯一组件(不使用 DMA 或 DTC),所以要操作与中断共享的用户代码中的变量,在访问时间内禁用中断(在处理器状态字寄存器中),即

但是,也有一些“标志”在没有保护的情况下被共享,它们在中断中设置并在用户代码中通过以下方式轮询:

在这种情况下,我对无保护(通过禁用用户代码中的中断)的理解是:

  • 要读取、设置或清除“标志”,总是使用两条指令,一条将内存地址放入寄存器,一条用于读取/设置/清除
  • 内存地址始终相同,因此可以不考虑
  • 然后每个读取/设置/清除操作都是一条指令,因此访问/操作是原子的

问题是:我的理解正确吗?在这种情况下,这样的“标志”变量访问和操作是否安全?
或者可能有任何可能的错误/错误?

  • 假设使用的编译器和编译器选项始终相同。
  • 假设所描述的操作是访问/操作此类“标志”的唯一方式(设置为 0 或 1,读取(全部以汇编代码显示))(无加法、乘法等)

如果我们需要升级编译器或更改编译器选项怎么办?
如此简单的操作会导致不止“一条指令”吗?

在没有保护的情况下使用此类“标志”的理由过于限制了禁用中断的时间。

查看代码逻辑,预期的行为是您可以请求一次或多次消息,但您只能得到一个答案。

PS。我尝试使用以下附加标签:“cc-rx”、“rxv2-instruction-set”、“rx231”。

0 投票
1 回答
473 浏览

c - 瑞萨电子 GCC 链接器错误与共享代码

我在Renesas 的 E2 Studio IDE (v.6.2.0) 中使用GCC for Renesas 。没关系,但我也使用了 Applilet3 (v.3.08.01.05) 来生成板支持文件和外围驱动程序。

当我尝试构建时,出现以下错误...

项目设置

我在“lib”文件夹中的项目之间共享了一些源代码。main()正如您从错误中看到的那样,我为这些“库”调用了一些初始化函数。 我不明白为什么编译过程有效,但失败了。

我的源代码树布局看起来像这样......

我通过...将库源代码添加到我的 E2 Studio 项目中

  • 在 E2 的“项目资源管理器”窗格中右键单击项目名称
  • 单击Import并选择File System
  • 浏览get-repo-dir并选择(单击)lib文件夹
  • 选中左侧窗格中的框以包含所有文件lib
  • 确保选中“创建顶级文件夹”
  • 点击“高级”
  • 选中“在工作区中创建链接”和“创建虚拟文件夹”和“创建相对于:的链接位置”框是PROJECT_LOC
  • 结束

然后我将库的包含路径添加到构建设置中......

  • 在 E2 的“项目资源管理器”窗格中右键单击项目名称
  • 选择“属性”
  • 选择C/C++ General > Paths and Symbols
  • 确保配置是当前/活动的
  • 选择“GNU C”语言
  • 点击“添加”添加以下内容
    • "${ProjDirPath}/../../lib/my_lib_a"
    • "${ProjDirPath}/../../lib/my_lib_b"
  • 申请
  • 验证这些路径在C/C++ Build > Settings > Compiler > Includes

所以在 E2 Studio 中,Project Explorer 显示..

任何想法为什么我会收到链接器错误?

0 投票
1 回答
792 浏览

user-interface - Yocto 3.9.0 上的 ROS 支持

我最近购买了一个 Renesas R Car M3 板,它在通过 Yocto 项目构建的嵌入式 Linux 映像上运行。我们目前使用的是 Yocto 3.9.0。我们期待在这个嵌入式 Linux 上实现 ROS 动力学库。Yocto 项目是否支持这些库?如果是这样,是否有任何特殊的过程来安装和运行它们,或者它是否像普通的 Linux 发行版一样工作?

0 投票
2 回答
561 浏览

linux - R-Car M3 MMC 初始化失败

最近我买了一个 R-Car M3 开发板。按照 elinux.org/.../Yocto-Gen3 上的步骤,我已经使用 YOCTO 3.9.0 成功构建了嵌入式 Linux 映像

我还按照 elinux.org/.../M3SK 上的步骤更新了主板的固件。

现在我正在尝试从 SD 卡启动 Linux 映像,但是当我打开我的板时,我收到错误“MMC init fail”。我知道我可以访问 SD 卡并加载保存在那里的图像。但是当尝试从 SD 卡启动时,它会停止启动并显示以下消息“mmc0:初始化 MMC 卡时出现错误 -110”

尝试启动时似乎出现此错误是因为板无法初始化 mmc。有没有人面临同样的问题?有人可以帮我解决吗?

引导日志

0 投票
0 回答
586 浏览

opencv - 在运行交叉编译的 cpp 二进制文件时运行 poky 2.1.3 的 h3ulcb 中未处理的 2 级转换错误

yocto build 2.23 成功并启动了我的 Renesas h3ulcb ,使用构建系统上的 sdk 交叉编译了一个 opencv 应用程序(2.4.13.7),当尝试在 Renesas 上执行交叉编译的二进制文件时,出现以下错误。

但是,交叉编译和应用程序在 ubuntu 16.04 上运行良好时没有错误,但是在运行 poky 2.1.3 的 h3ulcb 中出现以下错误

main_ 是交叉编译的可执行文件

谁能帮我调试这个问题?提前致谢

0 投票
1 回答
272 浏览

memory - IAR 无法在某行设置断点

我正在为瑞萨使用 IAR。我面临的问题是,我无法在几行设置断点。尽管我多次重新编译并加载它,但我无法在这些行设置断点。如果我查看映射文件,我找不到为这些静态变量分配的任何内存,我无法设置断点。没有分配内存有什么原因吗?

谢谢

0 投票
1 回答
33 浏览

memory-management - 通过 SPI 进行外部存储器数据复制——速度

任何经验似乎仍然不足以回答串行通信总线中出现的那些奇怪问题。我们正在尝试将数据从外部闪存复制到 SRAM。以下是我们如何配置系统的详细信息。

  1. 控制器:RH850 (D1M1),PLL 速度为 60MHz
  2. 外部闪存 (IS25LP128)
  3. SPI 速度:5MHz(使用示波器观察的时钟)
  4. 数据大小:4 MB

现在,理论上,如果我的 SPI 以 5MHZ 运行,它应该复制 5MBits/Sec。我们正在尝试复制 4MB,因此基本上它将是 32 兆位。所以理论上,我们的传输应该需要大约 7 秒。好的,我们有一些隐含开销。我的驱动程序代码每次读取调用最多只能接受 64Kb,因此我们选择复制 40Kb 大约 100 次来实现这一点,然后我们在 for 循环中运行它。好吧,让我增加 5 秒的开销(抱歉 RH850!)所以总共12秒;好吧,让我们添加更多缓冲区,使其成为 15 秒的舒适区(最大预期!)。但是当我们运行代码时,完成复制需要整整 40 秒。我们检查了时钟,它是预期的 5MHz,至少它们是连续的。

这里有人遇到过吗?我们可以去哪里看?好吧,我知道我的供应商提供了一些闪存驱动程序可供研究,但在我这样做之前,我想确定一下!任何帮助将不胜感激。

0 投票
0 回答
20 浏览

microchip - 从瑞萨读取数据

我有旧的瑞萨微处理器 R5F21246SN,我需要在芯片内读取这些数据。

我可以做些什么来阅读我需要的工具?

Smok jtag 或 Renesans 开发工具 我需要使用什么?

0 投票
1 回答
35 浏览

c - F0520005: 无法打开源文件“r_bsp_config.h”

我正在使用 Renesas MCU RX65N,我想与其他板进行串行连接,并显示我在 Appwizard 上设计的 HMI,我按照他们在手册中提供的步骤操作,但也无法正常工作。然后找到了有关如何解决它的更多信息,并且代码本身可以工作,但是当我尝试合并两个程序时总是给我错误(个别项目上没有出现的问题),这是我现在得到的错误,并且不知道该怎么做,因为显然它包含在我的项目中,但无论我尝试什么都不会打开,任何人都知道如何解决它或做什么?