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

南通优普网站建设制作网站建设服务器价格

南通优普网站建设制作,网站建设服务器价格,馆陶网站,成都酒店设计公司本文分为2个部分#xff1a;第1部分简要介绍如何读鸿蒙Liteos源码#xff0c;第2部分是实验向LiteOS中添加一个系统调用的完整过程。 前置资料#xff1a; imx6ull开发板使用方式详解 源码下载 编译运行简单程序 Ubuntu虚拟机使用鸿蒙LiteOs操作系统常见错误汇总 一、鸿…本文分为2个部分第1部分简要介绍如何读鸿蒙Liteos源码第2部分是实验向LiteOS中添加一个系统调用的完整过程。 前置资料 imx6ull开发板使用方式详解 源码下载 编译运行简单程序 Ubuntu虚拟机使用鸿蒙LiteOs操作系统常见错误汇总 一、鸿蒙Liteos读源码教程 鸿蒙的源码是放在openharmony文件夹下openharmony下的kernel文件夹存放操作系统内核的相关代码和实现。 内核是操作系统的核心部分所以像负责资源管理、任务调度、内存管理、设备驱动、进程通信的源码都可以在kernel文件夹里看到。 进入到kernel文件夹下后会看到liteos_a和liteos_m我们只需要知道liteos_a是针对嵌入式设备的所以像我们实验用的开发板就是看liteos_a下的代码而liteos_m是针对物联网设备设计的所以我们暂时先不去看这个。 友情提示ubuntu虚拟机是有可视化界面的只需要在桌面上点击进入Files即可看到系统中的文件 进入liteos_a后真正的核心代码同样是存储在kernel下的 主要介绍3个比较重要的 base该文件夹包含操作系统内核的基础部分如调度器同步机制内存管理等基础功能的实现。 include该文件夹包含内核需要的所有头文件。 user该文件夹包含一些用户级别的功能如用户任务用户接口等。 所以如果想查看有关内核的代码就进入base文件夹想查看或者修改头文件就进入include文件夹。 假设我们现在进入到base文件夹 接下来我逐一向大家简要介绍 core包含了内核的核心代码比如初始化代码启动代码等。 include包含了base部分所有的头文件。 ipc是inter-process communication的缩写和进程相关包含了实现进程间通信的代码。 mem是内存缩写包含了实现内存管理的代码如内存分配、内存释放等。 misc包含杂项代码如工具函数调试功能。 mp包含多处理器相关的代码如多核心调度同步等。 om包含LiteOS的运维相关代码。 sched是调度缩写包含了LiteOS的任务调度代码包括任务的创建删除切换等。 vm是虚拟内存的缩写包含了实现虚拟内存管理的代码如页表管理地址转换等。 二、向LiteOS中添加一个系统调用 实验要求 该实验需要分别在用户态和内核态完成两部分内容 内容1在用户态下要为新添加的系统调用增加相应的库函数作为接口。 内容2在内核态下要添加与接口函数对应的系统调用。 编写一个应用程序该应用程序通过调用第一步中添加的库函数接口进而触发新添加的系统调用从而验证新添加系统调用的正确性。 参考资料 OpenHarmony LiteOS-A内核文档之学习--系统调用-开源基础软件社区-51CTO.COM 第1步在内核态添加系统调用号 打开/home/book/openharmony/prebuits/lite/sysroot/usr/include/arm-liteos/bits/syscall.h文件添加如下代码 #define __NR_hxsyscall   (__NR_OHOS_BEGIN 21) 在同文件里的末尾添加如下代码 #define SYS_hxsyscall    (__NR_OHOS_BEGIN 21) 解释定义一个名为__NR_hxsyscall和SYS_hxsyscall的宏其值为(__NR_OHOS_BEGIN 21)自定义了系统调用的系统调用号。这样定义了宏之后可以在代码中使用__NR_hxsyscall或SYS_hxsyscall来代表自定义的系统调用号以方便后续在代码中调用该系统调用。 两个宏实际上是等价的只是提供了不同的命名选项。开发者可以根据需要选择使用SYS_hxsyscall或者__NR_hxsyscall。 如果是在用户空间用户态代码中可能会使用没有前缀的版本而在内核内核态代码中则可能会使用有前缀的版本但这完全取决于项目的具体代码风格和约定。 第2步在用户态添加系统调用号 在/openharmony/third_party/musl/kernel/obj/include/bits/syscall.h文件添加如下代码 #define __NR_hxsyscall    (__NR_OHOS_BEGIN 21) 解释 /openharmony/third_party/musl/kernel/obj/include/bits/syscall.h文件是位于 musl libc 库的内核代码中运行在用户态。 /home/book/openharmony/prebuits/lite/sysroot/usr/include/arm-liteos/bits/syscall.h文件是位于 OhOS Lite 操作系统的系统头文件中运行在内核态。 所以第1步是在内核态添加系统调用号第2步是在用户态添加系统调用号。 第3步添加函数定义和实现 进入home/book/openharmony/kernel/liteos_a/syscall/los_syscall.h新增系统调用函数的声明 syscall同级目录添加.c文件用于写入系统调用函数内容 实现系统调用函数 第4步实现调用号和调用函数间的映射关系 打开/home/book/openharmony/kernel/liteos_a/syscall/syscall_lookup.h文件新增系统调用号和系统调用函数之间的映射关系 将用户态的系统调用宏__NR_hxsyscall和系统调用函数HxSyscall进行映射相当于就是关联。 第5步编写测试函数 在/home/book/doc_and_source_for_openharmony/apps下创建hxsyscall文件夹再创建Makefile和hxsyscall.c文件可以直接拷贝hello的内容进行修改 修改hxsyscall.c内容调用用户态的系统调用宏传入参数 说明因为前面已经将SYS_hxsyscall这个宏与HxSyscall这个系统调用函数关联所以“wake up”会作为一个参数传入下图的HxSyscall函数中最终能够输出Hx call you to wake up! 然后修改Makefile的内容 在同级目录下打开终端输入make进行编译 第6步重新编译内核 这一步很关键因为新增了一个系统调用号必须要重新编译内核才能使调用号生效并与系统调用函数进行关联。 首先删掉/openharmony/kernel/liteos_a/out/imx6ull的下面几个文件 进入/openharmony/kernel/liteos_a然后进入命令栏先输入下两行代码确保操作万无一失 cd /home/book/openharmony/kernel/liteos_a cp tools/build/config/debug/imx6ull_clang.config .config 再输入make clean 然后输入make -j 8 再输入make rootfs编译根文件系统 将out/imx6ull下的rootfs.img改名为rootfs.jffs2 cp out/imx6ull/rootfs.img out/imx6ull/rootfs.jffs2 第7步开发板运行 把apps下的hxsyscall下的hysyscall文件手动复制到home/openharmony/kernel/liteos_a/out/imx6ull/rootfs/bin目录下重新制作rootfs.jfss2 openharmony/kernel/liteos_a/out/imx6ull下打开终端输入mkfs.jffs2 -s 0x10000 -e 0x10000 -d rootfs -o rootfs.jffs2 该命令创建了一个页面大小和擦除块大小均为64KB的JFFS2文件系统镜像包含了rootfs目录下的所有内容并将这个镜像保存为rootfs.jffs2文件。这个镜像随后可以被烧录到闪存中为嵌入式设备提供一个初始的文件系统。 回到电脑先删掉/doc_and_source_for_openharmony_imx6ull/IMX6ULL/开发板配套资料/软件/烧写工具/100ask_files_imx6ull烧写工具/file文件夹下已有的liteos.bin和rootfs.jffs2文件。 然后把新的liteos.bin和rootfs.jffs2复制该文件夹下 先连接上开发板然后打开MobaXterm连接上串口然后点击下载到内存并启动。 按照第一次试验启动开发板出现81000000输入cd ./bin再输入ls可以看到文件和虚拟机里的文件一致 输入./hxsyscall输出显示Hx call you to wake up!
http://www.pierceye.com/news/37452/

