当前位置: 首页 > news >正文

传奇手游新开服网站wordpress 公司网站 模板 下载

传奇手游新开服网站,wordpress 公司网站 模板 下载,织梦 xml 网站地图,联合年检怎么做网站上基本概念 在硬件资源有限的小设备中,需要通过算法的动态部署能力来解决无法同时部署多种算法的问题。以开发者易用为主要考虑因素,同时考虑到多平台的通用性,LiteOS-M选择业界标准的ELF加载方案,方便拓展算法生态。LiteOS-M提供类…

基本概念

在硬件资源有限的小设备中,需要通过算法的动态部署能力来解决无法同时部署多种算法的问题。以开发者易用为主要考虑因素,同时考虑到多平台的通用性,LiteOS-M选择业界标准的ELF加载方案,方便拓展算法生态。LiteOS-M提供类似于dlopen、dlsym等接口,APP通过动态加载模块提供的接口可以加载、卸载相应算法库。如图1所示,APP需要通过三方算法库所需接口获取对应信息输出,三方算法库又依赖内核提供的基本接口,如malloc等。APP加载所需接口,并对相关的未定义符号完成重定位后,APP即可调用该接口完成功能调用。目前动态加载组件只支持arm架构。此外,待加载的共享库需要验签或者限制来源,确保系统的安全性。

图1 LiteOS-M内核动态加载架构图

1

运行机制

符号表导出

共享库调用内核接口需要内核主动暴露动态库所需的接口,如图2所示,该机制将符号信息编译到指定段中,调用SYM_EXPORT宏即可完成对指定符号的信息导出。符号信息通过结构体SymInfo描述,成员包括符号名和符号地址信息,宏SYM_EXPORT通过__attribute__编译属性将符号信息导入.sym.*段中。

typedef struct {CHAR    *name;UINTPTR addr;
} SymInfo;#define SYM_EXPORT(func)                                            \
const SymInfo sym_##func __attribute__((section(".sym."#func))) = { \.name = #func,                                                  \.addr = (UINTPTR)func                                           \
};

图2 导出的符号表信息

2

ELF文件加载

加载过程中,根据ELF文件的句柄以及程序头表的段偏移可以得到需要加载到内存的LOAD段,一般有两个段,只读段及读写段,如下所示,可以用readelf -l查看ELF文件的LOAD段信息。如图3所示,根据相应的对齐属性申请物理内存,通过每个段的加载基址及偏移将代码段或数据段写入内存中。

$ readelf -l lib.soElf file type is DYN (Shared object file)
Entry point 0x5b4
There are 4 program headers, starting at offset 52Program Headers:Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg AlignEXIDX          0x000760 0x00000760 0x00000760 0x00008 0x00008 R   0x4LOAD           0x000000 0x00000000 0x00000000 0x0076c 0x0076c R E 0x10000LOAD           0x00076c 0x0001076c 0x0001076c 0x0010c 0x00128 RW  0x10000DYNAMIC        0x000774 0x00010774 0x00010774 0x000c8 0x000c8 RW  0x4Section to Segment mapping:Segment Sections...00     .ARM.exidx01     .hash .dynsym .dynstr .rel.dyn .rel.plt .init .plt .text .fini .ARM.exidx .eh_frame02     .init_array .fini_array .dynamic .got .data .bss03     .dynamic

图3 ELF文件的加载过程

3

ELF文件链接

如图4所示,通过ELF文件的.dynamic段获取重定位表,遍历表中每一个需要重定位的条目,再根据需要重定位的符号名在共享库和内核提供的导出符号表中查找相应符号并更新相应的重定位信息。

图4 ELF文件的链接过程

4

ELF支持规格

ELF支持类型

编译共享库时,添加-fPIC可以编译出位置无关代码(-fPIC为编译选项),此时共享库文件类型为ET_DYN,其可以加载至任意有效的地址区间。

例:arm-none-eabi-gcc -fPIC –shared –o lib.so lib.c

ELF共享库编译链接选项

  1. “-nostdlib”编译链接选项:不依赖编译器中lib库。
  2. “-nostartfiles”编译链接选项:不依赖编译器中启动相关的文件。
  3. “-fPIC”编译选项:可编译位置无关的共享库。
  4. “-z max-page-size=4”链接选项:二进制文件中可加载段的对齐字节数为4,可节约内存,可用于动态库。
  5. “-mcpu=”需要指定对应的CPU架构。

以上就是本篇文章所带来的鸿蒙开发中一小部分技术讲解;想要学习完整的鸿蒙全栈技术。可以在结尾找我可全部拿到!
下面是鸿蒙的完整学习路线,展示如下:
1

除此之外,根据这个学习鸿蒙全栈学习路线,也附带一整套完整的学习【文档+视频】,内容包含如下

内容包含了:(ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、鸿蒙南向开发、鸿蒙项目实战)等技术知识点。帮助大家在学习鸿蒙路上快速成长!

鸿蒙【北向应用开发+南向系统层开发】文档

鸿蒙【基础+实战项目】视频

鸿蒙面经

2

为了避免大家在学习过程中产生更多的时间成本,对比我把以上内容全部放在了↓↓↓想要的可以自拿喔!谢谢大家观看!
3

http://www.yayakq.cn/news/281336/

相关文章:

  • 建站什么程序好栖霞网站设计
  • 制作广告网站的步骤Wordpress上传媒体错误
  • 图片分享网站建设中美关系最新消息
  • 访问自己做的网站吗凡科网站建设步骤
  • 建设中心小学网站wordpress关闭注册
  • 网站开发公司交易流程有赞商城官网登录
  • 湖南网站建设效果现在最常用网站开发工具
  • 怎么做视频直播网站建筑工程资质查询平台
  • 海口高端品牌网站建设南昌做网站的公司
  • 制作企业网站怎么报价wordpress定制
  • 网站怎么下载视频集团网站建设 中企动力
  • 可以把网站建设在云主机上吗广州投标平台
  • 做的网站 v2ex织梦网站首页怎么修改
  • 获得网站后台地址顺义哪里有做网站设计的
  • 蓝色网站配色方案怎么看一个网站是不是仿站
  • 行业网站名称做国际物流在哪些网站找客户
  • 给别人网站做跳转园林景观在线设计平台
  • 制作简易网站公众号开发者模式
  • 青岛胶南市城乡建设局网站自己怎做网站后台
  • 网站建设需求统计表wordpress医疗模板
  • 网上自己建网站临汾住房与城乡建设厅网站
  • 网站建设经典范例做网站和做推广有什么区别
  • wordpress网站加速工具好看响应式网站模板
  • 比价网站怎么做检测网站死链
  • 服装设计资源网站菜鸟怎么做网站
  • 阜阳企业网站推广网站设计团队发展
  • 如何做网站价格策略旅游产品设计方案
  • seo网站搭建是什么专做it招聘的网站
  • phpmysql网站设计小学生手工制作
  • 山东省住房和建设厅注册中心网站门户云企业官网建设