据我了解,PC/嵌入式系统启动后,操作系统将占据整个 RAM 区域,RAM 将如下所示:
这意味着,当我运行我编写的程序时,所有变量、堆栈中分配的动态内存、堆等都将保留在该区域内。如果我运行 firefox、paint、gedit 等,它们也会在这个区域运行。(这个理解正确吗?)
但是,我想缩小操作系统区域。下面是我想如何划分 RAM 的说明:
我想这样做的原因是,我想将一些通过驱动程序从外部接收的数据存储到Custom Region
固定的物理位置,然后我将能够直接从用户空间访问它而无需使用copy_to_user()
.
我认为可以通过配置u-boot来做到这一点,但是我没有u-boot的经验,谁能给我一些从哪里开始的指导,例如:我是否需要修改u-boot的源,或者改变environment variables
u-boot就足够了?
或者有没有其他方法可以做到这一点?
任何帮助深表感谢。谢谢!
p/s:我使用的是 TI ARM 处理器,并从 SD 卡启动,我不确定这是否重要。