alignment < page size
alignment < page size
问:
SylixOS 使用动态加载功能时报错alignment < page size?
答:
SylixOS MMU页表使用了巨型页的配置,由于可执行应用程序在进行编译生成 elf 时还是默认使用标准的页面对齐方式,
所以在加载器在应用程序动态加载运行时出现报错
alignment < page size
解决办法:在编译应用程序时 指定参数-z max-page-szie=xxxx
Related Articles
The currently display page contains invalid values.
问:在设置 SylixOS Project 工程配置时出现 The currently display page contains invalid values. 问题怎么办? 出现这种情况的原因 是因为手动修改了 Makefile 导致的,比如修改了 APP 工程里 config.mk 里面的 Base 路径,或者其他 *.mk 文件所导致。 或者是其他不同类型的工程项目导入进来引起的(其他工程类型与现有工程类型不一致,如:Extension APP 工程或是 lite Base 与 ...
非对齐访问导致程序崩溃的规避方法
Q:运行 app,运行中崩溃的原因及规避方法 经过查验是发现崩溃在了访问非对齐内存上 解决方式:选择 release 模式编译,以及添加一个局部变量传入库函数中,最后再将局部变量赋值给非对齐的内存 文章部分截图 app运行崩溃原因,在 linux 上运行现象,以及解决办法见附件 更多扩展知识见: 参考文章:SylixOS 开发禁(限)用有哪些注意事项
基于 SylixOS arm64 的 ABI 说明
根据 ARM 官方的 AAPCS64 文档说明,X18 是一个平台自定义的寄存器,可用作线程上下文相关处理使用。这样使用的好处是减少了部分压栈和弹栈操作,整体提升了性能。 因为绝大多数用户场景是 C及更高级的语言,所以我们在 gcc 编译的时候已经指定了编译器不要使用 x18。对于客户代码中使用汇编的场景,客户只需要将 x18 修改为别的寄存器即可。 我们这样的处理方式既提升了性能,也能适应绝大多数的场景,并且对于直接用汇编编程的情况只需要做很简单的替换即可。 下图内容摘自ARM ...
SylixOS x86 HPET 定时器驱动
HPET(High Precision Event Timer) 俗称高精度定时器,最低时钟频率为10MHZ,而且定义了比较严格的精确度(间隔 >= 1 毫秒的允许 +-0.05% 的误差,间隔 <=100 微妙的允许 +-0.2% 的误差)。x86 架构中一般支持 HPET 定时器。在 HPET 体系结构中规定 32 个定时器组成一个定时器块,最多可支持 8 个块,也就是 256 个定时器。实际设备中可使用的定时器数量可以从相关寄存器中查询。每个定时器均可以单独配置成一个中断。 在 x86 ...
shstack 命令
说明 该命令用于显示或设置shell任务堆栈大小 格式 shstack [new stack size] new stack size:新堆栈大小 可通过shell命令:help shstack 查看详细信息 示例 1.查看shell任务堆栈大小 [root@sylixos:/root]#shstack default shell stack: 120000 2.设置shell任务堆栈大小(单位字节) root@sylixos:/root]# shstack 40000 default ...