寒武纪CNCodeC与智能插件开发:多线程同步与Socket协议优化

需积分: 40 3 下载量 110 浏览量 更新于2024-08-09 收藏 1.58MB DOCX 举报
本次学习总结主要围绕寒武纪CNCodeC开发手册展开,重点聚焦于智能插件的代码接口分析。首先,提升多线程程序的性能是关键,通过编写环形缓冲模块,利用环形队列和指针来实现内存的高效读写,这种设计确保了模块的独立性,不包含buf实体。在程序结构上,主函数负责初始化,后续调用专门的读写接口函数,使得在多线程环境中能够有效地进行数据同步。 在实际编程实现中,我们使用了Makefile来管理和编译项目,通过"ALL"指令指定需编译的可执行程序,并使用"filter-out"功能剔除特定文件。此外,还涉及到了socket编程的调整,如将AF_LOCAL协议族改为AF_INET以适应IPv4网络通信,以及write()和read()函数替换为recv()和send(),后者提供更多输入参数以支持如MSG_WAITALL这样的高级功能,实现数据接收的阻塞等待。 在库的使用上,区分了动态库和静态库的区别,通过arcs.a.o和gcc的相应选项链接和编译,同时处理了编译过程中可能出现的警告,如关于不同大小类型强制转换的警告,通过将其转换为long类型解决。针对mlu220代码,深入研究了几个关键函数,如intAI_init()用于初始化,intAI_loadModule()负责加载模块,intAI_creatHandle()创建处理句柄,intAI_inputData()和intAI_inputStr()则用于输入数据,这些函数的正确调用是智能插件正常工作的基础。 这次的学习涵盖了从多线程编程优化、系统调用改造到库管理与错误处理等多个方面的内容,全面剖析了寒武纪CNCodeC开发中的核心知识点,为后续的开发工作提供了坚实的基础。