| 来源: ChinaUnix博客 日期: 2008.03.24 08:43 (共有0条评论) 我要评论 |
| ---嵌入式系统对功能、可靠性、成本、体积、功耗等均有严格要求,以ARM体系结构为基础的各种RISC微处理器具有灵活的特性和强大的性能,在嵌入式系统中得到了广泛的应用。 ---S3C2410是三星公司基于ARM920T设计的一款处理器,在开发基于 S3C2410的系统的过程中,如何让系统快速稳定地启动是一个重要问题。嵌入式系统的资源有限,程序通常都是固化在ROM中运行。但在实际应用中,为提 高系统的实时性,加快代码的执行速度,系统启动后程序往往要被搬移到RAM中,因为RAM的存取速度要比ROM快得多,这样大大提升系统的性能。启动程序 要完成的任务包括:硬件初始化,系统存储系统的配置,复制二级中断向量表。 启动程序过程 ● 系统硬件初始化 ---系统上电或复位后,程序从位于地址0x0的Reset Exception Vector处开始执行,因此需要在这里放置Bootloader的第一条指令:b ResetHandler,跳转到标号为ResetHandler处进行第一阶段的硬件初始化,主要内容为:关看门狗定时器,关中断,初始化PLL和时 钟,初始化存储器系统。执行完以上程序后,系统进行堆栈和存储器的初始化。系统堆栈初始化取决于用户使用了哪些中断,以及系统需要处理哪些错误类型。一般 情况下,管理者堆栈必须设置,如果使用了IRQ中断,则IRQ堆栈也必须设置。如果系统使用了外设,则需要设置相关的寄存器,以确定其刷新频率、总线宽度 等信息。 ● 代码段复制到RAM中运行 ---因为嵌入式系统的代码通常都是固化在ROM或者Flash中,上电后开始运行。由于 ROM和Flash的读取速度相对较慢,这样无疑会降低代码的执行速度和系统的运行效率。为此,需要把系统的代码复制到RAM中运行。使用SDT链接器 ARMLink产生的定位信息,把RO的有效代码和数据段到RAM中。ARMLink将编译后的程序链接成ELF文件。映像文件内部共有三种输出段:RO 段、RW段和ZI段。这三种输出段分别包含了只读代码及包含在代码段中的少量数据、可读写的数据、初始化为0的数据,ARMLink同时还产生了这三种输 出段的起始和终止定位信息:Image$$RO$$Base、Image$$RO$$Limit、Image$$RW$$Base、 Image$$Limit、Image$$Linit和Image$$ZI$$Limit。可以在程序中使用这些定位信息。将ROM中的代码和数据搬移到 RAM中,具体程序如下。 ---LDR r0, =|Image$$RO$$Base| /*RO段起始地址*/ ---LDR r1, =|Image$$RO$$Limit| /*RO段结束地址*/ ---LDR r2, =|Image$$RW$$Base| ---LDR r3, =|Image$$RW$$Limit| ---/*分别求出需要映像的代码和数据的长度并累加,放到寄存器R1中*/ ---SUB r1, r1, r0 ---SUB r3, r3, r2 ---ADD r1, r1, r3 ---/*将需要映象的代码和数据复制到RAM中去*/ ---0 /*标示符*/ ---LDR r3, [r0], #4 ---STR r3, [r2], #4 ---SUBS r1, r1, #4 ---BNE %B0 /*如果没有复制完,跳转到0标示符处的汇编语句,继续复制,参见ARM指令帮助手册*/ ● 建立二级中断向量表 ---在ARM系统中,中断向量表位于0X0开始的地址处,意味着无论运行什么样的上层软 件,一旦发生中断,程序就得到Flash存储器中的中断向量表里去,降低系统的运行效率。因此在RAM中建立自己的二级中断向量表,当中断发生后,程序直 接从RAM中取中断向量进入中断子程序。尤其是在中断频繁发生的系统里,这种方法可以大大提高系统的运行效率,具体的实现代码如下。 ---b ResetHandler ---b HandlerUndef /*未定义模式句柄*/ ---b HandlerSWI /*SWI中断句柄*/ ---b HandlerPabort /*PAbort中断句柄*/ ---b HandlerDabort /*Dabort中断句柄*/ ---b. /*保留*/ ---b HandlerIRQ /*IRQ 中断句柄*/ ---b HandlerFIQ /*FIQ中断句柄*/ ---HandlerFIQ HANDLER HandleFIQ ---HandlerIRQ HANDLER HandleIRQ ---HandlerUndef HANDLER HandleUndef ---HandlerSWI HANDLER HandleSWI ---HandlerDabort HANDLER HandleDabort ---HandlerPabort HANDLER HandlePabort ---其中HANDLER是一个宏,用于查找中断处理程序的入口地址。这些地址存放在由HandleXXX指向的表项中,该表定位在RAM高端,基地址为_ISR_STARTADDRESS。 ---^ _ISR_STARTADDRESS ---HandleReset # 4 ---HandleUndef # 4 ---HandleSWI # 4 ---HandlePabort # 4 ---HandleDabort # 4 ---HandleReserved # 4 ---HandleIRQ # 4 ---HandleFIQ # 4 ● MMU的应用 ---MMU是存储器管理单元的缩写,是用来管理虚拟内存系统的器件。MMU通常是CPU的 一部分,本身有少量存储空间存放从虚拟地址到物理地址的匹配表,此表称作TLB(转换旁置缓冲区)。所有数据请求都送往MMU,由MMU决定数据是在 RAM内还是在大容量外部存储器设备内。如果数据不在存储空间内,MMU将产生页面错误中断。MMU存储器系统的结构允许对存储器系统的精细控制,大部分 的控制细节由存在存储器中的转换表提供。这些表的入口定义了从1KB~1MB的各种存储器区域的属性。MMU完成的两个主要功能是:将虚地址转换成物理地 址,控制存储器存取允许。MMU关掉时,虚地址直接输出到物理地址总线。 ---经过以上的分析可以发现,系统启动程序主要是完成了硬件的初始化,以及克服Flash或ROM读取速度慢的弱点,提高指令和数据的读取速度,实现系统的高速运行,并且通过MMU的应用,减少RAM的使用,降低系统成本。 参考文献 1 S3C2410数据手册 2 ARM920T数据手册 3 王京林.ARM7在嵌入式应用中启动程序 的实现 |
相关推荐
《AI实战嵌入式Agent +MCP+skill》课时2.5|定时器实战
本课讲解定时器时基单元原理,通过PSC、ARR、CNT三寄存器配合实现精确周期控制。以84MHz时钟为例,计算得PSC=8399、ARR=9999可实现1秒溢出周期。采用HAL_TIM_Base_Start_IT启动定时器更新中断,在HAL_TIM_PeriodElapsedCallback中处理周期任务,实现非阻塞、高精度的定时。相比HAL_Delay的阻塞式延时,定时器中断方案不占用主循环,支持并发操作,是嵌入式系统中实现周期任务的高效方式。
ARM中断(二)
本文感谢郑星 朋友 2440支持IRQ(普通中断)和FIQ(快速中断)。2440有60个中断源,不支持中断嵌套。 CPU每执行一条指令都会检查CPSR寄存器,当发现I或F位被置1时,就进行中断处理。需要两次查表过程(为什么要查两次表??没有办法,ARM把所有的中断都归纳成一个IRQ中断异常和一个FIQ中断异常;第一次查表主要是查出是什么异常,可我们总要知道是这个中断异常中的什么中断呀!...
硕士论文排版救星:用Mathtype一键搞定所有公式格式(附样式预设文件)
本文详细介绍了如何使用Mathtype的样式预设和批量格式化功能,快速统一硕士论文中的公式格式。通过创建标准样式预设文件和一键批量处理,解决公式字体、大小、间距不统一的问题,确保符合学术规范要求,大幅提升论文排版效率。
裸机系列——2440时钟
自己的总结:1.2440有俩个PLL ,UPLL 和MPLL 。UPLL 用于USB 时钟UCLK ,MPLL 对应FCLK .HCLK 、PCLK 。ARM 启动时直接使用外部晶振作为CPU 时钟,对应2440 为12Mhz 。只有在设置了时钟寄存器M P S 三个值,具体的寄存器PLLCON 下面已经说得很清楚了。设置分频寄存器后CPU 时钟即采用倍频后的FCLK 时钟。2. CPU时钟即就是F
深入分析RAG知识库多模态数据预处理
多模态企业数据预处理是构建高质量RAG知识库的关键环节。本文详解了处理流程:1)文档格式识别与路由;2)多模态内容提取(文本、图像、音视频);3)结构解析与语义重建;4)数据清洗与增强;5)智能分块(强调语义完整性);6)元数据注入。推荐使用开源工具如PaddleOCR、Whisper、BLIP-2等,或商业API处理复杂场景,最终生成带丰富元数据的结构化内容,为后续向量化检索奠定基础。
基于Unidbg的小红书加密协议动态分析与算法还原实战
在移动应用安全领域,加密协议与签名机制是保障数据传输安全、实现客户端身份验证的核心技术。其原理通常涉及哈希算法、对称/非对称加密以及自定义的混淆逻辑,旨在防止请求被篡改或重放。理解这些协议对于安全研究、风控策略制定及合规的数据交互分析具有重要价值。在实际的工程实践中,面对高度混淆和加固的Native代码(SO库),传统的静态分析往往难以深入。此时,沙盒模拟执行技术提供了一种动态、可控的分析方案。通过搭建一个虚拟的移动应用运行环境,研究人员可以在无需真机、规避反调试机制的情况下,完整地追踪和观察加密算法的执行
【STM32】 ADC 完全指南:从模拟信号采样量化到五大架构原理
本文系统介绍ADC核心概念与五大主流架构。模拟信号具时间与幅值连续性,需经采样(满足奈奎斯特准则防混叠)、量化(引入±1/2LSB误差,SNR≈6.02N+1.76dB)、编码三步转为数字信号。重点解析Flash(并行高速但受限于比较器数量)、SAR(逐次逼近,低功耗适合MCU如STM32)、双积分(高精度抗工频,用于万用表)、流水线(高速吞吐)及Σ-Δ(高分辨率,靠过采样与噪声整形)五类架构原理、优缺点与应用场景。强调分辨率≠精度,选型本质是速度、精度、功耗与面积的权衡。
硬件开发实践:高速 PCB 差分信号与时钟同步优化
由两条互补信号线组成(正负极)接收端只关注两线之间电压差共模噪声对两线同时作用,可被抵消。
18.STM32F103C8T6时钟系统基础
本文以电脑与单片机类比,阐释时钟系统在嵌入式开发中的核心作用。单片机内核类比CPU,AHB/APB类比PCle与USB接口,Flash与RAM对应硬盘与内存。通过CubeMX配置时钟,从8MHz内部时钟到72MHz外部晶振,改变HCLK影响主频,进而改变板载LED闪烁速度。分析for循环耗时:虽理论800万次循环应耗1秒,但实际受指令周期、编译优化(可能删除空循环)、数据类型及中断影响,耗时可达数秒或趋近零。强调时钟频率决定“心跳”,但精准定时需考虑多因素,验证时钟差异需依赖实际配置调整。
【思考模型框架】前景理论(Prospect Theory),认为人们并不是完全理性的决策者,而是根据一些心理上的偏差来评估选项的价值
前景理论,是一种行为经济学理论。前景理论,描述了人们在不确定条件下如何作出决策。前景理论,认为人们并不是完全理性的决策者,而是根据一些心理上的偏差来评估选项的价值。
解读 2025《高质量数据集 质量评测规范》
《高质量数据集质量评测规范》为2025年数据质量评估提供标准化框架,适用于政府部门、AI企业、数据服务商等行业主体。规范以"说明文档-数据质量-模型应用"三维体系为核心:明确定义高质量数据集分类,细化各项指标要求(包括文档完整性、数据规范性、应用多样性等),并提供具体评分细则(百分制,90分达标)和计算方法。附录补充多模态数据处理细则,旨在建立可操作的质量评估标准,保障优质数据供给流通。
基于STM32的智能浇花系统
本文设计基于STM32F103C8T6的智能浇花系统,集成DHT11、YL-69、MQ-135、GL5528四类传感器,实现温湿度、土壤湿度、CO₂浓度与光照的实时监测。系统支持自动、手动、远程三模式联动控制,通过ESP8266-01S以MQTT协议上云,配合手机APP实现数据可视化与远程指令下发。硬件采用多通道ADC采样、继电器驱动与OLED显示,软件实现精准时序控制与双向通信。测试表明系统稳定可靠,完整覆盖“感知—控制—云联”IoT全链路,具备高扩展性与工程实践价值。
【华为OD机试真题 新系统】1043、魔法咒语组合 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)
【华为OD机试真题 新系统】1043、魔法咒语组合 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2026e卷,od机试,2026E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2026华为od,如何备战华为od
35ms 抗量子握手:ESP32-S3 跑通 ML-KEM-768
ML-KEM(Module-Lattice-based Key Encapsulation Mechanism)基于格密码,是 NIST 2024 年正式发布的 FIPS 203 标准。选 768 参数级(而不是更低的 512)是因为它被广泛视为"长期安全"档位——CATAPULT 等行业联盟也推荐 IoT 长寿命设备直接上 768。密钥交换的抗量子性。现有 IoT 设备大量使用 ECDH,量子计算机(Shor 算法)一旦可用,ECDH 直接失效。
PMO与供应链管理的整合:端到端项目交付的优化策略
在当今全球化和市场竞争日益激烈的环境中,组织面临着前所未有的项目复杂性和交付压力。传统上相互独立的项目管理办公室(PMO)与供应链管理(SCM)正逐渐意识到:只有通过无缝整合,才能实现真正高效的端到端项目交付。本文深入探讨了PMO与供应链管理整合的战略价值、核心框架和实施路径,通过生动的比喻、实际案例和实用工具,展示了如何打破部门壁垒,构建协同高效的项目生态系统。无论您是PMO负责人、供应链专业人士还是高级管理层,都将从本文获得重塑项目交付模式、优化资源利用、降低风险并提升组织竞争力的宝贵见解和行动指南。
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
网口ps端--基础知识--调试(1)--deepseek
你现在卡住,是因为这每一层(硬件、驱动、lwIP 协议、IP 地址)中,只要有一层不对,网口就不通。物理层:看灯。灯亮说明线没问题,PHY 没死。MAC 驱动层:看串口打印。有没有打印出Link Speed?如果卡在自协商,说明你的 PHY 驱动还没配好。lwIP 协议层:如果底层通了,IP 也配对了,你调用udp_recv注册了回调函数,当电脑发来 UDP 包时,lwIP 会自动把数据包拆开,送到你的回调函数里。你之前一直在改,就是一直在死磕第 1 层和第 2 层。
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
S021D-基于STM32单片机自动追光系统(舵机)【Proteus仿真+Keil程序+原理图】
设计以STM32单片机、四路GL5516光敏电阻、两路SG90舵机、OLED、按键搭建双轴追光云台系统。支持手动/自动模式切换,按键可调节追光灵敏度并保存至FLASH;自动模式依靠四路光敏采集光照差值计算方位,驱动舵机跟踪光源,OLED实时显示云台角度与工作状态。
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
ARM64-GNU汇编器
o伪指令分配大小例子伪指令分配大小例子.byte1 字节.byte 0x412 字节.word / .long 4 字节8 字节.ascii字符串(不加 \0)字符串(自动加 \0).byte:把 8位数当成数据插入汇编代码中。.hword和 .short:把16 位数当成数据插入汇编代码中。.long和 .int:这两个伪指令的作用相同,都把 32位数当成数据插入汇编代码中。.word:把 32位数当成数据插入汇编代码中。
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇14
本文系统阐述了STM32晶振电路设计要点,强调负载电容匹配与R_Ext必要性需基于计算验证,指出PCB寄生参数对振荡精度影响显著。重点提出振荡器PCB设计规范:缩短走线、加地保护环、分离地平面、避免串扰,并说明焊接工艺与环境防护对稳定性的重要性。同时解析内部时钟不可用于USB因温漂大,且PLL不放大ppm误差。最后推荐使用MEMS振荡器替代传统晶振,实现低功耗、小体积与高可靠性。
两节干电池升压3.3V芯片选型指南:PW5100/PW5103/PW5150一文搞懂
遥控器、血压计、无线鼠标键盘、门磁报警器等干电池供电设备, 如何将 1~3V 电池电压稳定升压到 3.3V 给 MCU 和传感器供电?PW5100 / PW5103 系列专为 1~3 节碱性电池或镍氢电池低压升压场景优化, 0.7V 超低启动、95% 高效率、仅 4 颗外围器件,是干电池升压的首选方案。只要是 1~3 节碱性电池或镍氢电池供电、需要稳定 3.3V 或 5V 输出的低功耗场景, PW5100 / PW5103 系列都是首选方案。两节串联电压范围仅 1.8V~3.2V,且全程持续下降。
嵌入式8 - 认识项目和GPIO输出速度
STM32程序需要手动定义出一系列宏来表示寄存器的地址,由于STM32涉及到的哇哦设寄存器非常多,在这个过程后还需要反复阅读文档,非常容易出错,因此ST官方推出了一套定义好的函数库,称为HAL库,王我们可以直接通过调用库函数的方式来完成上述所有寄存器的操作,简化了开发流程,提高了效率。HAL库 -- 硬件抽象层。
工业物联网实战:基于边缘计算的园区机电设备预测性维护架构设计
在大型园区(楼宇自动化BA系统)的运维中,电梯、水泵、消防管网等关键机电设备的可靠性直接关系到整体安全。传统的定期巡检与事后维修模式,难以捕捉设备的偶发性故障。 本文从底层系统架构出发,探讨如何利用边缘计算与AI算法,构建一套高可用、低延迟的设备预测性维护(PdM)系统。
stm32PID算法-理论和思路
1.确定一个调控周期T,每隔时间T,程序执行一次PID调控,调控周期一般取决于被控对象变化的快慢(对于电机控速而言,调控周期无需特别快,一般20-100ms即可,控速不可过快,因为受编码器分辨率限制,调控周期越快,编码器测速的分辨率越低,过快的调控周期,编码器测速不准)2.产生原因:纯比例项控制室,若误差为0,则比例项结果也为0,被控对象输入0时,一般会自发地向一个方向偏移,产生误差,产生误差后,误差非0,比例项负反馈调控输出,当调控输出力度和自发偏移力度相同时,系统达到稳态。
2027年软件工程、机电一体化与智能控制国际会议(SEMIC 2027)
2027年软件工程、机电一体化与智能控制国际会议在厦门召开,突出“软件定义装备、控制驱动产线”的实务导向,关注需求如何从图纸、代码、控制器一路跑通到稳定量产。
ARM核心核心运行机制--deepseek
同学,你现在回头看看你列出的这 5 点。RISC 和流水线,保证了 ARM 的绝对速度。MMU 和 Cache,保证了 ARM 能跑庞大的操作系统,解决了速度与容量的矛盾。异常与中断,让 ARM 拥有了应对突发事件的敏捷能力。SCU,让 ARM 迈入了多核并行的时代,算力翻倍。这就是为什么 Zynq 里的这颗 Cortex-A9 虽然是个“缝合怪”,却能成为工业界霸主的原因。它把所有的机制缝合得极其精妙,既兼顾了低功耗,又拥有了极高的算力。作为嵌入式开发工程师,以后你写代码时,脑子里不应该只是for。
物联网通信协议全景梳理
本文系统梳理物联网通信协议体系,按分层架构(接入、网络、传输、应用层)解析主流协议特性与选型逻辑。核心观点:接入层决定连接方式,应用层决定数据交互模式,两者可灵活组合。关键建议:资源受限用CoAP+BLE/Zigbee;大规模云接入选MQTT+WiFi/NB-IoT;长距离低功耗用LoRa/NB-IoT;智能家居优先Matter over Thread/WiFi;实时交互用WebSocket;安全通信优选DTLS/QUIC。最终实现“按需选型,协同高效”的物联网通信设计。
144



被折叠的 条评论
为什么被折叠?