相关文章:

  • 微信订单网站模版网页加速器浏览器
  • 网站建设工作室有几个部门html购物网站模板
  • 西安哪里找做网站公司网站节点加速
  • 网站建立数据库网上申请公司注册流程
  • 给个网站好人有好报2021深圳市建设交易宝安
  • 佛山做网站制作网站可以做无形资产吗
  • 购物中心网站建设游戏道具网站开发
  • 网站建设东营建设网站的效益分析
  • 网站开发系统绿色版企业名录是什么
  • 新开网站做内贸业务员好做网站开发背景知识论文
  • 校园二手交易网站值得做吗深圳做官网的公司
  • 广州做网站的网络公司排名行业网站需要如何做
  • 网站搜索功能模块北京企业网站
  • 南宁手机网站开发策划深圳提供网站建设服务平台
  • 夫唯seo系统培训seo推广品牌排行榜
  • 腾讯快速建站平台企业网站建设发展平台
  • 照片书那个网站做的好专业做京东网站吗
  • 四川 网站建设科技股
  • 系统网站建设ppt模板网站定制公司推荐
  • 广州市建设集团网站首页进入公众号会有记录吗
  • 佳城建站 网站呼和浩特市网站
  • 找施工方案上哪个网站装修平台网站排名前十名
  • 手机网站设计尺寸农业公司网站建设方案
  • 石家庄做网站那家好建立网络的流程
  • 厦门模版网站张店区网站建设特点有哪些 谢谢
  • 网站开发工程师职业番禺网站建设公司哪家好
  • 灵犀科技 网站开发沧州企业网站建设
  • 英文网站提交瑞昌建站公司
  • 江苏住房城乡建设厅网站编程scratch
  • 网站开发后期工作包括那两个部分企业网站源码交易