在 Eclipse IDE 中使用 GCC 编译器编译 RTX 内核文件

2024-01-10

我们在KEIL IDE中有一个LPC2148的项目,里面有RTX内核程序以及其他程序,它是由ARM CC编译的。现在我们需要将IDE从KEIL(ARM CC)更改为Eclipse(GCC)。当我们尝试在 Eclipse GCC 编译器中编译它时,它在 RTX_Config.c 和 RTX_Config.h 文件中显示错误。其他文件使用GCC编译器编译成功。但是 RTXConfig.c 文件具有编译器特定的代码,这些代码不会被 GCC 编译。有什么解决方案可以使用GCC编译器在Eclipse IDE中编译这个项目吗?作为初学者,请帮助我。提前致谢

我们有一些 keil 特定的关键字,例如中断,__swi,__task 、 __asm 已被 ARM CC (keil) 成功编译,但是当我们尝试将其移植到 GCC 编译器 (Eclipse) 时,该编译器无法编译这些关键字并显示错误。 有没有办法在GCC编译器中编译这些keil特定关键字?


do_software_interrupt、do_irq和do_fiq分别是SWI、IRQ和FIQ的中断服务例程。这些函数是使用 gcc 在 c 中实现的属性特征。这是包含 irq、fiq 和软件中断例程的实际 C 代码。

entry.c

void __attribute__((interrupt("IRQ"))) do_irq()
{
    //your irq service code goes here
}

void __attribute__((interrupt("FIQ"))) do_fiq()
{
    //your fiq service code goes here
}

void __attribute__((interrupt("SWI"))) do_software_interrupt()
{
    volatile unsigned int int_num;
    asm("LDR r0, [lr, #-4]");
    asm("BIC r0, #0xFF000000");
    asm("MOV %0, r0":"=r"(int_num):);
    //based on int_num, you can determine which system call is called
}

