问题标签 [blackfin]

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 回答
468 浏览

filesystems - 文件系统和UART

我有一个带有 UART 的嵌入式系统,我通过 USB 到 RS485 电缆与之通信。我可以通过发送串行命令来读取和写入数据到闪存。设备上的软件是用 C++ 编写的。

我想实现一个文件系统,当我插入 USB 时,我的计算机会识别它,并让我浏览嵌入式设备闪存上的文件。

我该怎么做呢?

0 投票
1 回答
104 浏览

c++ - 内存中的 IEEE 浮点和快速浮点表示

Analog Devices 的 BFF-533 处理器不提供原生浮点支持,但提供浮点仿真。

使用 IDE VisualDSP++,用户可以在高性能浮点和严格的 IEEE 合规性之间进行选择。

据我了解,这两者之间的差异导致内存中浮点值的表示不同,因此我进行了以下测试:

我用这两个选项编译并运行了它,期望在测试数组中看到不同的值,但每次运行我得到的都是相同的:

在此处输入图像描述

有人可以解释为什么我在两次运行中都看到了 IEEE 代表吗?

0 投票
1 回答
150 浏览

c - blackfin bf537 LED 闪烁

下面的这些代码是 blackfin bf537 的 LED 闪烁程序示例,LED 将从右到左闪烁并切换回。/**/

/**/

现在我正在尝试修改代码以完成新功能,我希望它在我按下按钮时从左到右闪烁一次,所以下面有我的代码:/**/

/**/

现在它无法工作或只是闪烁 LED3,我该如何解决?

谢谢

0 投票
1 回答
26 浏览

linux - 下载 bench-2.2.3 文件时出错

我已经下载bench-2.2.3并解压缩,但程序仍然尝试下载它,我怎么能告诉它我有它Centos并且不需要下载?
另外,tux 和 buildroot 的地址也没有!如何更改 bench-2.2.3 的搜索路径?请看下面的图片

谢谢 板凳下载错误

0 投票
1 回答
136 浏览

c - 加载代码 Blackfin 处理器 F527 后 LED 不闪烁

成功构建项目后(在 VisualDSP 中),可执行代码成功加载到 blackfin 处理器 BF527,但 LED 不闪烁。我正在使用 JTAG 与 PC 通信板(包含 BF527 处理器)。给电路板加电后,每个 LED 的颜色都是半红半绿。我犯错了吗?

0 投票
2 回答
89 浏览

c++ - 读取恰好具有良好值的未初始​​化变量

我在 Blackfin 533 处理器上运行的一些代码中遇到了这个错误。

第一次Func()运行时,fooStruct将包含垃圾,但在下一次迭代中,getFoo()偶然返回的旧值仍然在fooStruct.foo.

这意味着第一次运行时,我们正在读取一个未初始化的变量,这是未定义的行为。接下来的迭代呢?那仍然是未定义的行为吗?在嵌入式处理器上读取未初始化的变量时,我们可以期望看到什么样的行为?

0 投票
1 回答
240 浏览

c++ - 带有 tinyfsm 的 C++ 循环类依赖 - 前向声明不起作用

我在使用以下代码时遇到问题:

编译器给出消息:

我很确定这是因为编译器不理解 State2 继承自 Fsm。

有什么办法可以打破循环依赖,或者给编译器相关信息,以便它能够正确编译?

我正在使用 ccblkfn.exe 版本 8.12.0.0(在 blackfin 处理器上工作)

我认为这可能是一个编译器错误,因为这段代码在 g++ 6.3.0 上编译得很好。

0 投票
1 回答
807 浏览

parallel-processing - DSP 中的零开销循环

Blackfin 在循环缓冲区中进行零开销循环。它如何在没有比较或递减计数器的情况下实现迭代次数已完成?

0 投票
1 回答
55 浏览

pointers - C 中 (void*) 57600 的返回值

我正在阅读UART外围设备的源代码,并且有如下功能:

该函数用于连接UART,数字57600为波特率。我不明白的是 的含义(void*)57600

我认为这可能是一个指针和isconst的返回值。当我们使用时,是否意味着我们正在创建一个指向该值的指针?(void*)5760057600(void*)5760057600

为什么我们必须使用(void*)57600

0 投票
0 回答
75 浏览

filesystems - MTDBLOCK1 似乎被嵌入式 Linux 系统上的 SD 卡内容覆盖

背景

我正在维护一个产品,它有一个 Analog Devices ADSP-BF547 Blackfin 微处理器,它运行 ADI 的 2011R1-RC3 uCLinux 发行版,它使用 Busybox。处理器安装一个 SD 卡,它会定期向其中写入一些加密的 TAR 文件报告。注意,uCLinux 适用于没有 MMU 的处理器。

以下是有关 uImage 分区和挂载内容的一些详细信息:

问题

我从外地取回了一些无法启动的设备。U-Boot 报告没有有效的 uImage。我在 uImage 应该在的位置开始时从 U-Boot 读取内存,发现它已大部分被擦除。写入的内容似乎与写入 SD 卡的内容相同。但是,该区域与 FAT 文件系统不同。

我基于以下假设:

  1. 转储的 ASCII 中存在的文件名与我们在 SD 卡上使用的相同约定
  2. 字符串“reports”在转储中,也就是我们在 SD 卡上写入的目录
  3. 报告包含的唯一 ASCII 信息是字符串 REPORTDATA

这是显示这些功能的转储的开头:

当我们构建这些报告时,我们使用 RAM ( /tmp/) 中的临时文件。在将报告复制到 SD 卡并为其命名之前,我们检查 SD 卡是否已安装。最后,我们使用mv命令的系统调用来移动文件。

在我们检查它是否存在并且我试图弹出它之后,我试图立即卸载它。我也尝试在运行mv命令之前立即执行相同的操作。在任何一种情况下,都会打印一条有意义的错误消息,例如:

问题

  1. 损坏区域中的文件系统是否类似于任何东西,例如 tempfs?
  2. 对 的写入/mnt/sd,即mmcblk0p1,怎么会最终出现在mtdblock1甚至没有安装的 NAND 中?

我还没有尝试创建内存外场景。但它在我要尝试的事情清单上。

编辑,这是一个线索

我能够查看写入 NAND 的加密 tar 文件中的一些日志数据。从这个日志数据中,我可以看出设备认为 SD 卡已安装,但在/mnt/sd/reports生成 tar 文件之前该目录不存在。我在多个单位中始终看到这一点。