问题标签 [arm9]

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

bootloader - arm9 引导加载程序 IAR

我正在寻找 Atmel Arm9 的引导加载程序。

Atmel 有一个“安全可靠的引导加载程序”,但它适用于 ARM7,而且已经很老了(不使用最新的 IAR 工具链构建)

我假设这必须在之前完成并且不想重新发明轮子

如果引导加载程序适用于最新的 IAR 嵌入式工作台(版本 6.x),则奖励将是

如果有可用的商业产品 - 那也很好。

佩德罗

0 投票
1 回答
851 浏览

mfc - 从注册表中读取 DEVMODE 结构

我正在做一个项目,我需要为设备的打印操作进行编程。它有WIN CE 6.0。我正在使用 Visual Studio 2005 (MFC)。打印机可以是任何 PCL 兼容的打印机。

目前,为了获得打印机 DC,我正在使用 CreateDC()。

使用此调用我能够成功打印。在这里,我将 DEVMODE 特定的输入参数作为 NULL 传递。但是为了更好地控制这些打印操作,我需要将 DEVMODE 信息传递给 CreateDC()。

为此,我计划按照上面的说明调用 CreateDC() 以在注册表中生成 DEVMODE 特定信息。然后我可以将注册表中的 DEVMODE 数据读取到局部变量中,仅修改此变量的必要字段,并将此变量传递给 CreateDC() 以获取打印机 DC,以便进行实际打印操作。

我避免直接​​初始化 DEVMODE 结构,因为我没有关于 DEVMODE 的某些字段的足够信息,例如 dmDriverExtra。

我需要知道如何安全地从注册表中读取像 DEVMODE 这样的结构?任何相关的例子都会很有帮助。

亲切的问候, Aftab

0 投票
1 回答
115 浏览

c - Embest AT91SAM9G45 板与 OPENCV 的兼容性

嗨,我是嵌入式领域的新手,请告诉我 OpenCv 文件是否与 Embest AT91SAM9G45、ARM9 板兼容。

0 投票
1 回答
1341 浏览

embedded - u-boot内进入低功耗模式,中断唤醒

我尝试在按下按钮时在 uboot 中实现低功耗“深度睡眠”功能。按钮按下由 linux 处理,并设置了一个魔术代码以使 u-boot 意识到保持睡眠不要重新启动"

不幸的是,无论是否使用热旋转,功耗都不会改变(将功耗测量与芯片相关联)。除此之外,如果我使用等待中断 CP15 指令,它永远不会唤醒。该按钮连接到其中一个 GPIO。该平台基于 Marvell Kirkwood ARM9EJ-S。

我手动启用了一些,并为以及CONFIG_IRQ_*创建实现,我认为这是我的问题。arch_init_irq()do_irq()

根据CP15指令文档,触发中断就足够了(无论是否被屏蔽!)。

谁能告诉我我做错了什么或者除了上面的代码还需要做什么?

提前非常感谢!

0 投票
1 回答
817 浏览

linux - 在 LINUX 上动态运行控制台到 TTY

我们在 ARM9 板上嵌入了 linux,它通过串行线 TTY1 连接到另一个板,没有其他方式与 ARM9 板通信(没有以太网没有 USB),在我们的正常状态应用程序中,ARM9 板与 TTY1 上的另一个板交换数据。在维护模式下,我们想在 ARM9 linux 板上运行控制台,所以我们的想法是:

  • 向我们的软件发送特殊命令
  • 我们的软件会做一些事情来准备在 TTY1 上激活控制台以便下次重新启动
  • 以编程方式重新启动软件
  • 现在在控制台模式下到 TTY1
  • 改变我们需要的任何东西
  • 要求正常重启并运行我们的正常软件

我们在第 2 步需要一些帮助,我们可以在某处写什么或者我们可以以编程方式运行哪个命令来告诉 linux 在控制台模式下重新启动到 TTY1 ?

0 投票
1 回答
4074 浏览

windows-ce - 如何在 ARM - Windows CE 6.0 上使用 USB GPRS 调制解调器?

我参与了一个项目,我必须在安装了 Windows CE 6.0 的 ARM 板 (RSC-W910) 上安装和使用 USB GPRS 调制解调器。调制解调器是 Sierra Wireless 产品 GL6110 ( GL61x0 ),我只需要将它用于数据,使 HttpWebRequests (TCP) 发送/接收 XML 数据。首选的开发工具是 C# 和 .Net Framework 3.5。

当调制解调器通过 USB 连接到板时,出现的错误消息是“未识别的 USB 设备”,我认为这是正常的。

Siera Wireless(SW) 为 ARM920 提供驱动程序,但使用“wceload.exe”安装失败。错误是“设置失败”,我可以在连接到板上的小 LCD 屏幕上看到。要安装驱动程序,我通过 Telenet 连接到开发板,CAB 文件存储在 SD 卡上。我是否认为无法安装驱动程序可能与 Win CE 映像具有基于 RAM 的注册表有关?

