【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
和mcu不同,soc的复杂程度要高很多。一方面so包含了cpu的相关知识,另外一方面还有linux的相关软件知识,不仅如此,它还有外设ip和算法ip的知识。所以,要真正学好、用好soc芯片,其实没有那么简单。这种情况下,芯片厂家就会提供相应的sdk。大家要用好soc,本质上首先得学好厂家提供的sdk内容。
1、广义sdk和狭义sdk
广义的sdk,就是包含uboot、kernel、dts、rootfs和特色开发库在内的所有文件。通过编译之后,我们就可以得到一个完整的安装包。而狭义的sdk,一般就是指音视频开发库,当然也有可能包含crc、npu、gpu在内的其他开发库。今天,我们讨论的内容,主要是狭义sdk。
2、看文档
这里说的文档,主要是指厂家给的文档。怎么设置环境、怎么编译、怎么烧入,遇到问题改怎么办,这些内容一般都可以找到专门的文档。编程的时候,遇到陌生的api,特别是厂家自定义的api,这部分往往也可以在文档中找到对应的内容。
3、使用sample code
前面我们说过,使用厂家soc最快的方法,就是直接参考sample code。如果sample code有我们需要的内容,直接拷贝粘贴即可。当然如果不放心,可以在拷贝之前,单独运行一下sample code,确认示例代码有我们需要的功能。这里的sample code,有兴趣了解个中的实现细节,那么就参考一下刚才说的文档,包括头文件、动态文件、参数定义、返回值部分,都可以在文档中找到详细的信息。
这些sample code都是和这个soc强关联的,并不是通用代码。因此,sample code从某种意义上来说,对于我们学习这颗soc有非常大的帮助。
4、向厂家fae寻求帮助
fae支持,这一点就是个人开发和公司开发的区别了。作为个人开发而言,文档和sample code都是比较容易获得的资源。但是fae这部分,个人开发者往往是比较难以接触到的。毕竟个人大多数情况下,不会从代理商那里购买几万、十几万,甚至于是几十万的芯片。既然没有交易,那么人家的fae为什么要服务于你。
但是企业层面,或者公司层面的合作就不存在这样的问题。既然准备采用soc公司的芯片,那么就要自己做板子,开发软件,中间出现各种问题也是很正常的。遇到问题,特别是自己解决不了的问题,那么完全可以从厂家的fae那里寻求帮助。毕竟对于芯片公司来说,他也不似乎白帮忙的。因为对他们而言,所有的付出,都只是为了让客户更多地从他那里购买芯片而已。
5、网上搜索资料
这部分比较适合于那些用量比较大的soc。特别是曾经市场占有率比较高的soc,或者在某些特定领域具备领导地位的soc,这些资料、问题、答案也是比较容易找到的。而且现在有了gpt大模型的帮助,我们只需要通过问答的形式,就可以比较容易地得到自己想要的资料。
6、基础linux知识点
这一部分就和具体soc没啥关系了,毕竟每一个soc厂家的linux系统都差不多。所以在使用soc之前,我们还是要对linux有基本的认识,这当中包括编译链接、常用命令的学习、常用编辑工具的使用、网络工具的使用、外设节点的访问、简单的调试等等,这部分完全可以找书来看一看。再加上适当的练习,相信很快就可以掌握下来的。