问题标签 [stellaris]
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.
c - 使用偏移量在微控制器中获取寄存器完整地址的目的是什么?
我是嵌入式系统编程的新手,并试图走自己的路。使用带有数据表的Stellaris LM4F120 LaunchPad 评估板LM4F120H5QR Microcontroller
,我发现可以获得一些寄存器的完整地址,您必须始终添加偏移量!我不明白它的重要性,因为我们可以直接使用完整地址!
例如配置端口 F(从
0x4002.5000
到 开始0x4002.5FFF
)及其引脚(使用 APB 总线)
- 通过在寄存器中将(位 5)设置为 1 来激活 clk 到该端口
RCGCGPIO
,它的基地址是0x400F.E000
偏移量,0x608
所以完整地址是0x400FE608
- 配置
GPIODIR
它的基地址0x4002.5000
与偏移量的reg,0x400
因此完整地址是0x4002.5400
- 配置
GPIODEN
它的基地址0x4002.5000
与偏移量的reg,0x51C
因此完整地址是0x4002.551C
- 配置
GPIODATA
它的基地址所在的reg,0x4002.5000
因此0x3FC
完整地址是0x4002.50x3FC
如果我能猜到这将是这里的偏移量用于使其不易出错,因为我们可以这样写:
使用偏移量是否会增加可读性并使其更容易和简单,因为我们只需要写入偏移量即可获得所需的寄存器?
更新
我发现基地址比获取寄存器的完整地址更有用。
例如:
GPIODATA
控件0-7 pins
,它有 255 个寄存器,可以让我们单独配置每个引脚,甚至只需向基地址添加偏移量即可配置它们的组合,例如,如果我们要配置打开的红色 LED,Port F
我们直接写入地址base address 0x4002.5000 + offset 0x008
。
c - “(unsigned int *) 0x400253FCU”是 TI Stellaris 微控制器头文件中的指针吗?
背景:
我正在学习嵌入式系统编程。在这个过程中,我了解到“指针”是嵌入式系统最常用的。指针是在 C 中声明的变量,其值是另一个变量的地址。我可以通过取消引用指针来操作/更改这个其他变量的值。
例子:
int *pt
表示这pt
是一个指针变量,能够指向 int 类型的变量。另一方面,指针变量fp
只能存储浮点类型变量的地址。
要将值(地址)分配给指针变量,&
必须使用地址运算符 ( )。
这两个链接对我理解指针非常有帮助:
问题
当我遇到 Stellaris LM4F120H5QR 微控制器的头文件时,我的问题就出现了。该头文件定义了具有内存地址的寄存器位置,如下所示:
当我遇到这种语法时,我很困惑,如果确实“ (volatile unsigned long *)0x400253FC)
”已被定义为指针并且整个句子可以解释如下图所示?
如果这不正确,有人可以解释解释嵌入式系统头文件的寄存器定义的正确方法吗?
头文件的链接 -->这里
stellar.js - 恒星币交换-pathpaymentStrictReceive API 中的问题
我在使用 pathpaymentstrictReceive API 时遇到问题。它工作正常,但由于恒星的一些变化,它抛出错误。交易正在成功,所有交易都记录在恒星区块链上,但无法读取来自恒星交易所的响应。
error1:XDR 读取错误:值 1 的未知 PublicKeyType 成员,堆栈:“错误:XDR 读取错误:值 1 的未知 PublicKeyType 成员\n
python - Python中的配置文件生成
我正在寻找一种在python中为游戏Stellaris生成一些配置文件的方法。
我的目标是为每个生成的 Stellaris 配置文件编写一个 python 文件,加载 Python 文件,执行其中的脚本,然后根据 python 文件的名称将输出放入同一目录中。
因此,对于文件“common/ship_sizes/00_ship_sizes.txt”,我只需创建一个文件“common/ship_sizes/00_ship_sizes.txt.py”,然后系统会找到该文件,打开它,在其中运行脚本(可选地带有一些序言,例如“call gen_output
”,或者不,我不在乎),并将python代码的输出放入“common/ship_sizes/00_ship_sizes.txt”。
目标是能够对配置文件的生成进行编码,而不必自己编写它们。
我绝对可以手动执行此操作,方法是遍历目录树、打开 python 文件、运行脚本、根据文件名重定向输出等。我希望有一种更 Pythonic 的方式来做到这一点。
我要生成的示例:
如您所见,它确实是无聊的样板;在许多情况下,简单的修改需要对许多文件进行大量重写,并且配置文件不允许您在大多数文件中进行数学运算,这意味着我必须在预先计算所有数学的情况下生成常量,这使得调整非常痛苦.
但老实说,这些中的每一个的实际格式并不重要,我可以轻松地编写字典到此代码。我的问题是构建许多这些文件的干净“系统”。
有没有办法可以利用 python 包系统来做到这一点?即,自动加载一组子目录中的所有包而不再次列出它们,或者类似的东西?我的意思是,我不想重写make。