在基于ARM的固件上实现API的正确方法

在基于ARM的固件上实现API的正确方法,api,arm,Api,Arm,我正在开发基于LPC17XX+FreeRTOS的设备固件。我的开发环境是Eclipse+GCC,代码是C。最终产品的要求是: 运行RTOS并执行某些定期任务(如执行运行状况检查)的“基本固件” 基本固件需要支持API,该API将具有一些用于数据操作/延迟/定时的功能,以及一些用于使用设备端口和I/O的功能 用户可以使用此API构建自己的应用程序 用户应用程序需要驻留在闪存的空白空间中。(它将通过串行端口发送到设备,我计划使用IAP将其保存在闪存上) 我想从“基本固件”以新任务的形式启动应用程序

我正在开发基于LPC17XX+FreeRTOS的设备固件。我的开发环境是Eclipse+GCC,代码是C。最终产品的要求是:

  • 运行RTOS并执行某些定期任务(如执行运行状况检查)的“基本固件”
  • 基本固件需要支持API,该API将具有一些用于数据操作/延迟/定时的功能,以及一些用于使用设备端口和I/O的功能
  • 用户可以使用此API构建自己的应用程序
  • 用户应用程序需要驻留在闪存的空白空间中。(它将通过串行端口发送到设备,我计划使用IAP将其保存在闪存上)
  • 我想从“基本固件”以新任务的形式启动应用程序
  • 步骤1和3相当容易实现。我不确定实施2、3和4的最佳方式是什么。到目前为止,我已经看过动态链接、跳转表、覆盖等,我有点迷路了。有人能给我一个正确实施步骤的概述吗

    一些相关问题:

  • 为提供基于API的应用程序/模块开发和加载的产品开发固件的任何其他方法
  • 使用API需要向用户提供什么?我的API源代码会被打开吗
  • 我愿意接受任何想法,谢谢:)