不花钱做网站做网站找哪家最好

张小明 2026/1/15 6:36:00
不花钱做网站,做网站找哪家最好,移动互联网以什么为技术核心,ui生成器网站Mini2440是一块非常经典的入门开发板。本文将讲透这张启动图背后的概念。 上电启动 一切始于电平。在 S3C2440 芯片上#xff0c;有两个特殊的引脚#xff1a;OM0 和 OM1。当然一般都是用的开关就实现了#xff08;图右下角#xff09;。 当系统复位#xff08;Reset有两个特殊的引脚OM0 和 OM1。当然一般都是用的开关就实现了图右下角。当系统复位Reset信号失效的瞬间芯片内部逻辑会采样这两个引脚的电平状态从而决定 CPU 的第一条指令从哪里读取。OM1OM0启动模式解释00NAND Flash 启动Mini2440 最常用的模式。此时片内 SRAM 被映射到 0 地址。0116-bit ROM 启动通常指 NOR Flash 启动。NOR Flash 被映射到 0 地址。1032-bit ROM 启动同上只是总线宽度不同。11Test Mode测试模式一般不用。核心差异NOR Flash 启动NOR Flash 像内存一样支持随机访问支持片上执行XIP, eXecute In Place。CPU 可以直接读取 NOR Flash 里的指令执行。NAND Flash启动NAND Flash 像硬盘只能按块访问不支持 XIP。CPU 无法直接去 NAND 里取指令。这就引出了 S3C2440 最精妙的设计——Steppingstone。什么是 SteppingstoneS3C2440 SOC芯片内部集成了一块容量极小的SRAM (StaticRAM)大小只有4KB。在官方数据手册中这块 SRAM 被称为Steppingstone。它的作用正如其名——它是系统启动的一块垫脚石。因为 4KB 太小跑不了操作系统甚至跑不下完整的 u-boot但它足够用来完成最基本的硬件初始化和代码搬运。当你点击“编译”时工具链gcc/ld做了一件至关重要的事情排座位。通过链接脚本.ldsstart.s被安排在了最前面main.c紧随其后。假如最终生成的.bin二进制文件结构如下0x0000 - 0x0020:start.s的机器码关看门狗、设栈、跳转。0x0020 - 0x0xxx:main.c的机器码配置寄存器、循环。Steppingstone 里的内容就是你通过Makefile或者keil编译生成的binaxf、hex文件的前 4KB 数据说白了就是start.s的内容。内存映射这是初学者最容易混淆的地方。ARM CPU 启动时永远只认地址0x00000000。但是物理上的存储器连接位置是固定的如何让 CPU 在不同模式下看到不同的东西答案是地址重映射。场景 ANOR Flash 启动Bank 0 (nGCS0)连接着外部的 NOR Flash。映射结果硬件直接把NOR Flash映射到0x00000000。执行流CPU 直接从 NOR Flash 读取指令运行。场景 BNAND Flash 启动Bank 0 (nGCS0)虽然原理图上可能还连着 NOR Flash如果有的话但在逻辑上被断开了。Steppingstone (SRAM)原本只能通过特定内部地址访问现在被硬件强制映射到了0x00000000。自动拷贝机制上电复位瞬间NAND Flash 控制器自动启动。它自动将 NAND Flash 中的前 4KB 数据拷贝到这块Steppingstone (SRAM)中。在这个拷贝过程中CPU 处于复位保持状态不运行。拷贝完成后CPU 复位释放开始从0x00000000也就是 Steppingstone 的起始位置执行代码。Bootloader 第一阶段SRAMSRAM既然只有 4KB代码必须极度精简通常由汇编语言编写比如keil提供的S3C2440.s。这 4KB 代码需要在几毫秒内完成以下“规定动作”4.1. 关看门狗 (Disable Watchdog)原因看门狗默认开启如果不在规定时间内“喂狗”它会复位 CPU。启动初期我们没空喂狗所以必须先把它关掉。代码向WTCON寄存器写 0。4.2. 关中断 (Disable Interrupts)原因此时系统刚启动中断向量表还没建立堆栈也没准备好。如果来了中断CPU 跳到乱七八糟的地方就挂了。代码操作 CPSR 寄存器屏蔽 IRQ 和 FIQ。4.3. 初始化系统时钟 (Clock Setup)原因外部晶振通常只有 12MHzCPU 跑得太慢。动作配置 PLL (MPLL)将系统主频 (FCLK) 提升到 400MHz或其他频率并设置分频系数给外设使用。4.4. 初始化 SDRAM这是最关键的一步Steppingstone 只有 4KB跑不完后续代码。我们需要启用板载的大容量内存SDRAM例如 64MB。动作配置存储管理器Bank 6 对应的寄存器设定行/列地址宽度、刷新频率等让 SDRAM 准备好接收数据。4.5. 设置栈 (Stack Setup)原因后续如果要调用 C 语言函数或者进行复杂的逻辑跳转必须有栈空间来保存现场。动作将栈指针 SP (r13) 指向 SRAM 的顶端或者刚刚初始化好的 SDRAM 的某块区域。4.6. 代码搬运核心逻辑这 4KB 代码要把自己完整的 Bootloader或者操作系统内核从 NAND Flash 中读出来搬运到 SDRAM 中。为什么因为 NAND Flash 不能直接运行代码而 4KB SRAM 又太小。实现通过读写 NAND Flash 控制器的寄存器NFCONF,NFCMD,NFADDR,NFDATA循环读取数据并写入 SDRAM 地址通常是0x30000000以后。4.7. 跳转 (Jump to RAM)动作搬运完成后修改 PC 指针跳到 SDRAM 中去执行。指令ldr pc, 0x3000xxxx(使用绝对跳转指令)。结果至此Steppingstone 完成了历史使命CPU 开始在宽阔的 SDRAM 中通过 u-boot 的第二阶段C语言部分继续狂奔。总结图解如果你再看一遍 Mini2440 的启动图脑海中应该有这样一个动态过程上电- 硬件检测 (NAND模式)。硬件动作- NAND Flash 前 4KB自动复制到内部 SRAM。地址映射- 内部 SRAM 变身为地址 0。CPU 运行- 运行 SRAM 里的S3C2440.s。初始化-S3C2440.s初始化外部 SDRAM。搬运-S3C2440.s读取 NAND 中剩余的几百 KB 代码到 SDRAM。跳转- PC 指针跳入 SDRAMLinux 启动之路正式开始。这就是为什么这块小小的 4KB 区域被称为Steppingstone—— 它虽然小却是连接静态存储NAND与动态运行环境SDRAM的唯一桥梁。JLINK 调试很多开发者使用 JLINK配合 J-Flash 或 IDE进行裸机程序调试。你可能会遇到这样的情况为什么我用 JLINK 直接下载程序到 SDRAM (0x30000000) 会失败这需要结合我们上面讲的启动原理来看。6.1 初始化 SDRAM回顾第 4.4 节SDRAM 并不是上电就能用的它需要配置存储控制器寄存器设置列地址、刷新率等之后才能被读写。正常启动时Steppingstone 里的S3C2440.s帮我们完成了初始化 SDRAM 的工作。JLINK 调试时通过 JTAG 连接板子时CPU 通常处于复位或暂停状态S3C2440.s还没来得及运行或者被跳过了。此时 SDRAM 控制器处于未配置状态SDRAM 就是一片荒原根本无法写入数据。6.2 调试脚本 (Init Script) 的作用为了解决这个问题在使用 JLINK调试 S3C2440 时我们必须挂载一个初始化脚本keil里是.ini。这个脚本的作用就是代替 Steppingstone通过 JTAG 指令直接操作 CPU 寄存器关看门狗防止调试一半重启。配置时钟让 CPU 跑快点。初始化存储控制器这是最关键的一步脚本会向 Memory Controller 寄存器写入正确的值瞬间“点亮” SDRAM。6.3 调试的标准流程有了初始化脚本调试流程就变成了连接 JLINKCPU 暂停。运行初始化脚本此时 SDRAM 变为可读写状态。Download将编译好的程序.bin或.elf直接下载到 SDRAM例如0x30000000。Set PC手动将 PC 指针修改为0x30000000。Run程序开始直接在内存中狂奔。总结JLINK 调试其实就是绕过了“NAND - SRAM”的搬运过程利用上帝视角JTAG手动初始化内存并注入代码。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设实习周记网站不备案会有什么影响

