From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16707 invoked by alias); 2 Sep 2003 11:27:14 -0000 Mailing-List: contact insight-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: insight-owner@sources.redhat.com Received: (qmail 16693 invoked from network); 2 Sep 2003 11:27:12 -0000 Received: from unknown (HELO tweedledee.esatclear.ie) (194.145.128.6) by sources.redhat.com with SMTP; 2 Sep 2003 11:27:12 -0000 Received: from [194.145.128.35] (helo=esatclear.ie) by tweedledee.esatclear.ie with smtp (Exim 4.14) id 19u9JV-0006py-25; Tue, 02 Sep 2003 12:27:09 +0100 From: "David Mc Kenna" Reply-to: mckennad@esatclear.ie To: gdb@sources.redhat.com,insight@sources.redhat.com Date: Tue, 02 Sep 2003 11:27:00 -0000 Subject: ARM Simulator Bug? Message-id: <3f547e8d.791c.0@esatclear.ie> X-User-Info: 137.71.23.54 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-SW-Source: 2003-q3/txt/msg00134.txt.bz2 Hi all, Has anyone else come across something similar to the below?? I have a startup file embedded in a header file using inline assembly. This file contains the Interrupt vectors for an ARM7TDMi. The main file is compiled as ARM and I can simulate this perfectly. When I insert a BX command at the end of the inline assembly and add the -mthumb CL option to instruct gcc to compile the main as thumb it generates the elf. Then when I go to the simulator things go weird. If I place a "b ." command at the end of the inline assembly, I can stop gdb at this point and it stays at the correct point, i.e. at the b .. But if I remove the "b ." command the simulator goes hay-wire, i.e. Does not know where it is The embedded file: asm(".org 0x00\n" "\n" " b tst_start @ SVC 0x00\n" " b tst_start @ Undfd InstrUND 0x04\n" " b tst_start @ SWI _StartupSVC 0x08\n" " b tst_start @ Pre Abort ABORT 0x0C\n" " b tst_start @ Data AbortABORT 0x10\n" " b tst_start\n" " b tst_start @ IRQ _StartupIRQ 0x18\n" " b tst_start @ FIQ _Startup FIQ 0x1C\n" ".global tst_start\n" "tst_start: \n" " mov sp,#0x12000\n" " adr R0,tmp+1\n" " bx R0\n" !!!!!!!!! Problem Line ".code 16\n" "tmp:\n" "\n"); My main file: #include "tester.h" int main() { unsigned int b=0x01; unsigned int count = 0x00; while ( b != 0x00) { count++; } return 0; } My compile script: arm-elf-gcc.exe -mthumb \ $1.c -mthumb-interwork -mcpu=arm7tdmi\ -g -Wall -nostartfiles -mlittle-endian -save-temps -O$2 \ -Wl,-T /c/tst/scripts/clink.x -o $1.elf I have tried this with the same result with gcc3.2.3, gcc version 3.3.2 20030825 and gdb snapshots from 10-6-2003 and 01-09-2003 Any ideas? Thanks, Dave Mc Kenna -- http://www.iol.ie