问题标签 [ecos]
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.
c - 将 eCos 移植到 i386
我正在尝试在 i386 PC 上移植 eCos。
我已经从http://ecos.sourceware.org/ecos/boards/redbootbins/x86pc/下载了预建的 redboot.bin
我使用 dd conv=sync if/redboot.bin of=/dev/sdb1 将它引导到 USB 磁盘上
从 USB 启动目标后,我得到“IA2!” 目标监视器上的字符串始终,在 38400 8n1 配置的串行端口上,我什么也没收到。
我尝试使用 i386-elf-gdb,但它无法连接到目标并开始打印“忽略错误数据包,继续...”
我还尝试使用 i386 的 configtool 构建 redboot,但它只能构建库,当我尝试测试时,它给出 ERROR: multiple definition of cyg_start()
我对 eCos 很陌生,我不知道我做错了什么!!。
c - eCos : 在 Linux 上编译和运行示例应用程序
我已经在 linux 系统(Ubuntu 13.02)上安装了 eCos OS。安装后,eCos 文件位于opt/ecos
.
当我阅读 eCos 教程时,我看到hello.c
存储在opt/ecos/ecos-3.0/examples/hello.c
(我注意到可能所有主要的 eCos 系统文件都存储在 ecos-3.0 目录中)。
我已经按照官网上的eCos教程进行了操作,但还是无法成功编译hello.c。
更多详情。当我尝试运行时:
我得到错误:TARGET-gcc : command not found
我已经尝试了其他一些教程,但我仍然遇到问题(这里太乱了,无法列出)。
hello.c
我正在寻找有关在 eCos 系统中编译的分步说明。我看到 eCos 手册在这方面缺乏。
谢谢 :)
c++ - stm32f4vg407的eCos配置工具
我想使用 eCos RTOS 在 stm32f4 discovrey 板上测试闪烁示例。但在 eCos configtool 中没有 stm32f4 的配置模板。
谁能帮我解决这个问题?谢谢
ecos - eCos 的 STM32Cube CMSIS 层
有谁知道是否有现有的 CMSIS 层可以将 STM32Cube 与 eCos 一起使用?如果不存在,将 eCos 集成到 STM32Cube 库中有多复杂?
ssl - 将 OpenSSL 1.0.2 移植到 ECOS 后 MAC 错误
我们在运行ECOS OS的嵌入式系统上运行了 OpenSSL 。我们现在正在将我们的 OpenSSL 升级到 1.0.2 版本。我们已经成功移植和编译了 OpenSSL 库。但是,当我们尝试使用 SSL(通过 https)连接我们的设备时,握手会失败并总是出现错误记录 mac 警报。我们已启用 OpenSSL 调试选项,但无法确定其失败的原因。
有人将最新的 OpenSSL 代码移植到 ECOS 吗?我们是否需要为 ECOS 使用带有最新 OpenSSL 代码的任何特殊编译标志?
作为参考,这里是相关部分ssl3_get_record
:
c - 在写入双精度浮点时处理生态中的未对齐写入
我正在用C语言编写适用于ECOS操作系统的mipsisa32架构的程序。这是我第一次使用 ecos 和 mips,我遇到了奇怪的问题。我使用动态分配的内存块并向其中写入一些数据。但是当我尝试将双精度值写入未与 8 字节对齐的地址时,我得到异常编号 5,它在 hal_intr.h 中声明为 CYGNUM_HAL_VECTOR_STORE_ADDRESS,后来重新定义为 CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_WRITE。
如果我将指针指向目标和源并将它们转换为 long long*,并且它们将值从一个分配给另一个,那么我不会得到异常。
从未对齐的地址读取双精度时也会发生同样的事情,但只有双精度,而不是长长。这确实有意义,因为汇编代码确实使用了不同的指令。我不知道 mips 程序集,但从我所见,我得出的结论是,在存储/读取 long long 时,它以两个 4 字节的块进行,但对于 double,它一步完成。
所以你有什么建议? 这是正常行为吗?
我最后的手段是确保自己的地址是对齐的,这会增加额外的开销,因为我写入了许多动态分配的缓冲区。
dns - getaddrinfo 和 gethostbyname 挂起系统
我正在做一个eCos项目,但我遇到了一个大问题。出于某种原因, getaddrinfo和gethostbyname似乎在生产环境中不时挂起整个系统。
我已经读到如果 DNS 没有响应,这也是 linux 中的一个问题。为了解决 Linux 中的问题,创建了另一个名为getaddrinfo_a的函数。
现在我正在寻找一种故障安全解决方案来在 eCos 中进行 DNS 查找,至少我不想挂起整个系统。有没有或者我需要 100% 确定我的 DNS 将提供 IP 地址,如果没有,我最终会导致系统挂起?
我曾考虑过制作自己的 DNS 实现,但感觉有点过于激烈了。我也考虑过使用一些外部库,但在这种情况下,我需要一个与 eCos 一起使用并且具有可以在商业项目中使用的许可证的库。
real-time - Stop all threads in ecos and run main
I have the following problem: I use ecos for my micro controller and I start multiple threads with 'cyg_scheduler_start();'. Now I want to stop them, no problem with 'cyg_thread_exit()'. But if I stop the last Task, the micro controller doesn't return to main, where I call the threads. The main should run after the start of the threads a led.
or at least, to say start the other threads after the first threads are finished. I use at the moment cyg_thread_suspend
and cyg_thread_resume
to realise this. But is there a better way to do this?
embedded - 为什么这个对 sscanf() 的调用会匹配一个参数太多?
我们使用sscanf()
eCos操作系统下的函数来解析用户提供的命令行命令。我们有基本上可以做到这一点的代码:
但是当使用包含 的命令缓冲区调用时command arg1 40.0
,success
即使只为命令提供了两个参数,也会进入分支。我们本来期望error
分支会被执行。
使用大量printf()
语句,以下是调用后的变量值sscanf()
:
我们无法通过单元测试重现此行为。在我们开始怀疑一个被破坏的sscanf()
实现之前,可以有另一种解释吗?
更新
eCos 操作系统实现了它自己的 C 标准库版本。下面是处理%s
格式说明符的代码片段。我不知道它是否有帮助,但我们越来越有信心这里可能存在错误。
c - 如何在 eCos OS 中以微秒精度获取当前系统时间?
我知道默认的 eCos 精度是1 ticks = 10 ms
.
eCos OS 提供cyg_current_time();
我可以使用 cyg_current_time 除 tick_per_one_ms 得到 SystemTime_MS;
(例如)GetSystemTime = cyg_current_time() / 10;
我怎样才能精确地获得系统时间?
我想为我们精确计算一个时间间隔。
例如(想知道 A() 花费了多少时间):
我尝试了很多方法,但没有奏效。
- gettimeofday:eCos 实现的接缝,但它仍然是毫秒精度。
- 获取滴答声:但 1 个滴答声是 10 毫秒。这意味着上下文切换时间是毫秒精度。
- 计时器,时钟等......
我的意思是我想以我们的精度实现获取当前系统时间功能。