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

买一个app软件要多少钱seo管理软件

买一个app软件要多少钱,seo管理软件,目前做批发比较好的b2b网站,怎样做触屏版手机网站SAM9X60 ARM9 boot启动流程关键词介绍: 第一级bootloader - 也叫boot ROM,是集成在MPU内部的ROM里面 它的主要功能是执行对MPU的基本初始化和配置,查找并将第二级bootloader从外部NVM中读取出来并放到MPU内部的SRAM. 可以让MPU强制停留在第一…

SAM9X60 ARM9 boot启动流程关键词介绍:

  • 第一级bootloader - 也叫boot ROM,是集成在MPU内部的ROM里面

它的主要功能是执行对MPU的基本初始化和配置,查找并将第二级bootloader从外部NVM中读取出来并放到MPU内部的SRAM.
可以让MPU强制停留在第一级bootloader(boot ROM)阶段,然后配合Microchip提供的SAM-BA在系统编程工具去完成NVM(NOR、NAND、eMMC/SD卡)的擦写、编程写入等操作,或者配置MPU启动配置字,让MPU工作在所需要设定的模式(比如默认从QSPI0或者QSPI1启动,更改管脚默认映射关系等)。

  • NVM - Non-Volatile Memory 非易失存储器,指MPU外部用来存储用户代码的各种闪存设备,可以是SPI/QSPI/并行 Nor Flash、Nand Flash或者eMMC/SD卡等。
  • 第二级bootloader - 也是常提到的at91bootstrap,是Microchip原厂提供的,用于在MPU上电后运行的第一级bootloader(boot ROM)后去加载并继续运行的一小段代码,完成MPU的进一步初始化和配置,然后去外部NVM中寻找并加载第三级的用户代码(可以是RTOS代码或者U-boot、或Linux内核)到外部DRAM中。
  • 第三级bootloader - 也是大家熟悉的U-Boot,它是一个开源的bootloader,通常用来配置和初始化外设,加载和运行Linux OS,Microchip有专门维护针对其处理器MPU的U-Boot代码并放在github上供下载 - https://github.com/linux4microchip/。

SAM9X60 MPU boot启动流程详解:

1. 处理器(MPU)复位

系统上电后,SAM9X60 MPU开始执行boot启动流程,由RSTC(Reset Controller)负责处理MPU所有的复位相关事情。 包括下图所示的各种机制产生的复位事件输入

  • VDDBU POR - VDD Backup备份电源POR(Power On Reset上电复位)
  • VDDIN33 POR - VDD 3.3V输入电源POR(Power On Reset上电复位)
  • VDDCORE POR - VDD CORE内核电源POR(Power On Reset上电复位)
  • NRST - 外部复位管脚低电平输入

    并根据设定的机制来决定是否输出以下事件
  • RSTC Interrupt - 复位事件输出中断(可以在低功耗模式下作为MPU唤醒源)
  • Processor and Peripheral Reset - 执行处理器和外设的复位操作

复位状态控制器(Reset State Manager)开始根据优先级处理各种复位事件源。复位事件源和其对应的优先级如下图:

优先级复位状态复位在什么情况下产生时
1通用状态检测到VDDBU POR
2退出Backup模式当设备从Backup模式退出
332.768KHz时钟出错PMC电路监测到32.768K输入失效
4看门狗超时看门狗超时错误发生
5软复位往RSTC_CR(复位控制寄存器)写软复位操作
6用户NRST复位管脚检测到低电平NRST管脚检测到低电平输入且此时RSTC_MR(复位控制管理寄存器)的URSTEN=1(用户复位输入管脚使能)

RSTC状态寄存器会记录上次的复位源,复位后MPU的程序计数器PC会被复位成0x0000 0000并开始执行集成在芯片内部的第一级bootloader(boot ROM):

2. 复位后运行MPU内部集成的ROM CODE

系统复位后,SAM9X60 MPU首先运行内部的第一级bootloader - ROM CODE

ROM CODE将完成下述初始化操作:

  • 初始化处理器CPU Clock和Master Clock.

第一级bootloader首先会初始化处理器时钟(Processor Clock - CPU_CLK)和主时钟(Master Clock - MCK),主RC Oscillator(时钟发生器模块)会通过快速启动来唤醒整个系统,这时主时钟MAINCK这块也是使用RC Oscillator,由PMC(Power Management Controller)负责将MAINCK作为CPU Clock(CPU_CLK)和Master Clock(MCK).

紧接着第一级bootloader会初始化PLLA锁相环,将系统频率倍频到396MHz并等待PLLA倍频后的频率能够稳定工作,此时PMC里的处理器时钟控制器(Processor Clock Controller)会选择PLLA的输出作为CPU Clock(CPU_CLK)和Master Clock(MCK)的输入时钟源.

最后第一级bootloader会读取启动配置字(Boot Configuration Packet),它是存储在MPU内部的一块OTP(One Time Programmable)区域,这块区域的配置可以用于控制以下内容:

  • 禁止或者使能串口UART或者DBGU端口(看配置字的设定)
  • 禁止或者使能JTAG口(看配置字的设定)
  • 设定连接外部NVM的IO采用哪组配置组合
  • 禁止或者使能化外部NVM(Non-Volatile Memory)控制器接口.
  • 禁止或者使能SAM-BA Monitor(在系统编程应用)

