问题标签 [rl78]
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.
pointers - 指向 16 位控制器上的寄存器的指针
如何使用 IAR 的 EWB RL78 编译器在 16 位瑞萨电子 RL78 微控制器上声明指向具有 20 位地址的寄存器的指针?
前任:
以上不起作用,因为指针是 16 位地址。
c - E2 Studio 调试
我在使用 E2 Studio 和 CCRL 工具链调试简单文件时遇到问题。我正在使用 E1,目标设备是 RL78/L13 80 引脚。我收到以下消息
而且 E1 被锁定,我必须断开 USB 端口的连接才能重置它。
c++ - 具有拆分地址范围的输出部分
在 RL78 上,有一部分闪存 (0x2000) 被镜像到 RAM 地址空间 (0xF2000)。跳转表必须在镜像代码空间中。这一切都是为了它可以使用近指针而不是远指针。
问题是 .text 刚刚大到足以将 .rodata 推出镜像内存。此外,没有足够的闪过 .rodata 来放置所有 .text。
有没有办法让 .text 分成这些范围:
- 0x00000-0x01FFF - 在此处放置 .text
- 0x02000-0x0???? - 在此处放置 .rodata
- 0x0????-0x0FFFF - 在此处放置 .text
是的,可以创建两个输出部分并在其中单独放置符号。这不能很好地扩展,所以它不是一个真正可行的解决方案。
有没有办法让链接器像这样拆分 .text 部分?
c - RL78 上的热插件调试 - 无法停止执行
HPIEN
我正在尝试通过设置相应选项字节中的位来启用 RL78 MCU 上的热插件调试选项。
当我将 E1 调试器附加到正在运行的目标时,我可以使用 Live Watch 检查 RAM 变量,但是,尝试中断执行会导致“无法强制中断”错误消息:
我正在尝试调试的测试软件是一个简单的无限循环,递增一个变量,切换一个引脚并为看门狗提供服务:
有没有人设法使用断点/使用热插件调试单步执行程序?
c - 汇编中的堆栈指针
我有一个 C 练习从程序集中调用一个函数。“计算三角形的周长”。
我这里有一个汇编代码
我知道“a”将放入 [HL]。但我不知道为什么 b 存储在 [HL+8] 中。谁能帮助我*我正在使用 RL78G14 瑞萨和 cubesuit+ 编译器
c - 嵌入式 C,瑞萨电子 RL78,数据传输
我正在尝试将 10 位数据从 Renesas MCU 发送到另一个 MCU。我使用的是 10 位 ADC,因此传感器数据采用 10 位格式,然后存储在 2 字节变量中。例如:
变量类型:-
当我尝试发送整个两个字节时它工作正常;代码如下:
并且R_UART0_Send()
定义为:
这部分工作正常,我正在从 UART 获取数据并进行进一步的操作。
现在,我想从这个 MCU 发送最少的数据,所以我实施了一些加密,并尝试按照我的加密只发送一个字节。加密背后的想法是:
我将 10 位数据存储在 中data[2]
,因此存储了 8 位,存储了data[1]
2 位data[0]
。data[0]
可能是0
,1
或. 有一个条件,一旦是MCU 将只发送一个字节(即),而不是一直发送整个两个字节。这一直持续到获得任何其他数字(即、或)。我在下面的代码中这样做。2
3
data[0]
01
data[1]
data[0]
0
2
3
其中R_UART0_Send()
定义为:
最初两字节数据是正确的,一旦在发送一字节数据的情况下它仍然是正确的。但是当条件改变并再次开始发送两字节数据时,它开始发送data[0]
不正确。让我用一个例子来解释它:
data[0]
应该是0
, 1
, 2
, 或3
.
所以前两个字节的数据是1,135
,所以它将data[0]
(即1
)存储在变量中check_new
并检查data[0]
更改。在那之前,它只会发送data[1]
.
现在最初它发送,1,135
然后它只发送,data[1]
例如145
,,,,,,,等等。225
254
65
69
67
现在如果它得到一些data[0] = 2
,它应该发送2,data[1]
,但那时它开始发送data[0] = 65
or data[0] = 165
,或其他东西,但不是0
, 1
, 2
, or 3
。你能帮我看看我在这方面做错了什么吗?也许我没有增加地址或其他东西。
c - 头文件中的静态内联函数和 misrac 规则 8.5 问题
我正在使用“IAR RL78”和“RL78-R5F10BGG”微控制器。我还在 IAR 中启用了 MISRA C 2004。
我想将我的功能之一定义为“内联”。这个内联函数应该在各种 c 文件中使用。所以我在我的一个中定义了这个函数
头文件,并将该头文件包含在所有需要该函数的 c 文件中。但我的问题是因为编译后的 MISRA C 8.5 规则。它说:
错误[Pm123]:头文件中不应有对象或函数的定义(MISRA C 2004 规则 8.5)
以下是 common.h 头文件中内联函数的定义:
有什么问题?
有没有办法摆脱这个问题?