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

做移动网站快速排盘古百度推广靠谱吗

做移动网站快速排,盘古百度推广靠谱吗,做企业网站要多少钱,网站建设 发展历程开源鸿蒙中芯片与开发板对应的源码(硬件相关的部分) 作者将狼才鲸日期2024-03-20 开源鸿蒙通过芯片仓存放指定芯片和指定开发板的代码,硬件相关的代码和纯逻辑代码是分开存放的 源码模块的组织结构在manifest这个Git仓库,这也是拉…

开源鸿蒙中芯片与开发板对应的源码(硬件相关的部分)

作者将狼才鲸
日期2024-03-20

  • 开源鸿蒙通过芯片仓存放指定芯片和指定开发板的代码,硬件相关的代码和纯逻辑代码是分开存放的

    • 源码模块的组织结构在manifest这个Git仓库,这也是拉取源码时的顶层仓库:https://gitee.com/openharmony/manifest
    • 平台仓都组织在manifests/ohos/ohos.xml文件中,而芯片仓都组织在manifests/chipsets/目录下
    • 每个芯片平台会在device和vendor目录下创建相应的仓,把这类仓称为芯片仓,其它的仓称为平台仓,芯片仓可能会随着硬件的演进而逐渐废弃,生命周期相对较短
    • default.xml由ohos/ohos.xml和chipsets/all.xml组成,是所有平台仓和芯片仓的集合;可以通过缺省参数下载所有代码仓(全量代码)
    • chipsets/chipsetN/chipsetN-detail.xml是单个芯片平台所引入的仓集合
    • 每个开发板的chipsets/chipsetN/chipsetN-detail.xml里主要包括device/soc,device/board以及vendor相关仓
    • 官方支持的开发板和模拟器种类-编译形态整体说明
  • 因为硬件各种各样,为了学习方便,这里选择几个ARM核的QEMU模拟器(不使用硬件,使用虚拟开发板)

    • 编译参数(产品名):qemu_arm_linux_headless,开发板名称:qemu-arm-linux,芯片名称:qemu,芯片内核:ARM Cortex-A,系统类型:标准,系统内核:linux,开发板参数:https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_arm_linux_headless/config.json
    • 编译参数(产品名):qemu_small_system_demo,开发板名称:arm_virt,芯片名称:qemu,芯片内核:ARM Cortex-A,系统类型:小型,系统内核:liteos_a,开发板参数:https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_small_system_demo/config.json
    • 编译参数(产品名):qemu_mini_system_demo,开发板名称:arm_mps2_an386,芯片名称:qemu,芯片内核:ARM Cortex-M4,系统类型:轻型,系统内核:liteos_m,开发板参数:https://gitee.com/openharmony/vendor_ohemu/blob/master/qemu_mini_system_demo/config.json
  • verdor芯片仓的开发板配置

    • https://gitee.com/openharmony/vendor_ohemu/tree/master/qemu_arm_linux_headless
    • https://gitee.com/openharmony/vendor_ohemu/tree/master/qemu_small_system_demo
    • https://gitee.com/openharmony/vendor_ohemu/tree/master/qemu_mini_system_demo
  • device芯片仓的源码和配置

    • https://gitee.com/openharmony/device_qemu/tree/master/arm_virt/linux
    • https://gitee.com/openharmony/device_qemu/tree/master/arm_virt/liteos_a
    • https://gitee.com/openharmony/device_qemu/tree/master/arm_virt/liteos_a_mini
    • https://gitee.com/openharmony/device_qemu/tree/master/arm_mps2_an386含上电后的初始化代码
    • https://gitee.com/openharmony/device_qemu/tree/master/drivers
  • 参考网址:

    • QEMU Arm MPS2 and MPS3 boards

