Hello all, Finally I found the problem!
I was using the arm linux toolchain from embedian ( http://www.emdebian.org/crosstools.html). Now, I tested with the code sourcery one (Sourcery CodeBench Lite 2012.09-64 for ARM GNU/Linux), by the way, which gem5 users use, and it's fine. One possible fix to the first toolchain is deleting the #ifdef __thumb__ code in util/m5/m5op_arm.S. Better than this is using the right toolchain! Regards, -- Fernando A. Endo, PhD student and researcher Université de Grenoble, UJF France 2012/11/13 Fernando Endo <[email protected]> > Hi, > > Thanks Amin for your answer. > I'm my case, the m5op_arm.S file has already this fix! > > Regards, > > -- > Fernando A. Endo, PhD student and researcher > > Université de Grenoble, UJF > France > > > > 2012/11/12 Amin Farmahini <[email protected]> > >> I had a similar problem with thumb instruction. The patch below (provided >> by Ali) fixed my problem. I think this should work for you as well. >> >> diff -r 839eeb3fcdf8 util/m5/m5op_arm.S >> --- a/util/m5/m5op_arm.S Mon Apr 30 10:23:46 2012 -0500 >> >> >> >> +++ b/util/m5/m5op_arm.S Mon Apr 30 16:50:41 2012 -0500 >> @@ -41,14 +41,26 @@ >> * Ali Saidi >> * Chander Sudanthi >> */ >> +.syntax unified >> +#ifdef __thumb__ >> +.thumb >> >> >> >> +#endif >> >> #define m5_op 0xEE >> >> #include "m5ops.h" >> >> +#ifdef __thumb__ >> +#define INST(op, ra, rb, func) \ >> + .short (((op) << 8) | (func)); \ >> >> >> >> + .short (((ra) << 12) | (0x1 << 8) | (0x1 << 4) | (rb)) >> +/* m5ops m5func */ >> +/* ra coproc 1 op=1 rb */ >> +#else >> >> >> >> #define INST(op, ra, rb, func) \ >> .long (((op) << 24) | ((func) << 16) | ((ra) << 12) | (0x1 << 8) | >> (0x1 << 4) | (rb)) >> /* m5ops m5func ra coproc 1 >> op=1 rb */ >> >> >> >> +#endif >> >> #define LEAF(func) \ >> .globl func; \ >> >> >> Thanks, >> Amin >> >> >> >> >> On Mon, Nov 12, 2012 at 8:41 AM, Fernando Endo >> <[email protected]>wrote: >> >>> Hello all, >>> >>> I'm trying to run an ARM code using the thumb instruction set. I'm using >>> the stable version of gem5. >>> The code is completly writen in C, and my target is "arm_detailed". I >>> use the instructions m5_reset_stats and m5_dump_stats provided by gem5 to >>> control the stats generation. >>> >>> When I compile, I get some warning messages (listing 1) >>> I think they can be ignored, because both instruction I use aren't >>> truncated >>> >>> Ok, then gem5 panics at an unknown instruction (listing 2). >>> Saddly, when I comment the m5_*_stats commands, gem5 simutation is ok >>> (listing 3). >>> >>> With or without -mcpu=cortex-a9, the result is the same. The code works >>> without -mthumb and -D__thumb__. Any idea? >>> >>> listing 1: >>> ----- >>> arm-linux-gnueabi-gcc-4.4 -I"../gem5-stable" -D__thumb__ -O3 -static >>> -mthumb -mcpu=cortex-a9 -o main_unroll.o -c main_unroll.c >>> arm-linux-gnueabi-gcc-4.4 -I"../gem5-stable" -D__thumb__ -O3 -static >>> -mthumb -mcpu=cortex-a9 -o utils.o -c utils.c >>> arm-linux-gnueabi-gcc-4.4 -I"../gem5-stable" -D__thumb__ -O3 -static >>> -mthumb -mcpu=cortex-a9 -o mmunroll1.o -c mmunroll1.c >>> arm-linux-gnueabi-gcc-4.4 -I"../gem5-stable" -D__thumb__ -O3 -static >>> -mthumb -mcpu=cortex-a9 -o mmunroll1.bin mmunroll1.o main_unroll.o utils.o >>> ../gem5-stable/util/m5/m5op_arm.S >>> ../gem5-stable/util/m5/m5op_arm.S: Assembler messages: >>> ../gem5-stable/util/m5/m5op_arm.S:159: Warning: value 0x10110 truncated >>> to 0x110 >>> ../gem5-stable/util/m5/m5op_arm.S:160: Warning: value 0x11110 truncated >>> to 0x1110 >>> ----- >>> >>> listing 2: >>> ----- >>> gem5 Simulator System. http://gem5.org >>> gem5 is copyrighted software; use the --copyright option for details. >>> >>> gem5 compiled Nov 6 2012 18:03:46 >>> gem5 started Nov 12 2012 15:06:28 >>> gem5 executing on GRE034537 >>> command line: gem5-stable/build/ARM/gem5.opt -d Results/gem5out >>> --stats-file=statsMMU1.txt gem5-stable/configs/example/se.py -c >>> mmul_src/mmunroll1.bin -o 10 --caches --l2cache --cpu-type=arm_detailed >>> Global frequency set at 1000000000000 ticks per second >>> 0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000 >>> **** REAL SIMULATION **** >>> info: Entering event queue @ 0. Starting simulation... >>> warn: CP14 unimplemented crn[14], opc1[7], crm[15], opc2[7] >>> matrix size : 10 x 10 elements >>> matrix size : 0x190 bytes >>> size of gdata : 0x100000 bytes >>> panic: Attempted to execute unknown instruction (inst 0x2ee4146f7) >>> @ cycle 21103000 >>> [invoke:build/ARM/arch/arm/faults.cc, line 191] >>> Memory Usage: 629556 KBytes >>> Program aborted at cycle 21103000 >>> ----- >>> >>> listing 3: >>> ----- >>> gem5 Simulator System. http://gem5.org >>> gem5 is copyrighted software; use the --copyright option for details. >>> >>> gem5 compiled Nov 6 2012 18:03:46 >>> gem5 started Nov 12 2012 15:13:12 >>> gem5 executing on GRE034537 >>> command line: gem5-stable/build/ARM/gem5.opt -d Results/gem5out >>> --stats-file=statsMMU1.txt gem5-stable/configs/example/se.py -c >>> mmul_src/mmunroll1.bin -o 10 --caches --l2cache --cpu-type=arm_detailed >>> Global frequency set at 1000000000000 ticks per second >>> 0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000 >>> **** REAL SIMULATION **** >>> info: Entering event queue @ 0. Starting simulation... >>> warn: CP14 unimplemented crn[14], opc1[7], crm[15], opc2[7] >>> matrix size : 10 x 10 elements >>> matrix size : 0x190 bytes >>> size of gdata : 0x100000 bytes >>> hack: be nice to actually delete the event here >>> Exiting @ tick 27101000 because target called exit() >>> ----- >>> >>> Regards, >>> >>> -- >>> Fernando A. Endo, PhD student and researcher >>> >>> Université de Grenoble, UJF >>> France >>> >>> >>> _______________________________________________ >>> gem5-users mailing list >>> [email protected] >>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >>> >> >> >> _______________________________________________ >> gem5-users mailing list >> [email protected] >> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >> > >
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