零安装!这款SQLite浏览器让你3秒打开本地数据库文件 【免费下载链接】sqlite-viewer View SQLite file online 项目地址: https://gitcode.com/gh_mirrors/sq/sqlite-viewer 还在为查看SQLite数据库而烦恼吗?现在,一个完全在浏览器中运…

张小明 2026/1/13 6:58:27 网站建设

网站建设作业怎么投放广告

1. 为什么这个毕设项目值得你 pick ? 毕设选题不需从零开始,本项目《基于Java的图书音像进销存智慧管理系统的设计与实现》提供了全方位解析。该系统包括供应商管理、存放位置管理、商品管理等17个功能模块,覆盖了图书和音像用品的采购、入库、销售及退…

张小明 2026/1/10 8:26:28 网站建设

做开发房地产网站可行吗苏州营销型网站推广

在AI技术全面渗透的今天,Agent(智能体)早已不是实验室里的抽象概念,而是走进企业工位、家庭场景的实用工具。这种具备目标驱动、自主规划、工具协同能力的数字实体,正在彻底改变我们的工作模式与生活节奏。index.dev 2…

张小明 2026/1/10 8:26:29 网站建设

wordpress建站社区北京市网页设计

Lightbox2图片灯箱:从问题诊断到完美解决方案 【免费下载链接】lightbox2 THE original Lightbox script (v2). 项目地址: https://gitcode.com/gh_mirrors/li/lightbox2 你的图片展示是否正在经历这些痛点? 当你点击网站图片时,是否…

张小明 2026/1/13 7:15:04 网站建设

网站头部设计代码网站开发项目思路

Files文件管理器性能优化实战:从卡顿到流畅的完整解决方案 【免费下载链接】Files Building the best file manager for Windows 项目地址: https://gitcode.com/gh_mirrors/fi/Files 你是否在使用Files文件管理器时遇到过启动缓慢、滚动卡顿、或者操作多个文…

张小明 2026/1/10 8:26:33 网站建设

php网站开发视频教学网络科技公司网站建设

从零起步:手把手教你用 React Native 搭建支付与网络一体化应用 你有没有过这样的经历?满怀热情地想做一个跨平台 App,结果刚打开文档就被“环境配置”四个字劝退。Node.js、JDK、Android SDK、Xcode……一堆陌生名词扑面而来,还…

张小明 2026/1/13 15:16:53 网站建设