# yuge_cat1_opencpu **Repository Path**: yuge-info/yugecat1opencpu ## Basic Information - **Project Name**: yuge_cat1_opencpu - **Description**: 域格CAT1模块通用opencpu - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 4 - **Created**: 2024-05-28 - **Last Updated**: 2025-10-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **
当前SDK版本:V5.6.0
** ### 结构 1. core: OpenCPU code library,header 2. doc: document for SDK 3. sample: API sample 4. tools: download tool, makefile tool, compiler tool 5. build.bat: build command 6. readme.md: sdk说明 7. ReleaseNotes.txt ### 备注 1. 参照《Gitee仓库订阅指南.pdf》通过邮箱或者微信订阅仓库,SDK如有重大更新需要通过到客户,会通过邮件或者微信及时通知。 2. 关注下《开发注意事项.pdf》中的注意事项。 3. 关注下《ReleaseNotes.txt》中的更新记录。 ### 编译 1. 编译链:gcc-arm-none-eabi a). 下载地址: https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-win32.zip b). 解压到tools目录下,并修改文件夹名为"gcc-arm-none-eabi" c). gcc-arm-none-eabi 里面的 "gcc-arm-none-eabi\arm-none-eabi\include\sys\select.h" 需要被 disable 掉,关于 select 相关的 api 见"core\inc\lwip\sockets.h" 文件第11行改成 "#if 0" //# if !(defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) #if 0 2. 根目录下使用以下脚本编译 1.1-os_Task_Management: a). 编译 > build.bat -c 1605c -t socket -autopkg A09 sample\1.1-os_Task_Management b). 清空编译 > build.bat -c 1605c -t socket -autopkg A09 sample\1.1-os_Task_Management clean 备注1:"-c",用于指定芯片型号,:1602c、1602s、1605c、1605s、1606l、1606c、1606s 备注2:"-t",用于指定软件功能,:socket、socket_gps、usbnet、usbnet_gps、audio、audio_gps、sms、sms_gps、tiny、tiny_gps、normal a). socket/socket_gps: 支持socket, gpio, uart, i2c, spi, adc, powerkey, fota(仅支持http) ; --该配置是为1602c或1605c使用,socket不支持usbnet,可用空间更多。 b). usbnet/usbnet_gps: 支持socket, gpio, uart, i2c, spi, adc, powerkey, fota(仅支持http), rndis/ecm ; --该配置是为1602c或1605c使用,相比较socket多支持usbnet(rndis/ecm)。 c). audio/audio_gps: 支持socket, gpio, uart, i2c, spi, adc, powerkey, fota(支持https), tts, mp3, ppp, rndis/ecm; --该配置是为1602s或1605s使用,支持aduio相关功能。 d). sms/sms_gps: socket, gpio, uart, i2c, spi, adc, powerkey, fota(支持https), sms(ims短信也支持), ppp, rndis/ecm; --该配置是为1602s或1605s使用,支持sms相关功能。 e). tiny/tiny_gps: socket, gpio, uart, i2c, spi, adc, powerkey, fota(支持https), ppp, rndis/ecm; --该配置是为1602s或1605s使用,精简固件,释放更多空间供客户使用。 f). normal: socket, gpio, uart, i2c, spi, adc, powerkey, fota, ppp, rndis/ecm, ; --该配置是为1606l, 1606c(支持volte、sms) 或 1606s(支持volte、sms、tts)使用。 mqtt 和 mbedtls以源码形式开放,存放在core目录下,使用可以参照mqtt对应demo。 备注3:"-autopkg",用于指定自动打包的模块型号:CV9、HV9、HV9G、HV9V2、HE9EA、HE9EU、HE9NA、A09、A19EU、A19EV、A19NA、A19NE、MV9、LV9 备注4:"-xxx_gps" 配置只支持HV9G 和 A09(带GPS的型号),其他模块不支持GPS功能,使用"-xxx_gps"自动打包时会把GPS固件添加到软件包中,每次启动GPS的时候会先加载GPS固件。 备注5:A09(带GPS的型号)量产时会使用较新的ROM1的GPS芯片,出现Flash空间不足时,可以使用不带 "_gps" 的配置,GPS启动时会直接使用GPS芯片内部的ROM1固件。 备注6:HV9G已经量产很久了,继续使用ROM0的GPS芯片,GPS固件比较老旧,建议使用 "_gps" 参数,启动GPS时会先加载最新的固件再启动定位。 ### 调试日志打印 1. 调试日志输出到 调试串口 修改makefile,定义`__LOG_UART__`,详见各个demo目录下的makefile 2. 调试日志输出到 CATStudio 修改makefile,定义`__LOG_ACAT__`,详见各个demo目录下的makefile CATStudio 加载固件对应的 "MDB.txt", 文件路径:tools\aboot\images\prebuilt\160x\cp_160xx ### 固件打包 1. __手动打包__ -- (V5.0.0以后的SDK不建议使用手动打包,自动打包更方便) --如果编译不带 "-autopkg" 参数的话,需要手动打包 a). 打开tools\aboot\aboot.exe,切换到 Release 界面; b). 使用编译生成的 "out\app.bin", 替换目录 "tools\aboot\images" 下的app.bin; c). 根据使用模块选择对应项目后点击Release,即会再aboot根目录下生成对应的固件包。 2. __自动打包__ --如果编译带 "-autopkg" 参数的话,会自动打包 编译时使用 "-autopkg" 指定模块型号,编译结束后会自动打包固件,并生成在out目录下。 ### 固件下载 1. 软件下载 a). 打开tools\aboot\aboot.exe,切换到 Download 界面; b). Download界面选择固件包,点击start,等待烧录下载; c). 重启模块或者使用指令"AT$MYDOWNLOAD=1"使模块自动进入下载模式,即可通过USB进行下载。 2. 注意事项 a). Download界面不要勾选“Production mode”,勾选后烧录会擦除模块内IMEI、SN、以及射频校准参数。 ### 注意事项 1. 详见《开发注意事项.pdf》。 ### 用户指南 1. App available memory a).1602c_socket (4MB RAM + 2MB Flash), usable space: normal(RAM:256KB,ROM:168KB),gps(RAM:256KB,ROM:80KB) b).1602c_usbnet (4MB RAM + 2MB Flash), usable space: normal(RAM:160KB, ROM:156KB),gps(RAM:160KB, ROM:40KB) c).1602s_audio (4MB RAM + 4MB Flash), usable space: normal(RAM:512KB,ROM:256KB),gps(RAM:512KB,ROM:180KB) d).1602s_sms (4MB RAM + 4MB Flash), usable space: normal(RAM:512KB,ROM:400KB),gps(RAM:512KB,ROM:400KB) e).1602s_tiny (4MB RAM + 4MB Flash), usable space: normal(RAM:1024KB,ROM:600KB),gps(RAM:1024KB,ROM:600KB) f).1605c_socket (4MB RAM + 2MB Flash), usable space: normal(RAM:256KB,ROM:168KB),gps(RAM:256KB,ROM:132KB) g).1605c_usbnet (4MB RAM + 2MB Flash), usable space: normal(RAM:160KB, ROM:156KB),gps(RAM:160KB, ROM:80KB) h).1605s_audio (4MB RAM + 4MB Flash), usable space: normal(RAM:512KB,ROM:260KB),gps(RAM:512KB,ROM:160KB) i).1605s_sms (4MB RAM + 4MB Flash), usable space: normal(RAM:512KB,ROM:400KB),gps(RAM:512KB,ROM:400KB) j).1605s_tiny (4MB RAM + 4MB Flash), usable space: normal(RAM:1024KB,ROM:600KB),gps(RAM:1024KB,ROM:600KB) k).1606l (4MB RAM + 2MB Flash), usable space: normal(RAM:128KB,ROM:120KB) l).1606c (4MB RAM + 4MB Flash), usable space: normal(RAM:96KB,ROM:220KB) m).1606s (8MB RAM + 8MB Flash), usable space: normal(RAM:2048KB,ROM:1500KB) 备注1:关于1602、1605、1606各项目软件支持的功能、tts、mp3、rndis/ecm网卡等,详见 tools/aboot/images/prebuilt/readme.txt。 备注2:如果遇到RAM或者FALASH空间稍有不足的情况,可以联系FAE根据具体需求做适当的调整。 2. C LIB By enable USE_LIBC=yes in Makefile, app can call C standard LIB API except memory management API, malloc()/free() is always available and called from system side. If enable LIBC, the final binary is bigger. note: if USE_LIBC=yes is enabled, USE_NANO=yes should enabled together. 3. Startup main() is the entry of app, it is called at system boot in a separate task, the task name is "sdkapp", priority is 150, stack is 16KB. After main() return, the "sdkapp" task will exit. Usually, app should create it's own task. ### API introduce 1. OS API API define: os_api.h API sample: sample\1.1-os_Task_Management API sample: sample\1.2-os_Event_Flags API sample: sample\1.3-os_Semaphores API sample: sample\1.4-os_Mutexes API sample: sample\1.5-os_Message_Queues API sample: sample\1.6-os_Timers API sample: sample\1.7-os_sleep_delay 2. File API API define: file_api.h API sample: sample\5.7-app_File 3. ATCmd API API define: atclient.h API sample: sample\3.1-at_Cmds 4. HW API, include GPIO,UART,i2c,spi,pwm API define: hal\gpio.h hal\uart.h API sample: sample\4.x=hal_xxx 5. BSD style socket API API define: lwip\sockets.h API sample: sample\5.1-app_Socket