5 C语言PAT练习PAT习题C语言题解。全部用C语言写追求代码高效简洁。项目地址GitHub - OliverLew/PAT6 Learn-Algorithms项目主要是 C语言实现算法相关的学习笔记包括各类知识点链表、队列、哈希表等等项目地址https://github.com/nonstriater/Learn-Algorithms7 SqliteSQLite是一个开源的嵌入式关系数据库实现自包容、零配置、支持事务的SQL数据库引擎。不需要一个单独的服务器进程或操作的系统无服务器的。SQLite 不需要配置这意味着不需要安装或管理。一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。SQLite 是非常小的是轻量级的完全配置时小于 400KiB省略可选功能配置时小于250KiB。SQLite 是自给自足的这意味着不需要任何外部的依赖。SQLite 事务是完全兼容 ACID 的允许从多个进程或线程安全访问。SQLite 支持 SQL92SQL2标准的大多数查询语言的功能。SQLite 使用 ANSI-C 编写的并提供了简单和易于使用的 API。SQLite 可在 UNIXLinux, Mac OS-X, Android, iOS和 WindowsWin32, WinCE, WinRT中运行。项目地址SQLite Home Page8 EasyLogger目前EasyLogger支持以下功能日志输出方式支持串口、Flash、文件等日志内容可包含级别、时间戳、线程信息、进程信息等支持多种操作系统支持裸机各级别日志支持不同颜色显示项目地址https://gitee.com/Armink/EasyLogger9 struct2jsonstruct2json 是一个开源的C结构体与 JSON 快速互转库它可以快速实现 结构体对象 与 JSON 对象 之间序列化及反序列化要求。快速、简洁的 API 设计大大降低直接使用 JSON 解析库来实现此类功能的代码复杂度。起源把面向对象设计应用到C语言中是当下很流行的设计思想。由于C语言中没有类所以一般使用结构体struct充当类那么结构体变量就是对象。有了对象之后很多时候需要考虑对象的序列化及反序列化问题。C语言不像很多高级语言拥有反射等机制使得对象序列化及反序列化被原生的支持。对于C语言来说序列化为 JSON 字符串是个不错的选择所以就得使用 cJSON 这类 JSON 解析库但是使用后的代码冗余且逻辑性差所以萌生对cJSON库进行二次封装实现一个 struct 与 JSON 之间快速互转的库。 struct2json就诞生于此。下面是 struct2json 主要使用场景持久化 结构体对象序列化为 JSON 对象后可直接保存至文件、Flash实现对结构体对象的掉电存储通信 高级语言对JSON支持的很友好例如 Javascript、Groovy 就对 JSON 具有原生的支持所以 JSON 也可作为C语言与其他语言软件之间的通信协议格式及对象传递格式可视化 序列化为 JSON 后的对象可以更加直观的展示到控制台或者 UI 上可用于产品调试、产品二次开发等场景项目地址:https://gitee.com/Armink/struct2json10 TencentOS-tinyTencentOS tiny主要由一个轻量级RTOS内核多个物联网组件构成从下到上主要包括CPU库 TencentOS tiny支持的CPU IP核架构当前主要支持ARM Cortex M0/3/4/7还有现在很火的RISC-V当然腾讯物联网团队肯定也会支持更多种类更多IP核与开发板。驱动管理层 包括BSP板级支持包这些东西主要由MCU芯片厂家开发与维护、HAL硬件抽象、Drivers设备驱动这部分对于纯粹嵌入式开发者来说还是很重要的肯定会越来越完善的内核 TencentOS tiny实时内核包括任务管理、实时调度、时间管理、中断管理、内存管理、异常处理、软件定时器、链表、消息队列、信号量、互斥锁、事件标志等模块接下来我也将写一系列TencentOS tiny内核源码分析的文章敬请期待吧IoT协议栈 TencentOS tiny提供lwip、AT Adapter、SAL层支持不同的网络硬件如以太网、串口WIFI、GPRS、NB-IoT、4G等通信模块。在TCP/IP网络协议栈上提供常用的物联网协议栈应用层如COAP、MQTT支撑终端业务快速接入腾讯云安全框架 TencentOS tiny为了确保物联网终端数据传输安全以及设备认证安全提供了比较完整的安全解决方案。安全框架提供的DTLS和TLS安全协议加固了COAP及MQTT的传输层可确保物联网终端在对接腾讯云时实现安全认证和数据加密另外针对低资源的终端硬件安全框架还提供与腾讯云IoTHub配套的密钥认证方案确保资源受限设备也能在一定程度上实现设备安全认证物联网安全是非常重要的这些框架也是必须存在的。组件框架 TencentOS tiny提供文件系统、KV存储、自组网、JS引擎、低功耗框架、设备框架、OTA、调试工具链等一系列组件这部分我觉得还是很不错的期待ing开放API (规划开发中)TencentOS tiny将在协议中间件和框架层上提供开放API函数这样子就能很方便使用中间组件的功能我是最喜欢这种开发的不造轮子能直接使用。简单来说这个API能快速对接腾讯云实现终端业务上云的需求最大程度减少终端物联网产品开发周期节省开发成本示例应用 TencentOS tiny提供的示例代码模块测试代码等方便用户参考使用。腾讯云物联网平台图中最上层的部分严格来说这部分不算TencentOS tiny的框架内容这是接入平台层了腾讯云的物联网平台都是提供多种语言的SDK包当然在嵌入式设备上肯定使用C SDK的不过总的来说都是很不错的。总的来说TencentOS tiny还是非常不错的该有的功能都有可以考虑使用一下这个操作系统~项目地址:https://github.com/Tencent/TencentOS-tiny11 ffmpegFFmpeg是一套可以用来记录、转换数字音频、视频并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。项目地址:GitHub - FFmpeg/FFmpeg: Mirror of https://git.ffmpeg.org/ffmpeg.git12 LuaLua 很棒Lua 是巴西人发明的这些都令我不爽但是还不至于脸红最多眼红。让我脸红的是 Lua 的源代码百分之一百的 ANSI C一点都不掺杂。在任何支持 ANSI C 编译器的平台上都可以轻松编译通过。我试过真是一点废话都没有。Lua 的代码数量足够小5.1.4 仅仅 1.5W 行去掉空白行和注释估计能到 1W 行。