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

四川网站开发制作重庆百度推广排名

四川网站开发制作,重庆百度推广排名,恩施北京网站建设,wordpress怎么看网站日志核使用R52,参考汇编模板,一步一步来实现。 首先是ld文件,这个没啥好说的,主要是关注给vector_table划一块地址、stack地址,如下: .text.intvec :{_vectors_start .;KEEP(*(.text.intvec))_vectors_end .;…

        核使用R52,参考汇编模板,一步一步来实现。

        首先是ld文件,这个没啥好说的,主要是关注给vector_table划一块地址、stack地址,如下:

    .text.intvec :{_vectors_start = .;KEEP(*(.text.intvec))_vectors_end = .;} > BOOTROM.irq_stack :{. = ALIGN(16);__IrqStackBase = .;/* Place the irq_stack here. */KEEP(*(.irq_stack)). = irq_stack_size;__IrqStackLimit = .;} > ATCMx

        注意哦,我特别没有在这里还对齐处理,原因是想在.S里验证对齐的作用。

        现在开始写vector_table。

1.Vector Table

        默认情况下,R52复位后是在EL2(Hyp mode).

        因此首先是要把EL2、1等级下的中断向量表给做出来,例如:EL2_Vector_Tabel

.macro vector_section label
.section .text.intvec, "ax"
.endmvector_section EL2_VectorTable:ldr pc, = el2_reset_entryldr pc, = el2_undefine_entry...ldr pc, = el2_irq_entryldr pc, = el2_fiq_entry.align 5
EL1_VectorTable:nop...ldr pc, = el1_irq_entryldr pc, = el1_fiq_entry

        注意看,我在table前面加了个宏,这个标签有什么用呢?

        就是将EL2的table放到链接文件指定的section .text.intvec。

        后面我陆续试过,如果EL2table没有这个标签,会直接放到.text段;如果是放在EL2table下面,那么之后的代码会放到.intvec段,所以,这个宏感觉有点像块砖,哪里需要哪里搬。但是我后面又设计了一下,EL2Table放.intvec段,EL1Table放.text,就必须在EL1Table前加.text的放置。除了上述方式,参考#pragma。

        关于EL1的vectorTable定义,我特地没有做el1_reset_entry。因为R52 reset默认进入EL2模式,因此好像不太需要这个entry,直接定义一个el1的处理函数,这里留个口子,看以后是否会遇到reset 进el1的情况。

        此外,对EL1的table做了对齐,.align 5 表示以2^5对齐。

2. Reset_entry

        el2_reset_entry,以word对齐,为啥?我们现在用的32位,因此填充PC肯定是32位。这里没有.word也没关系,编译器会自动处理。

        现在R52进到了el2的reset_entry里,那么首先要做的就是再确认下是不是el2的模式,为啥?因为pc指针指向的只是一个地址,这个地址里可以是el1_vector_table、也可以是el2的。所以要确认,怎么确认?读取cpsr.mode,如果该mode ==hyp,跳转到正式处理hyp的函数里。否则panic。

2.1 hyp_reset_handler

        这里就主要是设置hyp的中断向量表到HVBAR,使能hyp的cache加快启动速度。

        步骤如下:

  1. 设置HVBAR
  2. 使能EL1访问协处理器寄存器的能力
  3. 如有需要、关闭HVC指令(用户模式下非安全态禁用、核处于安全态禁用)
  4. 设置EL1的VBAR
  5. 保存cpsr到SPSR_hyp(返回EL2模式需要用到)
  6. 设置elr_hyp 为 EL1_init (elr(exception linker register))
  7. 使能TCM,使得EL1\2\0均可访问;且配置TCM大小
  8. 根据情况使能或者关闭TCM slave接口
  9. 调用指令eret,进入EL1

2.2 EL1_init

        在EL1_init最先需要做啥?

        毫无疑问如果没有在EL2设置VBAR,那么就要在这里做VBAR。

        第二个事情就是,初始化C运行环境,具体如下:

  1. .bss段清零,防止出现ECC错误
  2. .data段初始化,将rom数据copy至ram
  3. 各种模式的stack初始化,包括svc、abt、und、irq、fiq等

如下:

    cps  #17                        /* FIQ mode */ldr  sp, =__FiqStackLimitcps  #18                        /* IRQ mode */ldr  sp, =__IrqStackLimitcps  #23                        /* Abort mode */ldr  sp, =__AbtStackLimitcps  #27                        /* Undef mode */ldr  sp, =__UndStackLimitcps  #31                        /* System mode */ldr  sp, =__SysStackLimitcps  #19                        /* SVC mode */ldr  sp, =__SvcStackLimitdsbisb

        最后跳转至main

舒服,学到了一些技巧

http://www.mmbaike.com/news/108943.html

相关文章:

  • 织梦做的网站如何放在网上网站外包公司有哪些
  • 做网站时怎样图片上传怎么才能让图片不变形_有什么插件吗互联网论坛
  • web网站开发实验百度站长工具
  • soho的网站怎么做seo关键词分类
  • 服务器怎么做网站教程营销案例100例简短
  • 企业网站服务门户今日疫情最新数据
  • seo优秀网站杭州上城区抖音seo有多好
  • 论坛网站制作费用吴江seo网站优化软件
  • 怎样做网站关键词优化瑞昌网络推广
  • 如东网站建设网络公司起名
  • 大连龙彩科技的网站在谁家做推广代理登录页面
  • 北京京水建设集团有限公司网站公司网站如何制作设计
  • 网络科技公司网站模板网络营销员岗位的职责与要求
  • 俄罗斯搜索引擎yandex推广入口整站优化系统厂家
  • 深圳网站建站公司seo搜索引擎推广什么意思
  • 营销网站建设网络公司怎么注册一个网站
  • app的设计与开发windows优化大师
  • vue做的小网站bt磁力库
  • 可以上传高清图片的网站并做外链网站排名优化公司
  • 织梦教育网站开发武汉seo公司哪家好
  • 网站建设案例策划百度用户服务中心人工电话
  • 腾博会的网站是什么免费网站收录入口
  • 如今做啥网站能致富10条重大新闻事件
  • 南充网站制作网站seo优化方案项目策划书
  • 网站建设mp4背景佣金高的推广平台
  • 合作制作网站精准营销的概念
  • 免费b2b电子商务网seo推广方法有哪些
  • 滑县网站建设服务灰色词首页排名接单
  • 创意网站建设公司产品优化是什么意思
  • 网站开发协议范本市场营销毕业后做什么工作