Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

197
Views
Genere código ensamblador ARM thumb-2 desde la aplicación de Android para la arquitectura Cortex M3

Quiero crear una aplicación para Android que sea una interfaz para convertir C++ en código ensamblador para la arquitectura ARM Cortex M3.

No soy un desarrollador de Android Java, y hago principalmente proyectos de arduino con C/C++. Así que necesito su ayuda para orientarme en buenas direcciones sobre cómo crear una aplicación de Android con Java en Android Studio o similar, que podrá convertir el código fuente de C++ al código ASM M3 Cortex.

Investigué un poco y descubrí que necesito usar el compilador ARM NONE EABI GCC para generar código ASM desde C++, tan simple como estas instrucciones de la línea de comandos:

 arm-none-eabi-gcc -O2 -mthumb -c test.c -o test.o arm-none-eabi-objdump -D test.o

Traté de construir ese compilador usando la aplicación Android Termux, pero fallé. He seguido muchas publicaciones y artículos sobre cómo crear un archivo binario arm-none-eabi-gcc. Incluso traté de ejecutar diferentes binarios similares en termux pero siempre fallaba, probablemente porque la arquitectura de mi dispositivo de teléfono inteligente es AARCH64 y uso una aplicación de terceros como Termux como emulador de terminal de Linux, lo que resulta en diferentes tipos de errores. Sin embargo, no encontré un buen artículo sobre cómo instalar este compilador de brazo en Android usando Termux.

Incluso abrió una nueva pregunta sobre cómo construir este compilador, pero aún no hay respuestas.

Supongo que para convertir C ++ a ASM (M3 Cortex) tengo que ejecutar algunos comandos de shell usando un compilador arm como herramienta de línea de comandos con parámetros, desde mi aplicación de Android algo como:

 try{ Process su = Runtime.getRuntime().exec("su"); DataOutputStream outputStream = new DataOutputStream(su.getOutputStream()); outputStream.writeBytes("arm-none-eabi-gcc -O2 -mthumb -c test.c -o test.o"); outputStream.flush(); outputStream.writeBytes("exit\n"); outputStream.flush(); su.waitFor(); }catch(IOException e){ throw new Exception(e); }catch(InterruptedException e){ throw new Exception(e); }

Mi método fue usar GCC en Android Usando la aplicación Termux como un tercero que tiene instalado el compilador ARM, al que puedo llamar con la API de termux desde mi aplicación de Android para convertir C++ a ASM, lo que facilitará el proceso de creación de mi aplicación de Android.

Pero no estoy seguro de si esa es la forma correcta de hacerlo, ya que soy un principiante en el desarrollo de aplicaciones para Android. Así que por favor ayúdenme con sugerencias, ejemplos que me darán la forma correcta de lograr mis objetivos.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Una solución sería si en la aplicación Termux hicieras lo siguiente: ( más detalles aquí )

  1. pkg install proot
  2. pkg install proot-distro
  3. proot-distro install debian
  4. proot-distro login debian

Después de eso, debe iniciar sesión en un entorno Debian y puede instalar casi cualquier paquete Arm disponible en los repositorios de Debian.

Por ejemplo, debería poder instalar este compilador de Cortex:

 $ sudo apt-get remove binutils-arm-none-eabi gcc-arm-none-eabi $ sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa $ sudo apt-get update $ sudo apt-get install gcc-arm-none-eabi $ sudo apt-get install gdb-arm-none-eabi

Lo único que queda por hacer es escribir su aplicación de Android, utilizando la API de Termux , que pasará la entrada y obtendrá la salida como ya sugirió en su pregunta, que es la forma correcta.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!