硬件环境:CPU 2292 , 外扩SDRAM 4MByte , NAND Flash 256MBye, USB 1161A1主控芯片,SED13506液晶屏接口. 65000色触摸屏
系统上电后, bootloader先运行,完成必要的系统初始化.主要内容:
1.设置片内FLASH启动
2,初始化SED13506 以便能显示必要信息提示
3,初始化uC/OS --uc/gui -- uc/fs 以便能识别NAND的文件分区
4,初始化USB 1161A1 以便能通过USB传文件
然后,在检测触摸屏右下角,如果被按下超过1秒钟. 则执行步骤1: 主要内容有
读U盘,把U盘中固定目录下的文件(例如: \system\exefile\ xxx.hex) 复制到系统目录下(C:\system\) 如果重名 直接覆盖.
然后执行步骤2 主要内容有
1,读取C:\system\xxx.hex 文件 然后按照顺序依次写入到片外RAM中 地址从0x80000000 开始
2,修改REMAP 把映射地址改成片外RAM 以便中断能够正常运行.
3,直接跳到0x80000000地址 开始运行程序xxx.hex
注意: xxx.hex是用ADS编译出来的 用周立功提供分散加载文件 把程序直接定位到片外RAM中
bootloader 也是用ADS编译的 也用周立功的分散加载文件 把他定位在片内FLASH中
这样做的好处
1: 可以对很大的程序进行加密 最大可运行的程序大小可达到ROM+RAM可达4M Bootloader 是写在片内的 就算可以把xxx.hex读出来也没用.目前LPC2292破解费用在10万 还不一定能破成功.
2: 在嵌入uC/OS 和uc/GUI后 开发将很方便.
3:用户升级也更加方便 比IAP还方便啊
本人目前正在做这方面的工作. 请大家提出是否可行? 或者直接上ARM9 跑LINIX更容易
打赏帖 | |
---|---|
分享一种检测按键状态的方法被打赏20分 | |
周末总结一下,STM32C0系列的开发经验被打赏50分 | |
【Cortex-M】Systick Timer使用被打赏10分 | |
分享汽车防盗系统的组成与分类(一)被打赏5分 | |
VOFA+波形显示+JYD-31蓝牙发送和解析不定长数据被打赏10分 | |
【换取手持数字示波器】-STM32F4PWM控制LED灯管亮度被打赏22分 | |
【换取手持数字示波器】STM32F4驱动RPR-0521RS照度、接近一体型传感器被打赏23分 | |
宏定义和const关键字定义被打赏5分 | |
【分享开发笔记,赚取电动螺丝刀】几个单片机I2S外设的BLCK时钟对比被打赏20分 | |
【功率监测与控制系统DIY活动成果贴】DIY功率计与LabVIEW数据采集被打赏100分 |