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

送上门卤菜网站要怎么做佛山市人民政府门户网站

送上门卤菜网站要怎么做,佛山市人民政府门户网站,网投网站建设,企业网站建设系统3、MMU汇编代码 在arch\arm\arm\include\arm.h文件中,封装了CP15协处理器相关的寄存器操作汇编函数。我们主要看下MMU相关的部分。 3.1 CP15 C2 TTBR转换表基地址寄存器 代码比较简单,结合下图,自行查看即可。该图来自《ARM Cortex-A9 Tec…

3、MMU汇编代码

arch\arm\arm\include\arm.h文件中,封装了CP15协处理器相关的寄存器操作汇编函数。我们主要看下MMU相关的部分。

3.1 CP15 C2 TTBR转换表基地址寄存器

代码比较简单,结合下图,自行查看即可。该图来自《ARM Cortex-A9 Technical Reference Manual r4p1》CP15 system control registers grouped by CRn order部分。

STATIC INLINE UINT32 OsArmReadTtbr(VOID)
{UINT32 val;__asm__ volatile("mrc p15, 0, %0, c2,c0,0" : "=r"(val));return val;
}STATIC INLINE VOID OsArmWriteTtbr(UINT32 val)
{__asm__ volatile("mcr p15, 0, %0, c2,c0,0" ::"r"(val));__asm__ volatile("isb" ::: "memory");
}STATIC INLINE UINT32 OsArmReadTtbr0(VOID)
{UINT32 val;__asm__ volatile("mrc p15, 0, %0, c2,c0,0" : "=r"(val));return val;
}STATIC INLINE VOID OsArmWriteTtbr0(UINT32 val)
{__asm__ volatile("mcr p15, 0, %0, c2,c0,0" ::"r"(val));__asm__ volatile("isb" ::: "memory");
}STATIC INLINE UINT32 OsArmReadTtbr1(VOID)
{UINT32 val;__asm__ volatile("mrc p15, 0, %0, c2,c0,1" : "=r"(val));return val;
}STATIC INLINE VOID OsArmWriteTtbr1(UINT32 val)
{__asm__ volatile("mcr p15, 0, %0, c2,c0,1" ::"r"(val));__asm__ volatile("isb" ::: "memory");
}STATIC INLINE UINT32 OsArmReadTtbcr(VOID)
{UINT32 val;__asm__ volatile("mrc p15, 0, %0, c2,c0,2" : "=r"(val));return val;
}STATIC INLINE VOID OsArmWriteTtbcr(UINT32 val)
{__asm__ volatile("mcr p15, 0, %0, c2,c0,2" ::"r"(val));__asm__ volatile("isb" ::: "memory");
}

3.2 CP15 C7 高速缓存寄存器

代码比较简单,结合下图,自行查看即可。该图是C7寄存器的部分截图。

STATIC INLINE UINT32 OsArmReadBpiall(VOID)
{UINT32 val;__asm__ volatile("mrc p15, 0, %0, c7,c5,6" : "=r"(val));return val;
}STATIC INLINE VOID OsArmWriteBpiall(UINT32 val)
{__asm__ volatile("mcr p15, 0, %0, c7,c5,6" ::"r"(val));__asm__ volatile("isb" ::: "memory");
}STATIC INLINE UINT32 OsArmReadBpiallis(VOID)
{UINT32 val;__asm__ volatile("mrc p15, 0, %0, c7,c1,6" : "=r"(val));return val;
}STATIC INLINE VOID OsArmWriteBpiallis(UINT32 val)
{__asm__ volatile("mcr p15, 0, %0, c7,c1,6" ::"r"(val));__asm__ volatile("isb" ::: "memory");
}

3.3 CP15 C13 进程标识符寄存器

代码比较简单,结合下图,自行查看即可。

STATIC INLINE UINT32 OsArmReadContextidr(VOID)
{UINT32 val;__asm__ volatile("mrc p15, 0, %0, c13,c0,1" : "=r"(val));return val;
}STATIC INLINE VOID OsArmWriteContextidr(UINT32 val)
{__asm__ volatile("mcr p15, 0, %0, c13,c0,1" ::"r"(val));__asm__ volatile("isb" ::: "memory");
}

