问题标签 [soc]

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

c - 用 mman.h 代替 windows 主机

我正在尝试在 DE1 SOC 上构建一个需要我使用 mmap 的项目。我正在使用 Eclipse 在 Windows 机器上进行编码。我尝试使用这个库 - https://code.google.com/archive/p/mman-win32/但是当我尝试添加它时,eclipse由于某种原因在它所在的文件夹中看不到它。有吗解决这个问题的方法?也许通过另一个软件或者我做错了什么?

提前致谢!

0 投票
1 回答
269 浏览

microcontroller - 从 SRAM 启动

我正在阅读微控制器的规格。在 Booting 中,他们提到了三个选项。1.Main Flash 2.System Memory 3.Embedded SRAM Memory。前两个内存是非易失性内存,因此您输入代码并开始启动。但SRAM是易失性存储器,断电时代码会被擦除。那么 SRAM 用于引导有什么用呢?在许多博客中,都建议使用 SRAM 进行引导。

0 投票
1 回答
962 浏览

fpga - 如何驱动 Xilinx 的 DDS 编译器 IP 内核

我完成了Anton Potočniks的红色火龙果板介绍指南,现在我可以将命令从 SoC 上运行的 linux 机器发送到其 FPGA 逻辑。

我想进一步修改项目,以便我可以控制通过红色火龙果的 DAC 传输的信号的相位。第一个 GPIO 端口的一些引脚(从 7 到 1)仍未使用,因此我开始从操作系统中设置它们并使用红色火龙果的 LED 来确认它们正在设置,而不会干扰 Anton Potočnik 的“高带宽”功能平均器”。

然后,我将DDS_compilers 的相位偏移可编程性设置为“流式传输”模式,以便可以使用当前控制红色火龙果 LED 的位动态配置它。我使用了一些切片将我的信号连接到AXI4-Stream Constant IP 内核,该内核反过来驱动 DDS 编译器。

我目前的设置

不幸的是,DAC 只是给我一个 500 mV 的恒定输出。

我为 DDS 编译器创建了一个带有测试平台的新项目,因为综合需要很长时间,并且无法让我深入了解正在发生的事情。

来自包含 DDS 编译器的测试平台的仿真结果

不幸的是,DDS 编译器的所有输出信号都是未定义的。

我的问题:

我做错了什么,如何继续控制 DAC 的相位?


编辑1;是我的测试台

IP核配置如下,所以我提供的很多控制信号应该都不需要了:

IP核配置


编辑2;我将表单的声明更改m_axis_data_tready => '0'm_axis_phase_tready => m_axis_phase_tready_signal. 我还查看了调用的包装文件dds_compiler_0.vhd,发现它同时将m_axis_phase_treadym_axis_data_tready视为输入。

我的模拟结果保持不变......

我的新测试台可以在这里找到。


EDIT3:Vivado 只是给了我旧的模拟结果——创建一个新的测试平台,删除下面的文件<project_name>.sim/sim_1/behav/xsim/simulate.log并重新启动 vivado 解决了这个问题。

我注意到包装文件 ( dds_compiler_0.vhd) 只有五个端口:

  1. aclk(在)
  2. s_axis_phase_tvalid(在)
  3. s_axis_phase_tdata(在)
  4. m_axis_data_tvalid(出去)
  5. m_axis_data_tdata(出)

所以我删除了所有不必要的控制信号并获得了新的模拟结果,但我仍然没有从 dds_compiler 收到任何有用的输出: 无控制信号

相应的测试平台可以在这里找到。

当我包含控制信号时,我也没有得到任何有效的输出。 带控制信号

相应的测试平台可以在这里找到。

0 投票
0 回答
80 浏览

linux-device-driver - 如何将用户空间数据传递给 dmaengine 客户端使用调用?

[编辑]

我有一个带有 fpga (SoC) 的 arm64 板。

任务很简单:

  • 可以将数据从/到“用户空间”区域(应用程序)传输到/从“内核空间”物理内存(设备内存 = fpga regs),有和没有 dma 支持使用(流式传输类型)。那个 dma 在板上(ZynqMP / GDMA)。

我将有几个设备 - 在 fpga 和外部,应该使用这种通信,但现在我只使用 fpga-ddr4 内存区域。

现在我看到了下一个逻辑流程:

  • 一些初始化(dma 参数等);
  • ioremap() 一个 fpga 设备区域;
  • 制作一个缓冲区(通过 kzalloc() 或其他) - 这个缓冲区我应该通过 mmap fops 给美国;
  • 从缓冲区制作一个分散列表(下面的伪代码);
  • 使用 scatterlist 和 dmaengine 来传输数据;

现在我误解了下一个 - 目的地如何或在哪里控制?我的意思是,我已经在 RAM 中分配了缓冲区,从中创建了 scatterlist,并通过 dmaengine 函数的参数给出了这个列表以进行传输。但我没有设置/使用 ioremapped 设备内存区域来保存这个缓冲区数据!这个 dma 是否仅适用于适当的 RAM 内存区域,我应该将缓冲区复制到设备区域?或者,我应该使用 ioremap 区域作为缓冲区吗?是正确的流量吗?请解释一下我的错误?

0 投票
1 回答
60 浏览

linux - sysfs_create_group() 不删除属性

