问题标签 [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.

0 投票
4 回答
1447 浏览

c - 使用偏移量在微控制器中获取寄存器完整地址的目的是什么?

我是嵌入式系统编程的新手,并试图走自己的路。使用带有数据表的Stellaris LM4F120 LaunchPad 评估板LM4F120H5QR Microcontroller,我发现可以获得一些寄存器的完整地址,您必须始终添加偏移量!我不明白它的重要性,因为我们可以直接使用完整地址!

例如配置端口 F(从0x4002.5000到 开始0x4002.5FFF)及其引脚(使用 APB 总线)

  1. 通过在寄存器中将(位 5)设置为 1 来激活 clk 到该端口RCGCGPIO ,它的基地址是0x400F.E000偏移量,0x608所以完整地址是0x400FE608
  2. 配置GPIODIR它的基地址0x4002.5000 与偏移量的reg,0x400因此完整地址是0x4002.5400
  3. 配置GPIODEN它的基地址0x4002.5000 与偏移量的reg,0x51C因此完整地址是0x4002.551C
  4. 配置GPIODATA它的基地址所在的reg,0x4002.5000 因此0x3FC完整地址是0x4002.50x3FC

如果我能猜到这将是这里的偏移量用于使其不易出错,因为我们可以这样写:

使用偏移量是否会增加可读性并使其更容易和简单,因为我们只需要写入偏移量即可获得所需的寄存器?


更新

我发现基地址比获取寄存器的完整地址更有用。

例如:GPIODATA控件0-7 pins,它有 255 个寄存器,可以让我们单独配置每个引脚,甚至只需向基地址添加偏移量即可配置它们的组合,例如,如果我们要配置打开的红色 LED,Port F我们直接写入地址base address 0x4002.5000 + offset 0x008

0 投票
2 回答
193 浏览

c - “(unsigned int *) 0x400253FCU”是 TI Stellaris 微控制器头文件中的指针吗?

背景

我正在学习嵌入式系统编程。在这个过程中,我了解到“指针”是嵌入式系统最常用的。指针是在 C 中声明的变量,其值是另一个变量的地址。我可以通过取消引用指针来操作/更改这个其他变量的值。

例子:

int *pt表示这pt是一个指针变量,能够指向 int 类型的变量。另一方面,指针变量fp只能存储浮点类型变量的地址。

要将值(地址)分配给指针变量,&必须使用地址运算符 ( )。

这两个链接对我理解指针非常有帮助:

C中的指针基础

指针(计算机编程)

问题

当我遇到 Stellaris LM4F120H5QR 微控制器的头文件时,我的问题就出现了。该头文件定义了具有内存地址的寄存器位置,如下所示:

当我遇到这种语法时,我很困惑,如果确实“ (volatile unsigned long *)0x400253FC)”已被定义为指针并且整个句子可以解释如下图所示?

指针取消引用内存位置

如果这不正确,有人可以解释解释嵌入式系统头文件的寄存器定义的正​​确方法吗?

头文件的链接 -->这里

0 投票
0 回答
46 浏览

stellar.js - 恒星币交换-pathpaymentStrictReceive API 中的问题

我在使用 pathpaymentstrictReceive API 时遇到问题。它工作正常,但由于恒星的一些变化,它抛出错误。交易正在成功,所有交易都记录在恒星区块链上,但无法读取来自恒星交易所的响应。

error1:XDR 读取错误:值 1 的未知 PublicKeyType 成员,堆栈:“错误:XDR 读取错误:值 1 的未知 PublicKeyType 成员\n

0 投票
1 回答
29 浏览

python - Python中的配置文件生成

我正在寻找一种在生成一些配置文件的方法。

我的目标是为每个生成的 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。