电子产业一站式赋能平台

PCB联盟网

搜索
查看: 1951|回复: 0
收起左侧

哪里培训嵌入式好_嵌入式系统快速重启的设计研究

[复制链接]

2607

主题

2607

帖子

7472

积分

高级会员

Rank: 5Rank: 5

积分
7472
发表于 2020-7-27 17:56:02 | 显示全部楼层 |阅读模式
哪里培训嵌入式好_嵌入式系统快速重启的设计研究,   

前言

  随着计算机技术的发展,工业技术也跟着迅猛发展起来了,而伴随着嵌入式的应用也很变得非常广泛。

  ARM芯片为了保证指令运行的实时性,指令没有直接在FLASH里面运行,而是先把flash里面的数据拷贝到读取速度比较快的SDRAM里面,然后运行,这样就提高了运行速度。但是由于程序的固定性,在我们重新启动的时候,会再次拷贝代码。我们知道SDRAM是掉电不保存数据的,但是,如果SDRAM没有掉电,里面的数据是不会丢失的。而我们重启的时候并没有给芯片断电,而这个时候系统又要重新拷贝一次代码,造成了时间的浪费。

  当然在工业上,我们的系统启动起来之后,往往重新启动的可能性较少,这样每次启动浪费的时间也就可以忽略不计了。不过,在我们使用数码相机的时候,要抢拍一个镜头,这个时间可能就是毫秒级的,在每次开机的时候都需要几秒的启动时间,是无法忍耐的。而也不能一直开机,便携式的相机电池的电量太有限了。我们经常的一种解决办法是将系统切换到低功耗模式,而仅仅是低功耗模式还是要浪费电量。而我们想,如果只给SDRAM供电,作为待机模式,每次按下复位键的时候就直接跳到SDRAM中运行,而不必再次复制代码。这就实现了快速启动,电池的供电时间也相应的延长了。

  Samsung ARM系列S3C2440处理器简介

  在这里所使用的S3C2440处理器是Samsung公司推出的基于ARM920T核的32位RISC微处理器。S3C2440具有低功耗、低成本和高性能的特点,已成为PDA、智能手机、网络计算机终端以及智能设备的终端产品等的热门解决方案之一。

  S3C2440内部资源丰富、结构复杂、接口众多,具有相互独立的16kB指令缓存和16kB数据缓存,带有MMU虚拟存储单元和AMBA总线接口。

  S3C2440支持的内外围设备包括外部存储控制器、中断控制器、LCD控制器、8通道10bit精度的ADC和触摸屏控制器、SD/MMC卡控制器、4通道DMA、4通道具有PWM功能的定时器、具有日历功能的实时时钟、看门狗定时器、3通道UART(包含IRDA红外线数据通讯口)、USB主机/设备接口、I2C总线接口、I2S数字音频总线接口、2通道SPI总线接口、通用I/O端口以及具有锁相环功能片上时钟发生器等、同时也可以柑橘需要进行功能扩展从而支持以太网接口、PCMCIA接口及IDE接口等。

  S3C2440外部存储器电路图嵌入式信息发布屏, 嵌入式飞行控制系统, 大梁嵌入式车身, 嵌入式m2m是什么, 嵌入式系统三层, 嵌入式专业答辩问题, 嵌入式软件比例占比, 嵌入式开发模型, 嵌入式系统显示接口, 实时嵌入式计算场景, 嵌入式网关有哪些, 嵌入式开发图形库, 嵌入式咖啡渣盒, 嵌入式里的arm, 嵌入式用例视频, 嵌入式温度计的概况, 嵌入式应用物理, 嵌入式在线电子词典, 嵌入式锆钛酸铅, 嵌入式是硬件,

  在这里我们使用FLASH作为程序和数据固化的存储器,使用SDRAM作为系统启动之后, 程序运行的区域。而S3C2440核内部4k的SRAM固定作为最初的启动代码使用,地址是从0x0000_0000开始的。

  这里使用nGCS6将SDRAM的地址编址到0x3000_0000位置处,使用ADDR寻址,使用DAT读取和写入需要的数据,使用FCON控制信号控制SDRAM的状态。

  使用FCON控制FLASH的状态,根据DATA按照时序送入数据和命令,做相应的处理。

  这三部分就构成了ARM运行的最小系统。

  嵌入式系统启动流程

  ① 上电,复位完成;② 嵌入式ARM核自动把flash里面最低的4k启动代码复制到SRAM里面,并从SRAM的0x0000_0000地址开始执行;③ 完成一些必要的初始化工作,将FLASH中的代码拷贝到SDRAM中;④ 跳转到SDRAM中运行;通过以上步骤,就进入了我们的应用程序,或者是操作系统。

  在我们需要复位的时候, 即nRESET管脚出现一个向下的脉冲,即出现复位。当nRESET信号为低电平时,ARM处理器放弃任何指令的执行,并从增加的字地址处取指令;当nRESET信号变为高电平时,ARM处理器进行如下操作:1.将当前的PC值和CPSR值写入R14_svc和SPSR_svc,已经保存的PC和SPSR的值是未知的;2.强制M[4:0]为10011(超级用户模式),将CPSR中的“I”和“F”位设为1,并将T位清零;3.强制PC从0x00地址取下一条指令。4.恢复为ARM状态开始执行。即程序会跳到0x0000_0000这个地址位置,开始执行上面所述的第三步和第四步。

  我们知道从flash里面读取数据比起SDRAM是想当慢的,而这里又要进行一次代码的拷贝工作,这也是一个相当长的时间。不过这个时候我们可以发现,我们并没有断电,SDRAM里面放的数据还是我们代码,我们没有必要重新拷贝这些代码了,在下次启动的时候,只需直接跳转到SDRAM中运行,做一些初始化工作就可以了。这样重新启动速度就相当迅速了。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表