Merge pull request #151 from antmicro/pr/renode-integration

Renode example in rpl-udp demo
This commit is contained in:
Simon Duquennoy 2017-11-03 13:48:12 +01:00 committed by GitHub
commit 6cedb103d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 96 additions and 0 deletions

View File

@ -1,4 +1,19 @@
all: udp-client udp-server
.PHONY: renode
renode: all
ifneq ($(TARGET),cc2538dk)
$(error Only the cc2538dk TARGET is supported for Renode demo scripts)
endif
ifndef SCRIPT
$(warning SCRIPT not defined! Using "rpl-udp.resc" as default)
renode rpl-udp.resc
else
ifeq ($(wildcard $(SCRIPT)),)
$(error SCRIPT "$(SCRIPT)" does not exist!)
endif
renode $(SCRIPT)
endif
CONTIKI=../..
include $(CONTIKI)/Makefile.include

View File

@ -8,3 +8,9 @@ When receiving a request, The server sends a response with the same counter
back to the originator.
The simulation files show example networks, for sky motes and for cooja motes.
For this example a "renode" make target is available, to run a two node
emulation in the Renode framework. For further instructions on installing and
using Renode please refer to [Contiki-NG wiki][1].
[1]: https://github.com/contiki-ng/contiki-ng/wiki/Tutorial:-Running-Contiki%E2%80%90NG-in-Renode

View File

@ -0,0 +1,30 @@
mach create $name
using sysbus
machine LoadPlatformDescription @platforms/cpus/cc2538.repl
machine SetClockSource sysbus.cpu
machine SetSyncDomainFromEmulation $domain
connector Connect radio wireless
machine PyDevFromFile @scripts/pydev/rolling-bit.py 0x400D2004 0x4 True "sysctrl"
$id = `next_value 1`
macro reset
"""
#set node address. 0x00 0x12 0x4B is TI OUI
sysbus WriteByte 0x00280028 $id
sysbus WriteByte 0x0028002C 0x00
sysbus WriteByte 0x00280030 0xAB
sysbus WriteByte 0x00280034 0x89
sysbus WriteByte 0x00280038 0x00
sysbus WriteByte 0x0028003C 0x4B
sysbus WriteByte 0x00280040 0x12
sysbus WriteByte 0x00280044 0x00
sysbus LoadBinary @http://antmicro.com/projects/renode/cc2538_rom_dump.bin-s_524288-0c196cdc21b5397f82e0ff42b206d1cc4b6d7522 0x0
sysbus LoadELF $bin
cpu VectorTableOffset 0x200000
"""
runMacro $reset

View File

@ -0,0 +1,45 @@
:name: cc2538 range medium 2 nodes
######################################################################
#
# Sample script creating 1 server node and 1 client node using a
# range-based medium function - transmission is possible if nodes are
# in range. Nodes are positioned in a 3D space (x,y,z),
# at a distance of 10 (units) from each other (on the X axis).
#
# Differences in SyncUnit values in machines represent the differences
# in their relative speed. This prevents the machines from
# synchronizing in 100%, which is crucial for Contiki network stack
# stability.
#
######################################################################
path add $CWD
emulation CreateWirelessMedium "wireless"
$domain = `emulation AddSyncDomain`
wireless SetSyncDomainFromEmulation $domain
# The radio is using a range-based medium (with the `Range` set to `11`)
# If not set, the default SimpleMediumFunction will be used (where range is not relevant)
wireless SetRangeWirelessFunction 11
######################### UDP SERVER - begin #########################
$bin=@udp-server.cc2538dk
$name="server"
i $ORIGIN/cc2538-node.resc
wireless SetPosition radio 0 0 0
machine SyncUnit 100
showAnalyzer sysbus.uart0
mach clear
########################## UDP SERVER - end ##########################
######################### UDP CLIENT - begin #########################
$bin=@udp-client.cc2538dk
$name="client"
i $ORIGIN/cc2538-node.resc
wireless SetPosition radio 10 0 0
machine SyncUnit 110
showAnalyzer sysbus.uart0
mach clear
########################## UDP CLIENT - end ##########################