On Saturday, June 13, 2015 at 9:49:37 PM UTC-7, Robert Willy wrote: > > Hi, > I want to write ARM asm code with GCC toolchain. Previously, I use TI CGT, > whose asm syntax is different from > GCC. For example, the last line has an error with GCC toolchain (bad > instruction type). > > > > .global asmfunc > .global gvar > asmfunc: > LDR r1, gvar_a > LDR r2, [r1, #0] > ADD r0, r0, r2 > STR r0, [r1, #0] > MOV pc, lr > gvar_a .field gvar, 32 > > > Could you point me to a tutorial, manual etc. on the syntax about writing > ARM asm code for GCC? > > Thanks, >
Here is the help message of the compiler. I don't see which setting can generate asm list file, although the binutils (another source) has a switch Command-Line Options This chapter describes command-line options available in *all* versions of the gnu assembler; see Machine Dependencies <https://sourceware.org/binutils/docs/as/Machine-Dependencies.html#Machine-Dependencies>, for options specific to particular machine architectures. If you are invoking as via the gnu C compiler, you can use the `-Wa' option to pass arguments through to the assembler. The assembler arguments must be separated from each other (and the `-Wa') by commas. For example: gcc -c -g -O -Wa,-alh,-L file.c -------------------------------- cross compiler help message: ./arm-linux-gnueabihf-gcc --help Usage: arm-linux-gnueabihf-gcc [options] file... Options: -pass-exit-codes Exit with highest error code from a phase --help Display this information --target-help Display target specific command line options --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...] Display specific types of command line options (Use '-v --help' to display command line options of sub-processes) --version Display compiler version information -dumpspecs Display all of the built in spec strings -dumpversion Display the version of the compiler -dumpmachine Display the compiler's target processor -print-search-dirs Display the directories in the compiler's search path -print-libgcc-file-name Display the name of the compiler's companion library -print-file-name=<lib> Display the full path to library <lib> -print-prog-name=<prog> Display the full path to compiler component <prog> -print-multiarch Display the target's normalized GNU triplet, used as a component in the library path -print-multi-directory Display the root directory for versions of libgcc -print-multi-lib Display the mapping between command line options and multiple library search directories -print-multi-os-directory Display the relative path to OS libraries -print-sysroot Display the target libraries directory -print-sysroot-headers-suffix Display the sysroot suffix used to find headers -Wa,<options> Pass comma-separated <options> on to the assembler -Wp,<options> Pass comma-separated <options> on to the preprocessor -Wl,<options> Pass comma-separated <options> on to the linker -Xassembler <arg> Pass <arg> on to the assembler -Xpreprocessor <arg> Pass <arg> on to the preprocessor -Xlinker <arg> Pass <arg> on to the linker -save-temps Do not delete intermediate files -save-temps=<arg> Do not delete intermediate files -no-canonical-prefixes Do not canonicalize paths when building relative prefixes to other gcc components -pipe Use pipes rather than intermediate files -time Time the execution of each subprocess -specs=<file> Override built-in specs with the contents of <file> -std=<standard> Assume that the input sources are for <standard> --sysroot=<directory> Use <directory> as the root directory for headers and libraries -B <directory> Add <directory> to the compiler's search paths -v Display the programs invoked by the compiler -### Like -v but options quoted and commands not executed -E Preprocess only; do not compile, assemble or link -S Compile only; do not assemble or link -c Compile and assemble, but do not link -o <file> Place the output into <file> -pie Create a position independent executable -shared Create a shared library -x <language> Specify the language of the following input files Permissible languages include: c c++ assembler none 'none' means revert to the default behavior of guessing the language based on the file's extension Options starting with -g, -f, -m, -O, -W, or --param are automatically passed on to the various sub-processes invoked by arm-linux-gnueabihf-gcc. In order to pass other options on to these processes the -W<letter> options must be used. ----------------- It looks like obvious that I should consult to the specific cross compiler help, but there is no asm list file options. What do you think? Thanks, -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
