C 如何在没有操作系统的情况下分配内存?(操作系统用C语言编写的情况)

Yuv*_*Yuv 1 c embedded operating-system memory-management

我正在学习一门在微控制器上编写操作系统的课程。

操作系统是用 C 语言编写的,讲师按以下方式初始化每个线程的堆栈空间。

int32_t TCB_STACK[NUM_OF_THREADS][STACK_SIZE];

如果没有任何操作系统已经运行来为其提供服务,如何分配内存?我错过了什么吗?

Lun*_*din 6

您不必在裸机系统上“分配”任何内容,您可以完全访问所有物理内存,并且没有其他人可以与之共享。

在这样的系统上,这些数组最终位于静态分配的 RAM 内存中,称为.bss. 位于何处.bss以及有多大,由链接描述文件确定。链接描述文件决定为哪些内容保留内存的哪些部分。堆栈,,.bss等等.data。类似地,实际程序的闪存可以分为几个部分。