From da2f84db19c68dc0859e0469ffeb3990fdd8656a Mon Sep 17 00:00:00 2001 From: Piotr Zierhoffer Date: Wed, 1 Nov 2017 21:01:06 +0100 Subject: [PATCH] Add sample Renode scripts for rpl-udp example This sample allows to run two connected TI CC23538DK nodes, connected via radio, in the Renode Framework. The emulation loads the compiled binaries for client and server nodes. It also fetches a precompiled bootloader. --- examples/rpl-udp/cc2538-node.resc | 30 +++++++++++++++++++++ examples/rpl-udp/rpl-udp.resc | 45 +++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 examples/rpl-udp/cc2538-node.resc create mode 100644 examples/rpl-udp/rpl-udp.resc diff --git a/examples/rpl-udp/cc2538-node.resc b/examples/rpl-udp/cc2538-node.resc new file mode 100644 index 000000000..55a043852 --- /dev/null +++ b/examples/rpl-udp/cc2538-node.resc @@ -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 diff --git a/examples/rpl-udp/rpl-udp.resc b/examples/rpl-udp/rpl-udp.resc new file mode 100644 index 000000000..828610549 --- /dev/null +++ b/examples/rpl-udp/rpl-udp.resc @@ -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 ##########################