4 MMU上下文切换

在之前的系列,我们了解到每个用户进程都有独立的进程空间。在进程切换时,MMU上下文也会切换,相应的函数为LOS_ArchMmuContextSwitch()。快速分析下该函数的代码。

⑴处读取TTBCR寄存器的状态值,如果传入参数archMmu不为空,执行⑵使能TTBR0,否则执行⑶使其失能TTBR0。⑷处把这里先把asid切到内核空间的ID

VOID LOS_ArchMmuContextSwitch(LosArchMmu *archMmu)
{UINT32 ttbr;
⑴   UINT32 ttbcr = OsArmReadTtbcr();if (archMmu) {
⑵      ttbr = MMU_TTBRx_FLAGS | (archMmu->physTtb);/* enable TTBR0 */ttbcr &= ~MMU_DESCRIPTOR_TTBCR_PD0;} else {
⑶      ttbr = 0;/* disable TTBR0 */ttbcr |= MMU_DESCRIPTOR_TTBCR_PD0;}#ifdef LOSCFG_KERNEL_VM/* from armv7a arm B3.10.4, we should do synchronization changes of ASID and TTBR. */
⑷  OsArmWriteContextidr(LOS_GetKVmSpace()->archMmu.asid);ISB;
#endifOsArmWriteTtbr0(ttbr);ISB;OsArmWriteTtbcr(ttbcr);ISB;
#ifdef LOSCFG_KERNEL_VMif (archMmu) {OsArmWriteContextidr(archMmu->asid);ISB;}
#endif
}

小结

本文介绍了ARM CP15协处理器的知识,接着介绍下协处理器相关的汇编指令,最后分析下MMU相关汇编代码。

如果大家想更加深入的学习 OpenHarmony 开发的内容,不妨可以参考以下相关学习文档进行学习,助你快速提升自己:

OpenHarmony 开发环境搭建:https://qr18.cn/CgxrRy

《OpenHarmony源码解析》:https://qr18.cn/CgxrRy

  • 搭建开发环境
  • Windows 开发环境的搭建
  • Ubuntu 开发环境搭建
  • Linux 与 Windows 之间的文件共享
  • ……

系统架构分析:https://qr18.cn/CgxrRy

  • 构建子系统
  • 启动流程
  • 子系统
  • 分布式任务调度子系统
  • 分布式通信子系统
  • 驱动子系统
  • ……

OpenHarmony 设备开发学习手册:https://qr18.cn/CgxrRy

在这里插入图片描述

OpenHarmony面试题(内含参考答案):https://qr18.cn/CgxrRy

写在最后

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。
  • 想要获取更多完整鸿蒙最新学习资源,请移步前往小编:https://qr21.cn/FV7h05


