嵌入式彩屏单色字体点阵的存储结构设计

oled320_240.j2b.json

json 复制代码
{
  "remark": "彩屏上单色字体图的存储结构",
  "schema": {
    "MagicEnum:u32":{
      "0": "ascii字体图",
      "1": "hanzi字体图",
      "2": "icon图标图"
    },
    "Rgb565Color:u16":{
      "_[15:11] as red": "0;红",
      "_[10:5] as green": "1;绿",
      "_[4:0] as blue": "5;蓝"
    },
    "ZipFontImgUnit:u16;字体图片单元": {
      "_[15:12] as colorInx": "0:bit[4];颜色索引,最大16渐变色",
      "_[11:0] as repeatNum": "0:bit[12];重复次数,做多重复4095次"
    },
    "ZipIconImgUnit;图标图片单元": {
      "color": "0:Rgb565Color:u16;rgb颜色",
      "repeatNum": "0:u16;重复次数"
    },
    "UnZipAsciiHelper;Ascii解压辅助": {
      "startColumn": "0:u16;未压缩的起始列数",
      "zipAddressOffset": "0:u16;压缩后的偏移地址",
      "unZipWidth": "0:u16;未压缩每个元素宽度",
      "zipByteSize": "0:u16;压缩后每个字符byte大小"
    },
    "UnZipHanziHelper;Hanzi解压辅助": {
      "zipAddressOffset": "0:u32;压缩后的偏移地址",
      "zipByteSize": "0:u16;压缩后每个字符byte大小",
      "gbkCode": "0:u16;gbk码,图片根据gbk码升序排列"
    }
  },
  "agreement": [
    "1.暂时在spiFlash紧挨着放3个bin文件",
    "2.unZipHelper偏移地址固定",
    "3.data偏移地址是根据unZipHelper计算出的",
    "4.data的地址=&unZipHelper+sizeof(unZipHelper[0])*unZipHelper.length",
    "5.data占用的字节数=(data.length)*3"
  ],
  "colorTableContent:@0,160;单独生成colorTable.bin文件,预留10种颜色表,开机读一次": {
    "blackYellow": "0:u16[16];黑底黄字",
    "blackBlue": "0:u16[16];黑底蓝字",
    "blueWhite": "0:u16[16];蓝底白字",
    "blackGreen": "0:u16[16];黑底绿字",
    "blackRed": "0:u16[16];黑底红字"
  },
  "ascii24Content@160;单独生成ascii24Wrap.bin文件": {
    "length@0": "0:u32;总字节数",
    "magic@4": "0:MagicEnum:u32;文件类型",
    "fileName@8":"ascii24.bin:str",
    "gmtCreate@24": "0:u32;创建时间",
    "gmtModified@28": "0:u32;修改时间",
    "width@32":       "0:u16;图片宽度",
    "height@34":     "0:u16;图片高度",
    "checkSum@36":    "0:u32;校验和",
    "unZipHelper@40": "0:UnZipAsciiHelper[]",
    "data":            "0:ZipFontImgUnit[]"
  },
  "hanzi24Content@0x00004000;单独生成hanzi24Wrap.bin文件": {
    "length@0": "0:u32;总字节数",
    "magic@4": "0:MagicEnum:u32;文件类型",
    "fileName@8":"hanzi24.bin:str",
    "gmtCreate@24": "0:u32;创建时间",
    "gmtModified@28": "0:u32;修改时间",
    "width@32":       "0:u16;图片宽度",
    "height@34":     "0:u16;图片高度",
    "checkSum@36":    "0:u32;校验和",
    "unZipHelper@40": "0:UnZipHanziHelper[]",
    "data":           "0:ZipFontImgUnit[]"
  }
}
相关推荐
EVERSPIN3 小时前
高性能32位MCU在热敏打印机上的应用
单片机·嵌入式硬件·mcu·32位mcu
学嵌入式的小杨同学3 小时前
STM32 进阶封神之路(四十一)FreeRTOS 中断管理、软件定时器、内存管理与低功耗模式|工业级实战完整版
vscode·stm32·单片机·嵌入式硬件·mcu·智能硬件·嵌入式实时数据库
学嵌入式的小杨同学4 小时前
STM32 进阶封神之路(四十)FreeRTOS 队列、信号量、互斥锁精讲|任务通信、同步、资源保护(超详细图文版)
c++·stm32·单片机·嵌入式硬件·mcu·架构·硬件架构
电子科技圈1 天前
赋能高端音频功能促进多样化设备创新——XMOS USB Audio平台实现四大功能升级
人工智能·mcu·音视频·智能家居·边缘计算·语音识别·智能硬件
笨笨饿1 天前
42_C语言查找算法
linux·服务器·c语言·人工智能·mcu·学习方法·嵌入式软件
匿名了匿名了2 天前
直流无刷与直流有刷电机
stm32·嵌入式硬件·mcu
笨笨饿4 天前
29_Z变换在工程中的实际意义
c语言·开发语言·人工智能·单片机·mcu·算法·机器人
R6bandito_5 天前
自实现FLASH读取函数中的隐式类型转换bug踩坑记录
c语言·开发语言·经验分享·stm32·单片机·mcu·bug
Redemption5 天前
嵌软面试每日一阅----freeRTOS(三)
stm32·单片机·嵌入式硬件·mcu·物联网·面试·51单片机
学嵌入式的小杨同学6 天前
STM32 进阶封神之路(三十九)FreeRTOS 临界区、挂起 / 删除、钩子函数、调度底层原理|从应用到内核深度解析
c++·stm32·单片机·嵌入式硬件·mcu·硬件架构·pcb