我正在尝试在我的 SoC (Zynq 7000) 的 FPGA 部分中为 DMA 设备编写驱动程序。通过调用sysfs_create_group我的probe()函数,我可以为我的每个设备创建一个属性。该属性是在/sys/devices/soc0/fpga-axi@0/XXX.dmaXXX 是我的三个 DMA 的地址的位置创建的。

现在,我正在调用sysfs_remove_group我的remove()函数。但是,该属性没有被删除,因此当我再次尝试插入模块时内核会抱怨:

这是我的remove()函数的代码:

有什么见解吗?

0 投票
1 回答
342 浏览

embedded - I2C Master在什么情况下将SCL线拉低?

我有一块板作为 I2C 主机。只有一位大师。它连接到两个从站。一个从属设备支持时钟延长,而另一个不支持。在读取或写入事务之间,线路被拉低。有没有可能从机不会拉低线?

0 投票
1 回答
50 浏览

bluetooth - 选择通过 PWM 控制 LED 的蓝牙芯片组有哪些注意事项?

我参与了新硬件 LED 产品的开发,我们正在选择蓝牙芯片组以用于由 iOS 和 Android 应用程序控制的多个产品,至少在未来 3-4 年内。另外我不是开发商,这个项目将与第三方签约。

作为背景研究的一部分,我想从 Stack Overflow 社区的蓝牙编程经验中寻求反馈,更具体地说,是使用自定义固件和用于 LED 的 GPIO PWM?

  • 你遇到过什么样的挑战?
  • 硬件是否有任何细节或功能需要注意?

**编辑:基于第一个答案- 要求:BLE 5 我确实需要 OTA 更新能力 芯片尺寸没有太大限制,塑料外壳可以更轻松地容纳 1 英寸/25 毫米或更小。非高温应用单芯片解决方案,将使用我们的固件进行编程,控制 4 个 PWM 通道非常适合我们的 LED 灯条,避免单独的 MCU 每单位成本(最低平均成本/单位)-体积的重要因素,待定

**质量我自己不能很好地衡量,作为一名设计师而不是经验丰富的程序员:易于集成/支持(开发成本最低) 芯片制造商软件工具的质量 芯片文档的质量

我发现一些与 Raspberry Pi 相关的问题似乎通常很有帮助,但这些问题对我与 BT SOC 相关的功能或支持和文档没有帮助。

**编辑:是的,我们只考虑 BLE,我在下面包含的 NORDIC Semiconductor 链接是 BLE 和 BT 5。

NORDIC 芯片在我的短名单上,它们似乎得到很好的支持,并且能够支持 3x 或 4x PWM 通道,例如 nRF52832 Nordic nRF52832 Spec info。或较新的型号RF5340。有没有人有他们的经验?

我非常感谢有关蓝牙开发注意事项的任何答案。如果需要,我会编辑和澄清。

0 投票
1 回答
231 浏览

numpy - 在基于 ARM 处理器 32 位的 Ubuntu 操作系统上安装机器学习包

目标是在带有 Linux LXDE Desktop(内核 4.5)的 FPGA SoC(DE-10 标准 Altera)的 ARM 32 位处理器上运行基于 pandas 和 sklearn 包的支持向量机分类器代码。将 python 版本更新为 3.7.9,将 pip 更新为 20.2.4,但无法安装 miniconda 和 anaconda。“无法执行二进制文件:执行格式错误”安装 numpy(和 pandas、scipy)会出现错误“无法为使用 PEP 517 且无法直接安装的 numpy 构建轮子”,他们需要 mkl 和 blis 库。mkl 库是从 intel 下载的。运行“bash install.sh”会出现错误“不再支持 IA-32 架构主机安装。无法在系统上安装该产品。” sklearn 和 pandas 代码如何在这个系统上运行?有没有更简单的方法?如何安装 mkl 库?

0 投票
1 回答
355 浏览

linux - 如何将 Linux 移植到带有 Kendryte K210 内核的 MAIXDUINO 板上?

我正在尝试将 Linux 操作系统移植到 maixduino 板上,因为 RISC-V 资源说 Linux 可以移植到 Kendryte K210 内核上。我正在使用来自https://dl.sipeed.com/MAIX/MaixLinux/Firmware的二进制文件,并在我的 Ubuntu 机器的终端中使用 kflash 尝试使用命令 kflash -p /dev/ttyUSB0 将其闪存到板上 - b 115200 -B maixduino Maix-linux-5.6-rc1.bin

之后我得到 'FileNotFoundError' not defined line: [INFO] COM Port Selected Manually: /dev/ttyUSB0 [INFO] 默认波特率为 115200 ,稍后它可能会更改为您设置的值。未定义全局名称“FileNotFoundError”

有谁知道我做错了什么?

0 投票
0 回答
30 浏览

arm - 现实世界的 DRAM 只写应用程序

我很想知道是否有任何现实世界的应用程序包括以下场景:

从所有(三个或更多)A53 内核(或任何其他 Arm 内核)同时对 DRAM 进行兆字节的连续只写操作——在整个应用程序中作为内核的唯一操作。

我问的原因是,我在设计上述操作异常的芯片时遇到了一个特定的场景,所以想探索如果它是有效的如何处理这个特定的场景。

我只能想到 DRAM 初始化。