使用 SDL2 的 C 程序可以在裸机环境(无操作系统)中运行吗?

标签 c embedded sdl bare-metal

因此,我正在尝试设计一个程序来获取 JSON 文件,对其进行解析,然后在触摸屏上创建显示。到目前为止,我已经编写了一个程序,它使用 Visual Studio、cJSON 和 SDL2 完成了几乎所有的工作。但是,该程序旨在在裸机 STM 微 Controller 评估板上运行。 SDL 库中是否有任何依赖于 Windows 的内容,或者程序是否会在裸机环境中运行?

最佳答案

SDL 存在于许多平台中(Windows、Linux、AmigaOS 和 Nintendo DS、BeOS、Android,可能还有其他平台)

但它依赖于操作系统/硬件功能来创建显示和声音,并获取输入。

如果您的微 Controller 没有操作系统,则无法轻松移植 SDL。因此,您要么在您的平台上找到特定版本的 SDL,要么必须自己移植它,这似乎不是小菜一碟。此外,您可能需要 5% 的 SDL 功能,何必呢?

另一种解决方案是在没有 SDL 的情况下使用微 Controller 的裸机视频/输入功能编写您的应用程序。它不需要是可移植的,并且您可以节省尝试为您的系统移植一个简单​​应用程序的抽象层的时间。

关于使用 SDL2 的 C 程序可以在裸机环境(无操作系统)中运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47422483/

相关文章:

c++ - 如何在控制台应用程序的 mini2440 屏幕上打印我的应用程序的输出?

c++ - SDL和OpenGL程序编译失败

C-函数可能发生堆栈溢出

c++ - 在 C++ 中查找数组中总和为零的所有唯一三元组

c++ - 获取指定格式的数字时区

linux - 定义多个 struct machine_desc 结构

c - 为什么这段代码在第二次迭代时在 "*(str_arr + i) = (char*)calloc((strlen(temp_str) + 1), sizeof(char));"行触发断点

c++ - 如何处理程序版本更新时不断变化的数据结构?

C# 和 SDL - 最终用户是否需要安装 SDL?

python - SDL: "working natively in C++"是什么意思?