您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > F28335BootROM笔记
OTP:onetimeprogrammableDSP的寄存器详细信息包含在每个模块的独立PDF里面IQ数学表:1,sincos表。2,标准反转表。3,标准平方根表。4,标准反正切表。5,舍入饱和表。6,指数最大最小表。7,指数系数表。1.3CPU向量表:0x3FFFC0-0x3FFFFF2.1bootloader功能操作在上电后,bootloader用于将一个外部source代码加载到内部memory。这允许代码存在于一个缓慢的外部记忆体,并且被转移到高速的内存来执行。如果bootloader被调用,然后由外设加载的输入流确定这个入口地址。相反,如果直接引导至FLASH、OTP、XINTF或SARAM,该入口地址是预先定义的每个存储块。bootloader的sourcecode入口地址定义:Flash入口地址:0x33FFF6。OTP入口地址:0x380400。RAM入口地址:0x000000。XINTF入口地址:0x100000。2.2bootloader设备配置:在reset,任意28x系列CPU设备都是在27xobject兼容模式。它是在继续执行前由应用程序将器件置于适当的操作模式。在28x器件上,从内部引导ROM启动时,该设备室由引导ROM软件配置为28x的操作模式。2.3PLL乘数和除数选择PLL乘数(PLLCR),除数(PLLSTS[DIVSEL])。当XINTF并行loader:PLLCR和PLLSTS[DIVSEL]由输入流指定。当其他启动模式时:PLLCR不更改,PLLSTS[DIVSEL]被设置为2forSYSCLKOUT=CLKIN/2,这样增加了loader的速度。2.4看门狗模块当直接执行:FLash、OTPmemory、M0single-accessRAM(SARAM),或扩展接口XINTF时,看门狗不会被触发。在其他启动模式,看门狗在启动之前被disable,在执行最后的目标地址之前再enable和clear。解释:由代码可以看出,如果是其他启动模式,那么获取入口地址的操作就会进入另一个函数文件,时间很长,所以需要disable看门狗。2,5ITRAP(illegaltrap)中断如果一个非法的操作码被获取,那么28x将触发一个ITRAP中断。在启动过程中,ITRAP使用的中断向量是bootROM的CPU向量表中。ITRAP中断向量指向bootROM内的中断服务程序ITRAPIsr()。该中断服务程序尝试使能看门狗,然后一直循环下去直到处理器reset。在用户的应用程序初始化和enablePIE块之前,该中断服务程序将用于任何ITRAP。一旦PIE使能,那么位于PIE向量表中的ITRAP向量将被使用。2.6内部上拉电阻每个GPIO引脚都有内部上拉电阻,可以通过软件使用和禁用。决定启动模式的那几个pin(GPIO87、86、85、84)的设置默认在reset后被上拉。在嘈杂条件下,仍然建议通过外部配置模式选择引脚。外部bootloader都会enable用于控制和数据传输的引脚的上拉电阻。当bootloader存在时,它将失能这些引脚。例如,SCI-A的bootloaderenableSCITXA和SCIRXA的上拉电阻。在bootloader退出后,禁用上拉电阻就是你的责任(如果有需要)。2.7PIE配置:启动模式不会使能PIE,此时它时默认状态-disabled。2.8Reservedmemory在启动加载过程中,M0的内存块的地址范围0x0002-0x004E预留给堆栈和EBSS代码段。如果代码被加载到这片区域,那是没有错误检查来防止它破坏bootROM堆栈。地址0x0000-0x0001是启动到M0的进入点。在使用SARAM启动模式是,这个进入点将使用一个分支指令加载来启动main应用程序。2.9bootloader模式启动模式选择:GPIO87GPIO86GPIO85GPIO84(这四个pin都有内部上拉电阻)F-JumptoFlashE-SCI-A启动D-SPI-A启动C-I2C-A启动B-eCAN-A启动A-McBSP-A启动9-JumptoXINTFx168-JumptoXINTFx327-JumptoOTP6-并行GPIOI/O启动5-并行XINTF启动4-JumptoSARAM3-Branchto检查启动模式-debug目的2-BranchtoFlash,跳过ADC校正-debug目的1-BranchtoSARAM,跳过ADC校正0-BranchtoSCI,跳过ADC校正2.12InitBoot汇编子程序复位后调用的第一个程序是InitBoot汇编程序。此程序初始化设备来操作C28x模式。InitBoot同样执行一个虚读代码安全模块(CSM)password位置。如果CSM密码被擦除(全是0xFFFF)那么这会解锁CSM。否则CSM仍保持锁定,这个password位置的虚读无任何效果。如果您有一个新的设备想要被加载,这会有用的。在虚读CSM密码位置后,InitBoot程序调用“SelectBootMode”函数。这个函数决定启动模式。一旦启动完成,SelectBootMode函数传回入口地址(EntryAddr)给InitBoot函数。入口地址是bootloader退出后代码开始执行的地方。InitBoot然后调用ExitBoot子程序,然后将CPU寄存器恢复到reset状态,并退出到EntryAddr。2.13SelectBootMode函数对于要选择的启动模式,GPIO87-84必须被拉高或拉低,直到选择执行完。注意:这几个pin的状态在reset时没有锁存;在SelectBootMode函数中被采样几个周期。在reset时,内部上拉电阻是enabled。我们仍然建议通过外部配置启动模式来避免任何噪声对这些pin的影响。该函数还检查PLLSTS寄存器里面的时钟丢失探测bit(MCLKSTS),以确定PLL是否工作在limp模式。如果PLL工作在limp模式,启动模式选择函数依赖于启动模式选择来采用适当的行动:boottoFlash、OTP、SARAM、I2C-A、SPI-A、XINTF和并口I/O:这些模式行为正常。如果MCLKSTS位被置位,用户软件必须检查丢失时钟状态并采取适当行动。SCI-A启动:SCI启动将会被调用。但是,根据请求的波特率,该设备可能无法自动波特锁定。这种情况下bootROM软件将在自动波特锁定函数里无限循环下去。SCI-A启动完成后,用户应该检查丢失时钟状态并采取适当行动eCAN-A启动:eCANbootloader将不会被调用。在bootROM内无限循环。McBSP启动:McBSPloader将不会被调用。在bootROM内无限循环。2.14ADC_cal汇编子程序该子程序由厂商写入到TI保留的OTP内存里面。BootROM自动调用ADC_cal()子程序来初始化ADCREFSEL和ADCOFFTRIM寄存器,注册特定的校准数据。正常操作时,此程序自动执行,无需用户操作。如果在开发过程中,bootROOM由CCS绕过,那么ADCREFSEL和ADCOFFTRIM必须由应用程序初始化。2.15CopyData函数每个bootloader都使用同一个函数从Port拷贝数据到DSPSARAM。这个函数就是CopyData()。这个函数使用一个指向GetWordData函数的指针来正确读取端口数据。GetWordData()函数由每个loader初始化。例如,当SPIloader被诱发,GetWordData()函数指针被初始化为指向SPI_GetWordData函数。因此,当CopyData()被调用,正确的端口被访问。2.17SCI启动功能SCI启动模式异步传输代码从SCI-A到内部memory。这个模式只支持8位数据流输入。28x设备与外部主机设备通信通过SCI-A外设。SCI端口的自动波特率功能是用来锁定波特率。由于这个原因,SCIloader是非常灵活的,你可以使用不同的波特率与设备进行通信。每次数据传输后,DSP将回显收到的主机的8位字符。在这种方式下,主机能够执行检查28x接受到的每个字符。在较高波特率下,输入数据的压摆率可以通过收发器的性能来实现。而正常的串行通信可以很好的工作,这种压摆率可能限制可靠的自动波特率探测在更高的传输速率下(通常超过100K波特率),并导致自动波特率锁定失败。为避免这种情况,建议如下:1,使用一个较低的波特率实现host和28x的SCI交互。2,在这个较低的波特率加载28x的应用程序或自定义的加载程序。3,然后,主机可能与28x加载的应用程序握手来设置SCI波特率寄存器为所需的高波特率。3.1C2000hex工具:hex2000这个16进制工具支持创建SCI、SPI、I2C、eCAN、parallelI/Oloader的启动表。也就是说,hex工具添加了文件所需的信息,例如key值,保留位、入口点、地址、块开始地址、块长度和终止值。启动表的内容略不同于启动模式和运行hex转换工具的选项。实际所需的文件格式会与一个特定的应用程序有所不同,并且一些额外的转换可能是必须的。建立启动表的步骤如下:1,汇编或编译代码这会创建一个由链接器用来创建一个输出文件的目标文件。2,链接文件。链接器将所有的目标文件合并为单个输出文件。指定的链接器命令文件被链接器用来分配代码段到不同的内存块。启动表的每个数据块对应于一个COFF文件的初始化部分。未初始化的部分不能由hex转换工具转换。下列选项可能有用:-m产生map文件。显示被创建的所有部分,包括他们的内存位置和长度。可以通过检查这个文件来确定初始化部分是不是期望的那样。-w告诉你链接器是否已经分配了一段到内存区域。3,运行hex转换工具为需要的启动模式选择适当的选项,运行hex转换工具转换COFF文件到一个启动表。该COFF文件由链接器产生。
本文标题:F28335BootROM笔记
链接地址:https://www.777doc.com/doc-6018471 .html