TMS320C5509A DSP 分页烧写 FLASH 存储器及自举引导的实现方法 TI 公司的 DSP 芯片 TMS320C5509A(简称 5509A)是性能卓越的低功耗定点 DSP,在嵌入式系统中有着广泛的应用。5509A 没有自带的片上非易失性存储器,因此需要外部的非易失性存储介质,如 EPROM 或 Flash,来存储程序和数据。5509A 片内有 256K 字节的 RAM。由于在片内 RAM 运行程序比片外运行有高速度低功耗等显著优点,通常上电后都需要从片外 EPROM 或 Flash 上加载程序到片内 RAM,但是芯片自带的自举程序(简称 Bootloader)只支持 16K 字节以内的外部程序加载,因此程序设计往往局限于 16K 字节空间内,限制了编程的灵活性,不能充分发挥性能,当程序空间大于 16K 字节时,就需要自己编写程序来实现自举。下面首先介绍使用 5509A 对Am29LV800B Flash(简称 Flash)存储器进行程序分页烧写的方法,然后介绍利用 Bootloader 来编程实现多页并行自举引导的方法。 一、分页烧写的实现 1、Am29LV800B Flash 的连接 Flash 与5509A 的接口很方便,前者只需作为后者的外部数据存储器与其进行连接,而中间的逻辑电路采用 CPLD 实现即可。Flash 内部可以产生高电压进行编程和擦除操作;只需向其命令存储器写入标准的微处理器指令,具体编程、擦除操作由内部嵌入的算法实现。文中采用 1Mbytes Flash 映射为5509A 的片外数据存储空间,地址为:0x200000~0x280000,数据总线16 位,用于 16 位方式的并行引导装载。1MBytes 的 Flash 被分为64 页进行访问(表1)。本文通过向0x20600 地址写数据来改变A18——A13 的值,从而控制 Flash 的换页引脚对各个分页进行访问。 地址线 扇区 页码 A18 A17 A16A15A14A13扇区大小(KBy tes) SA0 0-3 0 0 0 0 X X 64 SA1 4-7 0 0 0 1 X X 64 SA2 8-11 0 0 1 0 X X 64 SA3 12-15 0 0 1 1 X X 64 SA4 16-19 0 1 0 0 X X 64 SA5 20-23 0 1 0 1 X X 64 SA6 24-27 0 1 1 0 X X 64 SA7 28-31 0 1 1 1 X X 64 SA8 32-35 1 0 0 0 X X 64 SA9 36-39 1 0 0 1 X X 64 SA10 40-43 1 0 1 0 X X 64 SA11 44-47 1 0 1 1 X X 64 SA12 48-51 1 1 0 0 X X 64 SA13 52-55 1 1 0 1 X X 64 SA14 56-59 1 1 1 0 X X 64 SA15 60-61 1 1 1 1 0 X 32 SA1...