问题标签 [contiki]

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 投票
0 回答
255 浏览

shell - 用于 Contiki 示例 sky-shell 的构建中的 rom 溢出和缺少引用

我一直在尝试构建示例 sky-shell,但未能成功。我已经尝试过 contiki-2.6 和 contiki-2.7。我曾认为这可能是编译器本身效率低下或其他原因,所以在尝试 contiki-2.7 时,我确保尝试了 msp430-4.5.3、4.6.3 和 4.7.0(使用这个论坛问题的答案来切换 mspgcc 版本:https ://askubuntu.com/questions/187253/how-to-update-a-package-from-command-line-gcc-compiler )。这些似乎都没有帮助。我也尝试使用“SMALL=0”进行编译,但这似乎只会增加溢出。

然后我尝试注释掉 sky-upload.c 中的任何代码(例如 shell_netfile_init()、shell_rim_init() 和 shell_rim_netcmd_init())。这似乎减少了编译,使其能够通过编译溢出,但现在它说它在函数 vuprintf 中缺少对 __udivmodsi4 的引用。我尝试研究这个问题,似乎我可能以某种方式使用不同版本的 gcc 进行部分编译,而不是我目前认为的(论坛帖子:http: //sourceforge.net/p/mspgcc/mailman/mspgcc-用户/线程/D45E6EE7-2771-41EC-9999-F773C6B22AA4@imag.fr/ )

我觉得这个例子应该在上面提到的 init() 调用都没有注释掉的情况下工作。似乎最终使示例按预期工作(即通过无线方式将 ELF 文件发送到微尘,然后加载它们)我不能将上面提到的 init() 调用注释掉,并且可能需要更多代码示例中提供的内容的顶部。

我意识到这里有两个主要问题,通常一篇文章一次只处理一个,但由于它们混淆在一起,我认为最好同时发布这两个问题(溢出和缺失的引用)。

有谁知道这里可能出了什么问题?当涉及到所有关于 contiki 的事情时,我是一个新手,所以请尽可能添加额外的解释:)。

谢谢

0 投票
1 回答
380 浏览

c - 空中编程代码运行时缺少符号

我目前正在开发对天空微尘的无线编程支持。附件是我目前拥有的文件。我基本上是在尝试使用 sky-shell-exec 示例将修改后的 test-deluge.ce 文件加载到 mote 上。然后我尝试使用 shell 'exec' 命令运行 test-deluge 文件,就像在 sky-shell-exec 示例中所做的那样。
最终目标是将 test-deluge.ce 和 hello-world.ce 编译的文件加载到 mote 上,然后能够“执行”我的 test-deluge.ce 文件,然后找到存储的 hello-world.ce文件并对其执行 deluge_disseminate 。

我正在运行的命令进度如下:

此时我收到“找不到符号:deluge_disseminate”错误

我相信错误出现在 make 的“CORE=...”部分(在上面的步骤 2 中)。我检查了上面第 2 步中填写的 symbols.c 文件,确实没有 deluge_disseminate 的符号或我记得的任何 deluge 命令。

对于实验,我尝试了以下方法:

我发现 deluge 的符号在那里,但我无法继续正确制作 sky-shell-exec 文件,因为这样做会擦除符号表并写入一个新表。

我觉得必须有一个简单的解决方法,因为我可以按照上述步骤(1-9)从 sky-shell-exec 示例目录运行 hello-world。

有谁知道如何解决这个问题?

注意:我的 test-deluge.c 中可能存在一个错误,我尝试打开“hello-world.sky”而不是“hello-world.ce”...我不太确定是哪一个。由于上面解释的缺少符号问题,我还无法对此进行测试,但如果有人愿意阐明这个问题,我将非常感激。

谢谢

制作文件

天空壳-exec.c

测试-deluge.c

你好世界.c

0 投票
3 回答
845 浏览

c - MSP430 printf 函数执行太慢

我尝试使用 Sky mote (MSP430 F1611 + CC2420) 以 100Hz 采样频率从 I2C 传感器读取数据并将数据写入串行端口 (USB)。我尝试了几次测试,发现总输出数据的采样频率为 78Hz。我使用 rtimer 来分析我的采样和打印代码,发现打印功能减慢了整个过程。以下是一些分析输出:

rtimer 一秒钟有 4098*8 个滴答声。在这里我们可以清楚地看到打印大约需要 560 个滴答声(17 毫秒)。如果采样频率为 100Hz,则打印功能应在 10ms(327 个滴答声)内完成。

我使用的嵌入式系统是Contiki OS,波特率为115200(最大波特率)。传感器样本包含 112 字节的有符号整数。

这是我的代码:

我希望一些在优化 printf 或 UART 方面有经验的人可以提供一些建议。

谢谢!

0 投票
0 回答
162 浏览

networking - 如果使用外部 DNS 服务器,uIP DNS 客户端会失败

我使用 uIP 堆栈将 HTTP 帖子发送到带有一些传感器数据的远程网络服务器。我使用 resolv.c(包含在 uIP 中)作为 DNS 客户端,将远程 Web 服务器域名解析为 IP 地址。只要我使用路由器 (192.168.1.1) 作为 DNS 服务器地址,一切都很好。但如果我尝试使用任何外部 DNS 服务器地址(例如 Google 的公共 DNS 服务器 8.8.8.8),则无法解析。路由器防火墙被排除在外,因为我尝试在手动配置网络设置并且工作正常的计算机上使用相同的外部 DNS 服务器。很长一段时间以来我一直对这个问题感到震惊,如果有人可以帮助我解决这个问题,我将不胜感激!

我的平台使用 RDB1768(基于 LPC1768)+ LPCxpresso。如果您需要任何进一步的信息,请告诉我。

0 投票
3 回答
77 浏览

c - arm 在编译时丢失了千字节

首先,我不是嵌入式工程师,但我用 C 语言开发了几年。我的问题:当我在笔记本电脑上从我们的一个嵌入式软件(基于 contiki)编译源代码时,我得到的文件大小(222Kb 236Kb)与我们交付的分包商(我无法联系)不同。我不知道为什么我有这种差异。我想研究轨道。- 我有很好的库 - 我使用相同的 ARM EABI 编译器 - 我使用相同的 makefile 我安装了与我们的分包商相同的编译器 ARM EABI,所以我认为(可能是错误的)我的输出已准备好嵌入。我错了?

想法?

0 投票
0 回答
403 浏览

networking - Contiki 或 Thingsquare 中的 IPv6 多播

我正在做一个涉及一些 stm32 mote 和一个运行 Contiki 的边界路由器的项目(但我计划很快切换到 ThingSquare)。边界路由器通过tunslip6与电脑相连,电脑上运行着服务器。我希望微尘与服务器通信。问题是这些mote不应该知道服务器的地址,并自动发现它。一种解决方案是微尘发送多播请求,服务器回复该请求。但是,我的理解是边界路由器无法转发多播寻址请求。这是真的吗?我怎样才能让这个多播消息传播到边界路由器,留在我的本地局域网内?是否有任何 Contiki 或 Thingsquare 项目这样做?

0 投票
2 回答
2433 浏览

ipv6 - Function to print ipv6 address of a mote in contiki

i wrote the following to print the ipv6 address of a mote in contiki-

My method prints- aaaa 0000 0000 0000 1202 0174 0100 0101 whereas the IP address displayed by cooja is- aaaa::212:7401:1:101.

I understand that 0000 0000 0000 is the same as :: but why is the rest of it 'garbled'? What could i be doing wrong here?

0 投票
1 回答
971 浏览

platform - Contiki 端口到 MSP430F5 启动板

我正在尝试将 Contiki-OS 移植到MSP430F5 Launchpad德州仪器。Contiki 已经支持 MSP430,但是它不能在 Launchpad 平台上运行。

我研究了一些为其他芯片和平台制作的定制平台端口。目标是在文件夹中添加一个新文件platform夹。

所需的新文件夹应该具有这种架构(就像每个平台文件夹一样):

  • 我的自定义平台文件夹
    • Makefile(本平台编译说明)
    • contiki-conf.h(定义本平台的配置)
    • contifi-main.c(Contiki核心用于启动平台)
    • 开发者
      • 定义传感器功能的可选文件

我的问题是我真的不知道从哪里开始创建一个完全可操作的配置。我了解本机配置的某些部分,并且可以使用 MSP430F5 数据表 ( CLOCK_CONF_SECOND, F_CPU) 填写这些部分。但是,在所有其他已定义的平台中,contiki-conf.h 中有很多我不理解/不知道它们来自哪里的常量。

我是 Contiki 开发甚至 uController 开发的新手,所以我想知道在哪里可以找到对我有帮助的信息。有没有地方可以找到有关创建新 Contiki 平台端口的说明?contiki-conf.h为了使我的启动板正常工作,该文件应包含哪些内容?

0 投票
1 回答
1173 浏览

c - 何时使用动态 AES 加密和固定密钥 AES 加密?

我正在研究 AES 安全性。Contiki OS我有 AES 库,它支持两种类型的加密/解密:

  1. 在飞行中
  2. 固定键

on-the-fly,当我使用密钥加密数据时,会生成新密钥和加密数据。这个新生成的密钥用于解密数据。所以每次我执行 enc/dec 操作时,我的密钥都会改变。

在该fixed-key算法中,一个固定的密钥用于所有的enc/dec。

我很困惑,我应该选择哪种方法?我不知道这两种方法的优缺点。

0 投票
1 回答
183 浏览

c - 用 c 编程计算过程平均值以用 contiki 实现

我开始使用 Contiki 并为我的暑期实习学习 c 编程。我必须计算冰箱功率正在进行的过程的平均值。我做了这样的代码

它如何获得权力的价值已经被处理了。每隔一秒,它就会显示消耗的电量(get_instant_power())。我不知道如何开始和结束样本编号。如果我从 1 开始,那么它应该如何直到?另外,是否可以将功率存储在数组中以进行累积?