void c_start() {
    asm volatile ("SVC 0x5");
    while(1){}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Eclipse IDE 中使用 GCC 编译器编译 RTX 内核文件 的相关文章

随机推荐

  • 在项目反应器中包装阻塞 I/O

    我有一个 spring webflux API 它在服务层需要从使用 JDBC 的现有存储库中读取 在阅读了有关该主题的一些内容后 我希望将阻塞数据库调用的执行与其余非阻塞异步代码分开 我定义了一个专用的jdbcScheduler Bean
  • 从 S3 存储桶中的文件夹中删除文件

    我有一个 AWS S3 存储桶test bucket with a data文件夹 数据文件夹将包含多个文件 我可以删除 S3 存储桶中的文件 但我想要的是删除其中的文件data文件夹 而不删除该文件夹 我尝试了以下方法 aws s3 rm
  • 尝试调用 ShellExecute 来运行 Mysql 和 sql 脚本

    我一直在尝试在 Delphi 应用程序中使用 ShellExecute 打开 Mysql 并运行脚本 ShellExecute Handle open PWideChar InpCommandProgram text PWideChar c
  • Asp.Net MVC - 所有控制器的通用数据

    设置 使用 Asp Net MVC 2 RC 实体框架 SQL Server VS2008 我和我的朋友正在开发一个项目 该项目将有不同的领域指向它 我们希望从请求中获取域 网站 并使用它来驱动数据 该网站数据需要成为所有控制器的一部分 前
  • Ionic Android 构建:java.lang.IllegalStateException:未指定 buildToolsVersion

    从今天起 不知何故 我的离子项目由于某种原因不再能够构建 我已经尝试删除该平台并再次添加 但没有成功 我现在几乎花了三个时间来升级 降级和重新安装 cordova 和 ionic 但由于某种原因 当我尝试构建 Android 版本时 我总是
  • xcode swift admob 不在模拟器上显示实时广告

    我之前已经在 Android 应用程序上实现了 AdMob 除非我指定 Android 模拟器将显示实时广告的测试广告 IBOutlet 弱变量bannerView GADBannerView Display Ads self banner
  • WorkManager 现有工作策略 APPEND_OR_REPLACE 未按预期运行

    我目前正在使用CoroutineWorker from androidx work work runtime ktx 2 5 0 我想要实现的是 将工人排队beginUniqueWork和一样uniqueWorkName 有政策Existi
  • 如何在 Swift 中解开任意深度嵌套的选项?

    作为 Swift 中的练习 我正在尝试编写一个扩展方法 该方法将解开任意深度嵌套的选项 这几乎没有什么实际用途 只是对 Swift 类型系统的探索 任意深度嵌套选项的示例是Optional
  • Awk 新手。与负数格式作斗争

    目标 仅输出大于 1 且小于 1 的数据 or 输出1到 1之间的数据 我有 awk 的基础知识 可以打印第 2 列 我的数据所在的位置 注意我还指定了0 1的范围 awk 0 1 print 2 test dat 我还需要行号 所以我添加
  • 如何在 php 中导入 iCloud 联系人

    如何使用 iCloud API 或使用 PHP 作为服务器端语言的任何其他方法从 iCloud 导入联系人 我知道 iCloud 支持 cardDav 我们可以通过它导入 iCloud 联系人 但是如何导入呢 这对我来说仍然是一个问题 如果
  • 如何在Python中的一行中放置多个导入

    我的问题是关于如何在一行中放置多个导入 from sys import argv from os path import exists 我们能否将上述语句修改为如下所示的单个语句 from sys os path import argv e
  • 跨 WP8 和 Win8 识别用户:ANID2 与 SafeCustomerId

    我们有一个 Web 服务 需要跨设备 wp8 和 win8 识别用户 在电话方面我们有UserExtendedProperties GetValue ANID2 其中获取的是匿名 Microsoft ID 在Windows8上有Online
  • 在 Roxygen2 中导出数据,以便无需 data() 即可使用它们

    阅读完诸如此类的问题后这个关于使用 Roxygen 记录数据集的问题 https stackoverflow com questions 9561684 documenting dataset with roxygen2我已经成功记录了一个
  • 多次使用相同的 C++ 访问说明符

    当下一行就在其正下方或下方几行时 一遍又一遍地声明多个 公共 说明符的目的是什么 我可以理解 当代码修改某些标识符的属性时 即隐藏在宏中的标识符的属性 因此更改宏内的访问属性 因此我们需要 重新定义 从宏中出来 或者当每个访问说明符部分有许
  • C# 中的位图(签名的)比较

    我们有一个有趣的项目 要求我们比较两个签名的两个黑白位图 并判断它们是否是同一个人的签名 由于这只是两个加载的位图 而不是从平板电脑捕获的数据 因此该方法与正常的签名识别略有不同 我认为需要执行以下步骤 将位图裁剪为仅签名 尝试进行某种旋转
  • 我可以用volley做同步请求吗?

    想象一下我正在使用一个已经有后台线程的服务 我可以在同一线程中使用 volley 发出请求 以便回调同步发生吗 原因有两个 首先 我不需要另一个线程 创建它会很浪费 其次 如果我处于 ServiceIntent 中 线程的执行将在回调之前完
  • 如何将公历日期转换为伊斯兰(回历)日期?

    我知道这个问题被问了很多次 但我没有找到正确的方法 我有一个String日期如 01 08 1994 我想把它转换成Hijri日期 使用IslamicCalendar java time DateTimeFormatter dateForm
  • 如何命名我们的 JS 以与 Rails 资产管道一起使用

    我理解 Rails 3 1 资产管道背后的原因 我们将所有 JS 编译在一个整洁的 可缓存的文件中 以提高性能 太好了 我们想要那个 然而 加载所有内容也意味着我们必须非常小心 如果我们附加了一些 JS 则不要在多个页面上使用某个 ID 或
  • Razor - 使用 foreach,每第 n 项插入 html

    我使用 Razor 和 MVC 5 在页面上输出大量项目列表 这是我目前拥有的内容 foreach var item in Model Items a item Name a 我想做的是输出以下内容 div class tab 0 a It
  • 在 Eclipse IDE 中使用 GCC 编译器编译 RTX 内核文件

    我们在KEIL IDE中有一个LPC2148的项目 里面有RTX内核程序以及其他程序 它是由ARM CC编译的 现在我们需要将IDE从KEIL ARM CC 更改为Eclipse GCC 当我们尝试在 Eclipse GCC 编译器中编译它