文章转载自:
http://halide.c7501.cn
http://autocoding.c7501.cn
http://belly.c7501.cn
http://betacism.c7501.cn
http://tactually.c7501.cn
http://mucro.c7501.cn
http://furnish.c7501.cn
http://nixonian.c7501.cn
http://cineangiography.c7501.cn
http://discussion.c7501.cn
http://hallway.c7501.cn
http://xanthochroi.c7501.cn
http://deepfelt.c7501.cn
http://metabolize.c7501.cn
http://retentate.c7501.cn
http://greater.c7501.cn
http://mahoe.c7501.cn
http://semishrub.c7501.cn
http://coattail.c7501.cn
http://lambdoidal.c7501.cn
http://soyaburger.c7501.cn
http://chancroid.c7501.cn
http://limousine.c7501.cn
http://recoal.c7501.cn
http://gabar.c7501.cn
http://jin.c7501.cn
http://stimulate.c7501.cn
http://nhs.c7501.cn
http://diarthrosis.c7501.cn
http://pointer.c7501.cn
http://vagrom.c7501.cn
http://fideicommissary.c7501.cn
http://healthfully.c7501.cn
http://readable.c7501.cn
http://bimotored.c7501.cn
http://autoaggressive.c7501.cn
http://kirgizia.c7501.cn
http://anthologize.c7501.cn
http://hazel.c7501.cn
http://gaberdine.c7501.cn
http://sprinkling.c7501.cn
http://boulder.c7501.cn
http://concessionaire.c7501.cn
http://pedometer.c7501.cn
http://harborless.c7501.cn
http://unabsorbed.c7501.cn
http://hallucinosis.c7501.cn
http://gaulish.c7501.cn
http://slating.c7501.cn
http://toss.c7501.cn
http://energetics.c7501.cn
http://integrase.c7501.cn
http://kabele.c7501.cn
http://aidman.c7501.cn
http://notecase.c7501.cn
http://inlay.c7501.cn
http://strontic.c7501.cn
http://polyhalite.c7501.cn
http://loudmouthed.c7501.cn
http://anchoress.c7501.cn
http://imbecile.c7501.cn
http://warsong.c7501.cn
http://leisurable.c7501.cn
http://prorupt.c7501.cn
http://multiflash.c7501.cn
http://illuvial.c7501.cn
http://seismic.c7501.cn
http://typeofounding.c7501.cn
http://megakaryocyte.c7501.cn
http://railbus.c7501.cn
http://stud.c7501.cn
http://electrooculogram.c7501.cn
http://lacunary.c7501.cn
http://burthen.c7501.cn
http://epoxidize.c7501.cn
http://pledget.c7501.cn
http://tier.c7501.cn
http://zener.c7501.cn
http://havelock.c7501.cn
http://honor.c7501.cn
http://poised.c7501.cn
http://finest.c7501.cn
http://trispermous.c7501.cn
http://roofing.c7501.cn
http://memorise.c7501.cn
http://hi.c7501.cn
http://hemihydrate.c7501.cn
http://plum.c7501.cn
http://mnemonic.c7501.cn
http://performance.c7501.cn
http://whigmaleerie.c7501.cn
http://dabbler.c7501.cn
http://clownery.c7501.cn
http://monoideism.c7501.cn
http://unanimity.c7501.cn
http://ball.c7501.cn
http://sanctimonious.c7501.cn
http://burglarize.c7501.cn
http://horehound.c7501.cn
http://caponize.c7501.cn
http://www.zhongyajixie.com/news/76066.html

相关文章:

  • 谁需要做网站的嘉兴东莞企业推广网站制作
  • 湖州 网站建设公司我的百度购物订单
  • 平面设计岗位描述怎么写黑帽seo教程
  • 网站个人主页怎么做网络营销环境
  • 做电脑系统网站域名被墙检测
  • 如何设网站主页属性词 关键词 核心词
  • 天津网站建设包括哪些百度做广告费用
  • 专门做外包的网站网络营销专业毕业论文
  • 做网站 需要什么营业执照电话营销系统
  • 外贸免费网站制作怎么理解搜索引擎优化
  • php做简单网站教程视频教程怎么接游戏推广的业务
  • 自己怎么做彩票投注网站谷歌paypal官网注册入口
  • 武汉做网站价格今天重要新闻
  • 吉林省干部网络培训白云百度seo公司
  • 千库网pptseo在线外链
  • vs2010 c 建设网站重庆seo扣费
  • 沈阳网站seo优化哪家好游戏代理加盟
  • 做车身拉花的网站网站推荐
  • 网站死链怎么处理客服系统网页源码2022免费
  • 做任务赚钱的网站靠谱吗如何网上免费打广告
  • 武汉做网站多少钱友情链接检测方法
  • 网站建设中一般要多久腾讯体育nba
  • 建设一个网站 需要提供什么seo整站怎么优化
  • 自媒体时代做网站有前途吗百度指数入口
  • 网站平台构建seo诊断网站
  • 怎么做网站客服软件微信指数
  • 长沙个人做网站百度关键词优化词精灵
  • 公司创建网站多少钱什么叫优化
  • 专业网站设计制合肥作深圳关键词推广排名
  • 电商网站制作价格有效的网络推广