自己写bootloader(一)】的更多相关文章

源:使用UsbAsp给UNO烧写bootloader ATMEGA16U2.ATMEGA328P固件烧写教程 arduino板由于操作不发导致固件损坏,或者想更新固件怎么办?今天给大家介绍一下如何使用UsbAsp烧写bootloader.个人认为,此种方法比使用TinyIsp要方便并且成本更低. 首先确保手上有一个USBASP下载器,某宝上一搜一大堆,下面以TSROBOT的兼容型UNO板,分别介绍mega16u2的固件和mega328p的固件烧写. _______________________…
开发板:友善之臂mini2440,64M Nand Flash操作系统:Win7电脑:笔记本Lenovo Y450连接器:由于我的笔记本没有并口,所有买了个J-Link和转接板软件:JLink驱动Setup_JLinkARM_V402d.exe, 第一步:JLink硬件连接 笔记本USB---JLink---转接器---2.0mm间距10pin---mini2440开发板 第二步:烧写BootLoader2.1 Setup_JLinkARM_V402d.exe:2.2 将板卡拨到Nor flas…
这篇文章,是为了记录下某宝上淘到的一个没有bootloader的nano开发板的历程(比较坑),自己搜索资料而记录的. 如果没有bootloader,板子就不能接收上传的程序,什么也干不了. 烧写bootloader有很多方法,这里只记录下用uno板子为nano板烧写bootloader的例子,我自己就是用这种方法的: 直接上图: 1. 先调出bootloader程序 2.  再将bootloader程序上传到uno板子里: 3. 上传成功后,开始接线,将uno板和nano板连接起来,对应接口如…
什么是bootloader 一般情况下微处理器写入程序时都通过专门的编程器进行烧写,但是也可以通过在MCU中预先写入一些程序来实现某些基本功能,这些预先写入的程序代码就是bootloader.这样每次复位时MCU就不是从程序存储器起始位置开始读取命令,而是先加载bootloader,实现一些设置和功能,再开始执行代码. arduino通过预先写入的bootloader,每次通过串口给arduino板下载程序时,首先会令arduino板复位一次,这样就先进入了bootloader,接着向ardui…
一.bootloader 目标:启动内核 基本功能: ①初始化硬件:关看门狗.设置时钟.设置SDRAM.初始化NAND FLASH ②image比较大需要重定位到SDRAM ②将内核从NAND FLASH读到 SDRAM ③设置“要传给内核的参数” ④跳转执行内核 启动时间优化: ①提高CPU频率:    1,FCLK是CPU提供的时钟信号.         2,HCLK是为AHB总线提供的时钟信号, Advanced High-performance Bus,主要用于高速外设,比如内存控制器,…
依照前面分析的u-boot的启动流程,自己写一个简单的Bootloader.这是參考韦东山老师的视频写的. 1.初始化硬件:关看门狗.设置时钟.设置SDRAM.初始化NAND Flash 2.假设Bootloader比較大,要重定位到SDRAM 3.把内核从NAND FLASH读入SDRAM 4.设置"要传给内核的參数" 5.跳转运行内核 start.S代码例如以下: #define S3C2440_MPLL_200MHZ ((0x5c<<12)|(0x01<<…
最简单的bootloader的编写步骤: 1. 初始化硬件:关看门狗.设置时钟.设置SDRAM.初始化NAND FLASH 2. 如果bootloader比较大,要把它重定位到SDRAM 3. 把内核从NAND FLASH读到SDRAM 4. 设置"要传给内核的参数" 5. 跳转执行内核 改进: 1. 提高CPU频率, 200MHZ ==> 400MHZ 2. 启动ICACHE 重定位 分为nor启动和nand启动 int isBootFromNorFlash(void) { v…
下图是设置内核启动参数的存放图示,由于bootloader启动内核时,需要给内核传输一些启动参数,但是由于当bootloader把内核 启动之后,程序就跳转到内核中执行了,再也不会回到bootloader了,因此bootloader和内核两约定一个地方用来存放启动参数,当内核启动时,到那个地方去找启动参数.uImage (0x60000)= 64字节头部 + 真正的内核(zImage)…
      下面是具体的代码实现:  #define S3C2440_MPLL_200MHZ ((0x5C<<12)|(0x01<<4)|(0x02)) #define MEM_CTL_BASE     0x48000000 .text.global _start:_start:                  /* 关闭看门狗 * / ldr r0, =0x53000000    mov r1,#0    str r1,[0]          /* 设置时钟 */    ld…
bootloader功能目标:启动内核1.从Flash上把内核读入内存  1>读Flash:    a.NORFLASH:读内存    b.NANDFLASH:  2>初始化内存(SDRAM需要初始化).时钟.关闭看门狗.其他...2.启动(跳转到内核所在的地址执行)  1>设置参数,在某个约定的地址放上参数  2>跳转执行  最简单的bootloader的编写步骤:1.初始化硬件:关闭看门狗.设置时钟.设置SDRAM.初始化NAND FLASH2.如果bootloader比较大,…