问题标签 [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.
filesystems - 文件系统和UART
我有一个带有 UART 的嵌入式系统,我通过 USB 到 RS485 电缆与之通信。我可以通过发送串行命令来读取和写入数据到闪存。设备上的软件是用 C++ 编写的。
我想实现一个文件系统,当我插入 USB 时,我的计算机会识别它,并让我浏览嵌入式设备闪存上的文件。
我该怎么做呢?
c++ - 内存中的 IEEE 浮点和快速浮点表示
Analog Devices 的 BFF-533 处理器不提供原生浮点支持,但提供浮点仿真。
使用 IDE VisualDSP++,用户可以在高性能浮点和严格的 IEEE 合规性之间进行选择。
据我了解,这两者之间的差异导致内存中浮点值的表示不同,因此我进行了以下测试:
我用这两个选项编译并运行了它,期望在测试数组中看到不同的值,但每次运行我得到的都是相同的:
有人可以解释为什么我在两次运行中都看到了 IEEE 代表吗?
c - blackfin bf537 LED 闪烁
下面的这些代码是 blackfin bf537 的 LED 闪烁程序示例,LED 将从右到左闪烁并切换回。/**/
/**/
现在我正在尝试修改代码以完成新功能,我希望它在我按下按钮时从左到右闪烁一次,所以下面有我的代码:/**/
/**/
现在它无法工作或只是闪烁 LED3,我该如何解决?
谢谢
linux - 下载 bench-2.2.3 文件时出错
我已经下载bench-2.2.3
并解压缩,但程序仍然尝试下载它,我怎么能告诉它我有它Centos
并且不需要下载?
另外,tux 和 buildroot 的地址也没有!如何更改 bench-2.2.3 的搜索路径?请看下面的图片
谢谢
c - 加载代码 Blackfin 处理器 F527 后 LED 不闪烁
成功构建项目后(在 VisualDSP 中),可执行代码成功加载到 blackfin 处理器 BF527,但 LED 不闪烁。我正在使用 JTAG 与 PC 通信板(包含 BF527 处理器)。给电路板加电后,每个 LED 的颜色都是半红半绿。我犯错了吗?
c++ - 读取恰好具有良好值的未初始化变量
我在 Blackfin 533 处理器上运行的一些代码中遇到了这个错误。
第一次Func()
运行时,fooStruct
将包含垃圾,但在下一次迭代中,getFoo()
偶然返回的旧值仍然在fooStruct.foo
.
这意味着第一次运行时,我们正在读取一个未初始化的变量,这是未定义的行为。接下来的迭代呢?那仍然是未定义的行为吗?在嵌入式处理器上读取未初始化的变量时,我们可以期望看到什么样的行为?
c++ - 带有 tinyfsm 的 C++ 循环类依赖 - 前向声明不起作用
我在使用以下代码时遇到问题:
编译器给出消息:
我很确定这是因为编译器不理解 State2 继承自 Fsm。
有什么办法可以打破循环依赖,或者给编译器相关信息,以便它能够正确编译?
我正在使用 ccblkfn.exe 版本 8.12.0.0(在 blackfin 处理器上工作)
我认为这可能是一个编译器错误,因为这段代码在 g++ 6.3.0 上编译得很好。
parallel-processing - DSP 中的零开销循环
Blackfin 在循环缓冲区中进行零开销循环。它如何在没有比较或递减计数器的情况下实现迭代次数已完成?
pointers - C 中 (void*) 57600 的返回值
我正在阅读UART
外围设备的源代码,并且有如下功能:
该函数用于连接UART
,数字57600
为波特率。我不明白的是 的含义(void*)57600
。
我认为这可能是一个指针和isconst
的返回值。当我们使用时,是否意味着我们正在创建一个指向该值的指针?(void*)57600
57600
(void*)57600
57600
为什么我们必须使用(void*)57600
?
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 文件系统不同。
我基于以下假设:
- 转储的 ASCII 中存在的文件名与我们在 SD 卡上使用的相同约定
- 字符串“reports”在转储中,也就是我们在 SD 卡上写入的目录
- 报告包含的唯一 ASCII 信息是字符串 REPORTDATA
这是显示这些功能的转储的开头:
当我们构建这些报告时,我们使用 RAM ( /tmp/
) 中的临时文件。在将报告复制到 SD 卡并为其命名之前,我们检查 SD 卡是否已安装。最后,我们使用mv
命令的系统调用来移动文件。
在我们检查它是否存在并且我试图弹出它之后,我试图立即卸载它。我也尝试在运行mv
命令之前立即执行相同的操作。在任何一种情况下,都会打印一条有意义的错误消息,例如:
问题
- 损坏区域中的文件系统是否类似于任何东西,例如 tempfs?
- 对 的写入
/mnt/sd
,即mmcblk0p1
,怎么会最终出现在mtdblock1
甚至没有安装的 NAND 中?
我还没有尝试创建内存外场景。但它在我要尝试的事情清单上。
编辑,这是一个线索
我能够查看写入 NAND 的加密 tar 文件中的一些日志数据。从这个日志数据中,我可以看出设备认为 SD 卡已安装,但在/mnt/sd/reports
生成 tar 文件之前该目录不存在。我在多个单位中始终看到这一点。