- 打卡等级:以坛为家II
- 打卡总天数:501
- 最近打卡:2025-05-09 08:51:43
荣誉版主
- 积分
- 3561
|
基于 32G12K128 实验箱V9.62_实验之TFT彩屏驱动+超64K编程
本实验没啥新创意, 只是一个学习小结, 梳理一下超64K编程的心得体会.
内容是, 实验彩屏各驱动函数, 在320x240彩屏上显示7个彩色图片, 同时测试一下, 普通方式显示图片的用时. (主频35MHz)
用6个64x64像素的图标, 1个168x112像素的图片.
先计算一下所占字节容量:
一个图标64*64*2=8192, 即8K, 6个图标,8K*6=48K;
一个图片168*112*2=37632, 即37.63K;
总共: 48K+37.63K=85.63K
再加程序代码, 显然是需要超64K编程了.
先贴一下实验结果:
显示一个64x64图标, 用时5ms, 显示一张168x112图片,用时24ms.
再梳理一下实验过程:
1. 认识一下, code 和 ecode 关键词的含义和用法;
code 关键词, 让数据代码位于存储器地址范围 FF:0000 -- FF:FFFF (64K)
ecode 关键词, 让数据代码位于存储器地址范围 FE:0000 -- FF:FFFF (128K)
code 关键词, 在KeilC251编辑环境下, 语法高亮显示.
ecode 关键词, 在KeilC251编辑环境下, 不是语法高亮显示, 但具有实质作用.
code 和 ecode关键词, 书写源代码时, 放在数据类型与变量名称之间, 不要放错位置.
2. 规划一下存储分配, 正确设置编译环境各项参数;
CPU模式等三项, 不二选择, 4K对齐.
考虑留用4K的EEPROM空间, 设置程序代码起始地址为 0xFE1000, 长度为0x1F000.
注意Memory选择"ROM",不是"RAM".
3. 设置输出格式: HEX-386
4. 考虑一下指令优化
优化级别并非越高越好, 这里根据例程, 选择"尾部连接".
5. 结合实际使用的调试工具设置仿真调试选项
对于32G12K128, 目前最佳调试工具 STC-USB-Link1D, 选用SDW仿真模式, 设35MHz主频. 用STCAI-ISP(V6.94H)制作仿真芯片.
仿真结束后, 保持芯片为仿真器状态, 程序代码保存其中, 掉电上电不丢失, 正常运行. (可能这是32G12K128芯片的特色之一,很好用)
6. 编译结果.
0错误,0警告...
7. 观察验证一下,代码数据在存储器中的位置. (也可打开.MAP文件查看)
进一步了解, 超64K编程的特点.
CODE 开始和结束
ECODE开始和结束
8. 感叹:
曾经的51单片机工程师们, 为突破64K编程, 可谓煞费苦心: 外挂128K存储器+Bank分区技术,搞得软硬件复杂而难用......
如今, 一片搞定, 太令人惊喜.... 国芯51单片机, 有望走得更远.....
|
1
喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
-
+2
楼主威武~
|