# IO_OLED **Repository Path**: jianqiangxue/io_oled ## Basic Information - **Project Name**: IO_OLED - **Description**: ls_sdk_io_oled - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-07-27 - **Last Updated**: 2023-08-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目环境 1. keil5.36 AC6 -Os ARM.CMSIS.5.8.0.pack RTX5 # 注意事项 【注意】 CMSIS版本不能低于5.8.0,否则程序将不正常运行。 ARM.CMSIS.5.8.0.pack
5.8.0更新了 [GCC LinkerDescription,GCC 汇编程序启动] [为工具链 ARM、GCC 添加了 ARMv8-M 堆栈密封(到链接器、启动)] 1. printf 函数尽量不要使用,可以换LOGD()。因为ATCMD也使用UART0,容易导致硬件抢占。LOGD是入队使用,不会造成冲突。 (printf 不可以在串口中断使用。 本项目printf用于HardFault_Handler(),回溯SP地址。) # 待完成工作 0. 设计io支持功能 -OK 1. 按键外部中断、SWO功能 -OK 2. ADC周期采集 -OK 3. PWM(周期方波/呼吸) -OK 4. IIC 主机 OLED --todo 5. SPI 主机 WS 6. WS2812控制 8. app_main低功耗设计,指令(复位,恢复出厂设置,进入低功耗模式) 9. 上位机完成IO、ADC、PWM、AT指令功能 -- ok 14. 串口AT指令(主机版)蓝牙模块 15. IIC 从机 ,用于IO模块使用 16. SPI 从机,用于IO模块使用 20. 矩阵扫描 21. 编码器 22. 加速度传感器 23. 超声波测距 24. 舵机 26. 心率传感器 # [项目结构] # [FLASH结构] CX32L003 64 KB Flash, 4 KB RAM
0x10000 0x2000
|名称 | 地址 | 大小(字节) |--|--|--| Boot| 0x0000 | 0x2000 APP| 0x2000 | 0x10000 - boot_size - KV_size = 0xE000 KV| 0xFA00 | 0x600 END| 0x10000 | boot+app addr: 0x0 ## 带uart的DFU文件地址: start size 0x2000 0xD600 - KV_size = 0xE000 ## 不带DFU功能: start size 0x1400 0xEC00 - KV_size = 0xE600 ## KV键值管理 3*512=1536 = 0x600 # 解锁芯片: 1. chip uid val AABB 2. 将 AABB取反得BBAA,再将BBAA通过CRC16计算,得到检验值。 3. AT^LOCK=校验值,完成解锁。如果输入任意值,将锁定芯片烧录。