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.

Reply via email to