1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
#! @TCL_WISH@
#
# $Id$
#
set traceFile trace
#load the avr-simulator package
load @top_builddir@/src/.libs/libsimulavr.so
puts "simulavr loaded"
#create new device
set dev1 [new_AvrDevice_atmega128]
#load elf file to the device
AvrDevice_Load $dev1 "./spi.elf"
#set the clock cycle time [ns]
# 1000000000ns/1000000MHz == 1000ns
AvrDevice_SetClockFreq $dev1 1000
#systemclock must know that this device will be stepped from application
set sc [GetSystemClock]
$sc Add $dev1
# MNM
set netB0 [new_Net]
set netB1 [new_Net]
set netB2 [new_Net]
set netB3 [new_Net]
[AvrDevice_GetPin $dev1 "B0"] SetOutState $Pin_PULLUP
$netB0 Add [AvrDevice_GetPin $dev1 "B0"]
$netB1 Add [AvrDevice_GetPin $dev1 "B1"]
$netB2 Add [AvrDevice_GetPin $dev1 "B2"]
$netB3 Add [AvrDevice_GetPin $dev1 "B3"]
SpiSource spiSource "spidata" $netB0 $netB1 $netB2
SpiSink spiSink $netB0 $netB1 $netB3
set pinMonPinNameStr "A0"
set pinMonPinDescStr "PORTA0"
set pinMonPinHighStr "NEGATE"
set pinMonPinLowStr "ASSERT"
# This line did not work since the string "constants" are
# apparently de-allocated after the constructor, and the
# PinMonitor class keeps the pointers, not a copy to
# the strings!
#PinMonitor pinmon $dev1 "A0" "PORTA0" "NEGATE" "ASSERT"
# This works because the variables do not get de-allocated.
PinMonitor pinmon $dev1 $pinMonPinNameStr $pinMonPinDescStr $pinMonPinHighStr $pinMonPinLowStr
set netF0 [new_Net]
set netAref [new_Net]
$netF0 Add [AvrDevice_GetPin $dev1 "F0"]
AdcPin adcPinSource "anadata" $netF0
$netAref Add [AvrDevice_GetPin $dev1 "AREF"]
set aRef [new_AdcAnalogPin]
$aRef SetOutState $Pin_ANALOG
$netAref Add $aRef
$aRef setAnalogValue 5000000
$sc Add spiSource
$sc Add spiSink
$sc Add adcPinSource
GdbServer gdb1 $dev1 1212 0 0
$sc Add gdb1
# nice -n 19 xterm -e "avr-gdb $objfile -x gdbinit"
#now run simulation
$sc Endless
exit
|