活动介绍
file-type

SI环境下支持arm汇编语言的关键字解析与设置

下载需积分: 10 | 6KB | 更新于2025-06-03 | 121 浏览量 | 0 下载量 举报 收藏
download 立即下载
标题中的“SI的AT&T+arm汇编语言设置”表明本文档关注的是如何在Source Insight(SI)这一特定的源代码阅读和编辑工具中,设置和优化AT&T风格的ARM汇编语言环境。AT&T语法是一种在Unix系统中广泛使用的汇编语言语法,与Microsoft的MASM语法不同。ARM汇编语言是基于ARM处理器架构的汇编语言,它与x86架构的汇编语言有较大差异。在这两者结合的背景下,本知识点将探讨在Windows环境下,如何参考Linux内核的代码,并利用Source Insight这一工具,处理ARM汇编代码,尤其是如何利用SI的辅助功能来提高开发效率。 描述中提到了几个关键的操作和限制。首先,“windows下参考linux kernel的代码”,意味着开发者可能需要在Windows平台上使用Source Insight来阅读和分析Linux内核中的ARM汇编代码。由于Source Insight并非专门针对ARM架构设计,因此会有一些限制和特殊需求。例如,Source Insight默认情况下可能无法直接支持ARM汇编代码的语法高亮和代码解析。 其次,“用Source Insight当然最方便了”,这句话表明Source Insight作为一个强大的源代码管理工具,在代码阅读和管理方面拥有诸多便捷的功能,比如对代码的快速导航、搜索、代码智能感知等。 接着,“但是对于kernel的arm汇编代码,SI缺省状况下就无能为力了”,明确指出了Source Insight的不足,即在默认情况下,它不支持ARM汇编代码的语法解析和关键字高亮等。这就意味着开发者在阅读ARM汇编代码时,无法获得如在高级语言中那样的便利,比如快速跳转到函数定义、查找所有引用等。 为了解决这一问题,“本支持包支持SI的ctrl+鼠标左键;支持873条arm指令的关键字”,说明存在一个第三方支持包或插件,它扩展了Source Insight的功能,使得在查看ARM汇编代码时,可以通过特定的操作(如按住Ctrl键并点击鼠标左键)实现类似于高级语言的便捷功能。此外,还支持了873条ARM指令的关键字,这意味着这些指令能够被Source Insight识别并高亮显示,从而提高代码的可读性。 另外,“不包括浮点指令”,则指出这个支持包可能不支持ARM汇编中的浮点指令集,这可能是因为特定的设计选择或是浮点指令集的复杂性导致无法在支持包中完全实现。 标签中的“SI linux arm汇编 符号链接 ctrl+左键”进一步细化了本知识点的范围,标签中的“SI”和“linux arm汇编”分别指明了工具和领域,而“符号链接”可能指的是在Source Insight中对汇编代码中定义的符号进行快速导航的功能,“ctrl+左键”是操作的快捷方式。 文件名称列表中的“AT&T Asm Language.CLF”很可能是指一个配置文件(.clf是Source Insight配置文件的扩展名),用于定义和保存ARM汇编语言的关键字和语法设置。“at&t_arm_asm_keywords.txt”可能是一个文本文件,详细列出了支持包所支持的873条ARM指令的关键字。通过这两个文件,可以实现Source Insight对ARM汇编语言的扩展支持。 综上所述,本文档的知识点包括: 1. 在Windows环境下使用Source Insight阅读和分析Linux内核中的ARM汇编代码的方法。 2. Source Insight在处理ARM汇编代码时存在的限制和其默认状态下对ARM汇编代码支持的不足。 3. 一个第三方支持包或插件的功能,它可以扩展Source Insight对ARM汇编代码的支持,包括语法关键字的高亮显示和ctrl+鼠标左键的特殊功能。 4. 这个支持包的局限性,即不包括对ARM汇编中的浮点指令的支持。 5. 如何通过配置文件和关键字列表文件来实现对ARM汇编语言的支持扩展。 6. 如何利用Source Insight的高级功能来提高ARM汇编代码的阅读和编辑效率。

相关推荐

filetype

~/power/bin # gdb netmgr GNU gdb (GDB) 8.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "arm-unknown-linux-gnueabihf". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from netmgr...done. (gdb) r Starting program: /root/power/bin/netmgr [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". Signal is about to be caught. Preparing to handle it... route: SIOCDELRT: No such process route: SIOCDELRT: No such process killall: udhcpc: no process killed killall: udhcpc: no process killed [New Thread 0xb583d400 (LWP 424)] [New Thread 0xb4eff400 (LWP 430)] [New Thread 0xb46fe400 (LWP 431)] Thread 1 "netmgr" received signal SIGSEGV, Segmentation fault. 0xb6a97d24 in memcpy () from /lib/libc.so.6 (gdb) bt #0 0xb6a97d24 in memcpy () from /lib/libc.so.6 #1 0xb6b82028 in zte_memcpy_s () from /root/power/lib/libzte_slibc.so #2 0x0002ce9c in __frame_dummy_init_array_entry () Backtrace stopped: previous frame identical to this frame (corrupt stack?) 如何定位到段错误的代码行数

子善旬
  • 粉丝: 14
上传资源 快速赚钱