如果在OTP区域没有写入配置字,则第一级bootloader会使用默认配置:

  • 配置DBGU(115200波特率)端口用于串口调试和SAM-BA通信
  • 使能JTAG口用于调试
  • 初始化NVM接口并按照先后顺序从以下NVM启动:
    1. SDMMC0(IOSET0).
    2. SDMMC1(IOSET0).
    3. QSPI0(IOSET0).
    4. SPI0(IOSET0).
    5. NAND0(IOSET0).
    6. 使能SAM-BA Monitor(运行在系统编程应用)
      • 例如第一级bootloader首先会根据IOSET0的配置尝试初始化SDMMC0接口,如果没有通过SDMMC0接口读取到有效的第二级bootloader,则会将SDMMC0接口的配置还原成原来的配置,接下来尝试从SDMMC1寻找有效的第二级bootloader,后面以此类推。

3. 从外部存储NVM中寻找到第二级bootloader - at91bootstrap:

  • 加载at91bootstrap到芯片内部SRAM中运行.
  • 将芯片内部SRAM映射到地址0x0.
  • 复位PC的值到0x0并执行跳转

前面提到的寻找有效的第二级bootloader,包括以下的操作:

  • ARM中断向量表的检测 - 适合于Nand、SPI/QSPI Flash启动
  • boot.bin文件的检测 - 适合eMMC/SD卡启动,寻找FAT分区里的boot.bin文件

ARM中断向量表的检测是指将测中断向量表第6个位置,在ARM系统里面默认第6个中断向量表为预留且默认为0,在Microchip MPU中则利用这个位置来存储第二级bootloader文件大小信息。也就是生成的第二级bootloader烧录.bin文件,从地址0开始存放的都是ARM中断向量表入口地址,第6个中断向量表在at91bootstrap编译时就插入.bin文件大小信息。

ARM9中断向量表入口地址
at91bootstrap编译时就插入.bin文件大小

第一级的bootloader(boot ROM)在依次扫描外部NVM的时候,会在读取存储在NVM里面中断向量表内容时检查存储第6个中断向量表的内容,如果该位置含有有效内容(非0xFF且值小于内部SRAM的大小),则认为找到了有效的第二级bootloader。

QSPI Flash烧录文件存储示范样例

同样查找到FAT分区里的boot.bin文件,也需要判断.bin文件应小于内部SRAM的大小。

SD卡烧录后文件存储示范样例

4. 如果没找到at91bootstrap则转为SAM-BA Monitor模式等待sam-ba命令连接

JTAG接口在执行第一级ROM BOOT的时候是禁止掉的,在以下条件下重新被使能:

  1. 如果在外部NVM中找到at91bootstrap,在完成at91bootstrap加载、SRAM的重映射、PC重新复位并设置为0且开始跳转执行。
  2. 如果在外部NVM中没有找到at91bootstrap,则转为SAM-BA Monitor模式,禁止访问内部ROM

其他注意事项:

  • SAM-BA Monitor模式默认是启用的,除非在OTP配置区域中禁止它
  • 如果SAM-BA Monitor只使用串口,则不需要用到外部的晶振
  • 如果SAM-BA Monitor还需要使用USB口,则需要接上外部的晶振

5. 第二级bootloader - at91bootstrap

  • at91bootstrap是一个开放的用户程序,支持功能订制,具备高度的灵活性
  • at91bootstrap存储在外部的NVM中,需要被加载到MPU内部SRAM运行
  • 加载后SRAM地址会重映射到0、PC重新复位并设置为0且开始跳转执行。

6. 第三级bootloader - U-Boot

  • 关于U-Boot的作用就不在这里多做介绍
http://www.dtcms.com/wzjs/138515.html

相关文章:

  • 变更股东怎样在工商网站做公示seo网络优化师招聘
  • 最好国内免费网站空间南京市网站seo整站优化
  • 网站底部链接代码爱营销电信版下载app最新版
  • 重庆网站建设哪家好营销型网站模板
  • 嘉定企业网站制作职业培训机构
  • 帮人做网站的推广今日nba数据帝
  • 仿站工具箱营销型网站seo
  • 网站demo怎么做seo排名优化点击软件有哪些
  • 软件技术专业就业前景关键词优化排名seo
  • 郴州网站seonba西部最新排名
  • 免费建手机网站后台安徽网络优化公司
  • 西宁工程建设招聘信息网站上海优化排名网站
  • 重庆南坪网站建设公司百度公司注册地址在哪里
  • 网站设计大全推荐微信营销的方法
  • 南通做网站baidu tg搜索引擎优化的英文缩写是什么
  • 保定做网站公司2345网址导航 中国最
  • 网站改版需要注意什么中山排名推广
  • 邯郸市住房和城建设局网站实体店怎么推广引流
  • 怎么做动态网站视频短片汕头seo优化项目
  • 没有网站做cpa网络推广合同
  • iis 网站模板下载网络营销一般月薪多少
  • 做详情页的网站bt蚂蚁
  • 做企业网站应该注意什么每日英语新闻
  • 对外贸网站建设的建议广州软件系统开发seo推广
  • 网站左侧的导航是怎么做的semaphore
  • wordpress 全站 下载网址缩短
  • 网站建设推广关键词手机百度最新正版下载
  • 眼科医院网站设计怎么做网站出售
  • 我想做教育网站那里做一手app推广接单平台
  • 做旅游计划的网站推广普通话手抄报模板