如果 SW 没有为调制解调器提供驱动程序,这是否意味着我必须开发自己的驱动程序?还是有一个我可以使用的通用驱动程序?

我是否必须为板创建一个新的 Win CE 映像以支持调制解调器,或者是否可以使用 C# 应用程序中的代码来访问它?

任何帮助将不胜感激!

谢谢,

缺口

0 投票
2 回答
9933 浏览

embedded-linux - PHY未连接!MAC:MII 初始化期间出错

我正在尝试使用“TFTP”服务器和“U-boot”菜单将“rfsNV.gz”和“uImageNV”下载到 ARM 板上。我正在使用由deramCatcher开发的板,Windows 7 上带有“tftp32.exe”的 tftp 服务器、超级终端、跨以太网电缆和 USB 串行电缆。我使用超级终端连接到开发板并最终进入 U-boot 菜单。我将服务器 ip 设置为 192.168.0.123,目标板 ip 设置为 192.168.0.1。然后我启动“tftp32.exe”来设置 TFTP 服务器并在超级终端上写入

但超级终端回应

这是否意味着我没有正确设置以太网连接?我的本地连接显示 No network access like this figure。但是板上的以太网连接 LED 指示电缆已连接。我对嵌入式 Linux 完全陌生,不知道为什么我不能下载板上的文件。谁能弄清楚出了什么问题?

U-boot启动时控制台显示

'mii info' 的输出是:

0 投票
1 回答
1046 浏览

qt - ARM9 的基于 Qt 的触摸屏 GUI

我想在 HMI 领域工作并开始学习它。

在第一阶段,我想为 ARM9 板开发基于 Qt GUI 的触摸屏应用程序。任何人都可以为此建议如何使用它以及任何带有集成触摸屏 LCD 的预算 ARM9 开发板吗?我想尽可能地使用开源平台。

我知道我可以在支持某些操作系统的 ARM 板上更轻松地做到这一点,比如(比如)嵌入式 linux,或者可能是带有 java 或基于 Qt 的 GUI 的 Rasberry Pi。但我不想使用操作系统,而只想开发一个简单的触摸屏 GUI 应用程序来(比如说)打开 ARM 板上的 LED(不运行任何操作系统)。

我的下一步学习将是使用触摸屏 GUI、Rasberry Pi 和 raspbian,我已经在其中找到了大量的在线资源。

谢谢

0 投票
1 回答
1378 浏览

linux-device-driver - Linux内核flush_cache_range()调用似乎什么都不做

介绍:

我们有一个应用程序,其中在 ARM 上运行的 Linux 接受来自外部处理器的数据,DMA 将数据放入 ARM 的内存空间。然后 ARM 需要从用户模式代码访问该数据。

地址范围必须是物理上连续的,因为外部处理器中的 DMA 引擎不支持分散/聚集。这个内存范围最初是通过 __get_free_pages(GFP_KERNEL | __GFP_DMA,order) 调用从 ARM 内核分配的,因为这可以确保分配的内存在物理上是连续的。然后对返回的指针调用 virt_to_phys() 为我们提供物理地址,然后在进程开始时将其提供给外部处理器。

Linux 用户模式代码也知道这个物理地址,它使用它(在用户模式下)调用 mmap() API 以获取指向该内存区域的用户模式指针。然后,我们的 Linux 内核驱动程序会在驱动程序的 file_operations 结构中看到对其 mmap 例程的相应调用。然后,驱动程序保留在调用其 mmap 例程时传递给它的 vm_area_struct“vma”指针,以供以后使用。

当用户模式代码接收到新数据已被 DMA 发送到该内存地址的信号时,它需要通过我们从上述 mmap() 调用中获得的用户模式指针从用户模式访问它。在用户模式代码执行此操作之前,当然必须刷新与此内存范围相对应的缓存。为完成此刷新,用户模式代码调用驱动程序(通过 ioctl),在内核模式下调用 flush_cache_range():

flush_cache_range(vma,开始,结束);

传递给上述调用的参数是驱动程序在调用其 mmap 例程时捕获的“vma”,“start”和“end”是从提供给的结构中的用户模式代码传递到驱动程序的用户模式地址ioctl() 调用。

问题:

我们看到的是缓冲区似乎没有被刷新,因为我们看到从用户模式进行访问时似乎是陈旧的数据。作为测试而不是从对我们的驱动程序的 mmap() 调用获取用户模式地址,我们改为将 mmap() API 调用到 /dev/mem。在这种情况下,我们获得了对缓冲区的非缓存访问(不需要刷新),然后一切正常。

我们的内核版本是 3.8.3,它在 ARM 9 上运行。我们尝试的方法是否存在逻辑错误?

谢谢!

0 投票
0 回答
81 浏览

android - Android 可执行文件不能在 arm9 处理器板上运行

我使用 Android.mk 文件和 ndk-build 命令创建了一个示例 Android 可执行文件。它在 arm8 处理器板上成功运行。它不在 arm9 处理器板上运行。为什么?

Android.mk 包含以下命令