Installing TinyECC using Tossim

I first install Ubuntu 10.04 using VMWARE on Windows7. I installed TinyOS 2.1.2 and everything is going well. Flashing and other examples are working correctly. Tossim works for these examples as well. make micaz sim command builds successfully. I need to simulate the signtaure algorithm, so I want to install TinyECC-2.0, but getting the following error:

sumi@ubuntu:/opt/tinyos-2.1.2/apps/TinyECC-2.0$ make micaz sim
mkdir -p simbuild/micaz
  placing object files in simbuild/micaz
  writing XML schema to app.xml
  compiling testECDSA to object file sim.o
ncc -c -shared -fPIC -o simbuild/micaz/sim.o -g -O0 -tossim -fnesc-nido-tosnodes=1000 -fnesc-simulate -fnesc-nido-motenumber=sim_node\(\) -fnesc-gcc=gcc -Wall -Wshadow -Wnesc-all -target=micaz -fnesc-cfile=simbuild/micaz/app.c -board=micasb -DTOSH_DATA_LENGTH=102 -DDEFINED_TOS_AM_GROUP=0x22 --param max-inline-insns-single=100000 -DSECP160R1 -DBARRETT_REDUCTION   -DHYBRID_MULT   -DHYBRID_SQR   -DCURVE_OPT   -DPROJECTIVE   -DSLIDING_WIN   -DSHAMIR_TRICK   -DIDENT_APPNAME=\"testECDSA\" -DIDENT_USERNAME=\"sumi\" -DIDENT_HOSTNAME=\"ubuntu\" -DIDENT_USERHASH=0x4f41f2b4L -DIDENT_TIMESTAMP=0x5104ea17L -DIDENT_UIDHASH=0x81f6a833L -I/usr/include/python2.6 -Wno-nesc-data-race testECDSA.nc   -fnesc-dump=components -fnesc-dump=variables -fnesc-dump=constants -fnesc-dump=typedefs -fnesc-dump=interfacedefs -fnesc-dump=tags -fnesc-dumpfile=app.xml
NNM.nc: In function ‘NNM$NN_SubDigitMult’:
NNM.nc:3278: error: can't find a register in class ‘CLOBBERED_REGS’ while reloading ‘asm’
NNM.nc:3278: error: ‘asm’ operand has impossible constraints
NNM.nc: In function ‘NNM$NN_Sub’:
NNM.nc:367: error: unknown register name ‘r2’ in ‘asm’
NNM.nc:367: error: unknown register name ‘r0’ in ‘asm’
NNM.nc: In function ‘NNM$NN_Sqr’:
NNM.nc:1775: error: unknown register name ‘r29’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r28’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r27’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r26’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r25’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r24’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r19’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r17’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r16’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r15’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r14’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r13’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r12’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r11’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r10’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r9’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r8’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r7’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r6’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r5’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r4’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r3’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r2’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r1’ in ‘asm’
NNM.nc:1775: error: unknown register name ‘r0’ in ‘asm’
secp160r1.nc: In function ‘secp160r1$CurveParam$omega_mul’:
secp160r1.nc:357: error: unknown register name ‘r29’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r28’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r27’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r26’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r25’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r19’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r17’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r16’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r15’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r14’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r13’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r12’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r11’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r10’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r9’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r8’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r7’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r6’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r5’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r4’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r3’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r2’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r1’ in ‘asm’
secp160r1.nc:357: error: unknown register name ‘r0’ in ‘asm’
NNM.nc: In function ‘NNM$NN_Add’:
NNM.nc:273: error: unknown register name ‘r2’ in ‘asm’
NNM.nc:273: error: unknown register name ‘r0’ in ‘asm’
NNM.nc: In function ‘NNM$NN_Mult’:
NNM.nc:875: error: unknown register name ‘r25’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r24’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r22’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r21’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r20’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r19’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r18’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r17’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r16’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r15’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r14’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r13’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r12’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r11’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r10’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r9’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r8’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r6’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r5’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r4’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r3’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r2’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r1’ in ‘asm’
NNM.nc:875: error: unknown register name ‘r0’ in ‘asm’
make: *** [sim-exe] Error 1
sumi@ubuntu:/opt/tinyos-2.1.2/apps/TinyECC-2.0$ 

      

Is there anyone working on this?

+3


source to share


1 answer


According to the docs ( http://discovery.csc.ncsu.edu/software/TinyECC/README.txt ):

NNM.nc has built-in assembly code to speed up the natural number of operations. Inline assembly code is written for Atmega128l (MICAz), MSP430 (TelosB / Tmote Sky) and XScale (Imote2). If you want to use TinyECC for other platforms, you must comment out "#define INLINE_ASM" in NN.h, or implement your own inline assembly code.



If you're not ready to write your own inline asm, I would look at changing the definition for INLINE_ASM.

0


source







All Articles