硬件环境: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更容易
我要赚赏金打赏帖 |
|
|---|---|
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
| TCS3472S传感器及其色彩检测被打赏¥19元 | |
| 【S32DS】S32K3 RTD7.0.1 HSE 组件配置报错问题解决被打赏¥27元 | |
| 【S32K3XX】MCME 启动 CORE1被打赏¥23元 | |
| AG32VH407下温度大气压传感器及其检测被打赏¥20元 | |
| AG32VH407下光照强度传感器BH1750及其检测被打赏¥22元 | |
| AT32VH407下使用温湿度传感器DHT22进行检测被打赏¥20元 | |
| DIY一个婴儿澡盆温度计被打赏¥34元 | |
| 【FreeRtos】FreeRtos+MPU region 配置规则被打赏¥23元 | |
| 【分享开发笔记,赚取电动螺丝刀】三分钟快速上手驱动墨水屏(ArduinoIDE)被打赏¥28元 | |
我要赚赏金