源码框架

  • 以下配置文件指示了你要下载哪些Git仓库,并将他们拉取到哪个子文件夹下,拉取完成后才会构成完整的开源鸿蒙源码

    • https://gitee.com/openharmony/manifest/blob/master/default.xml 分为平台仓和芯片仓
    • https://gitee.com/openharmony/manifest/blob/master/ohos/ohos.xml 所有与硬件无关的平台仓,按group类型拉取代码,是你的group则拉取,不是则忽略
      • 例如,将 https://gitee.com/openharmony/kernel_liteos_m 仓库拉取到 kernel/liteos_m 目录下
    • https://gitee.com/openharmony/manifest/blob/master/chipsets/all.xml 所有与硬件相关的芯片仓,按芯片名称分类
    • https://gitee.com/openharmony/manifest/blob/master/chipsets/qemu.xml 选中一款芯片,例如选中qemu这款虚拟芯片,平台仓还是选中全量,芯片仓则选中特有的
    • https://gitee.com/openharmony/manifest/blob/master/chipsets/qemu/qemu.xml qemu这款虚拟芯片的芯片仓代码
      • 将 https://gitee.com/openharmony/vendor_ohemu 这个仓库拉取到 vendor/ohemu 文件夹下,含模块依赖关系、操作系统的配置参数、OEM-ID-密钥源码
      • 将 https://gitee.com/openharmony/device_qemu 这个仓库拉取到 device/qemu 文件夹下,包含芯片相关驱动底层硬件相关部分
  • 以ARM Cortex-M内核的arm_mps2_an386开发板为例,简述源码结构

  • openHarmony\device\qemu\arm_mps2_an386\liteos_m\board\startup.s(源码网址https://gitee.com/openharmony/device_qemu/blob/master/arm_mps2_an386/liteos_m/board/startup.s) 中描述了芯片上电后的第二行代码:复位中断(第一行代码RAM 0地址的复位中断融合到编译器里面去了),在复位中断中跳转到C语言的main函数

.global Reset_Handler.section .text
.type  Reset_Handler, %function
Reset_Handler:ldr  r0, =__bss_startldr  r1, =__bss_endmov  r2, #0bss_loop:str  r2, [r0, #0]add  r0, r0, #4subs r3, r1, r0bne  bss_loopldr  sp, =__irq_stack_topb    main
.size  Reset_Handler, .-Reset_Handler
  • openHarmony\device\qemu\arm_mps2_an386\liteos_m\board\main.c(源码网址https://gitee.com/openharmony/device_qemu/blob/master/arm_mps2_an386/liteos_m/board/main.c) 中在main函数里面启动操作系统
/*****************************************************************************Function    : mainDescription : Main function entryInput       : NoneOutput      : NoneReturn      : None*****************************************************************************/
LITE_OS_SEC_TEXT_INIT int main(void)
{unsigned int ret;UartInit();ret = LOS_KernelInit();if (ret != LOS_OK) {printf("LiteOS kernel init failed! ERROR: 0x%x\n", ret);goto EXIT;}
#if (LOSCFG_SUPPORT_LITTLEFS == 1)LfsLowLevelInit();
#endifUart0RxIrqRegister();NetInit();#if (LOSCFG_USE_SHELL == 1)ret = LosShellInit();if (ret != LOS_OK) {printf("LosAppInit failed! ERROR: 0x%x\n", ret);}
#endifret = LosAppInit();if (ret != LOS_OK) {printf("LosAppInit failed! ERROR: 0x%x\n", ret);}LOS_Start();EXIT:while (1) {__asm volatile("wfi");}
}
  • openHarmony\device\qemu\arm_mps2_an386\liteos_m\board\driver 包含了芯片的底层驱动代码
  • 接下来就是理解操作系统内核模块,当前时LiteOS-M、LiteOS-A和Linux,之后会全部换成鸿蒙内核
http://www.dinnco.com/news/22928.html

相关文章:

  • 洛阳网站建设优化凡科建站网站
  • 做网站需要硬件软件seo搜索引擎优化价格
  • 做我女朋友恶搞网站外链seo
  • 个人网站可以做论坛吗网络营销总结
  • 贺州网站seo石嘴山网站seo
  • 大众点评网站团购怎么做青岛seo软件
  • 福州做公司网站厦门人才网招聘官网
  • 一个网站绑定多个域名 卖域名网络推广都有哪些方式
  • 北京网站建设培训优化关键词的方法包括
  • 有心学做网站百度提交网站的入口地址
  • 阿里云 iis 多个网站怎么做盲盒
  • 学生怎么制作网站南宁seo全网营销
  • 网站推广建设加盟seo优化推广技巧
  • 环球资源外贸网中文版seo网站关键词优化价格
  • 漯河哪个网站推广效果好百度推广官网入口
  • 山西省政府网站建设的公司seo排名规则
  • 网站制作的动画怎么做的天津关键词排名提升
  • 制作网站软件作品广州网站设计
  • 怎么开自己的网站女教师遭网课入侵直播录屏曝光i
  • 为什么要做手机网站开发宁波受欢迎全网seo优化
  • 网站如何做sem网站建设的整体流程有哪些
  • 广西网站怎么制作seo按照搜索引擎的什么对网站
  • 宜兴做阿里巴巴网站营销软文100字
  • 中山短视频seo教程优化培训内容
  • 青县网站建设网址大全名称
  • 免费开商城网站吗东莞快速优化排名
  • asp做的手机网站国内可访问的海外网站和应用
  • 怎样把自己做的网站放到网上建立公司网站需要多少钱
  • 遵义网站开发百度搜不干净的东西
  • 关于网站开发技术东莞网站建设推广品众