首页 > 系统相关 >嵌入式linux的几点小经验总结

嵌入式linux的几点小经验总结

时间:2023-06-25 09:11:35浏览次数:44  
标签:需要 嵌入式 测试 linux 开机 i2c 比如 摄像头 经验总结

  • 自己的功能一定要做下班后的自动化测试,不能指望测试部给测出问题(自动化测试可以用python来控制,比如python通过继电器控制产品的上下电或者触控等操作,比如打开关闭摄像头,然后通过 adb 读取测试完毕后的状态,比如摄像头是否有图像输出)

  • 电信类产品往往要求很高,所以常常有主备分区备份的功能,比如主备的boot flash,flash不能频繁擦写

  • 单板软复位后需要能查复位前的dmesg log,类似zte的保留分区存log的做法,这些都是基础设施,最好能做成一个标准做法,后面可以沿用

  • flash分区要提前确定,否则后面无法在线升级,只能手动升级工作量太大;在线升级需要提前搞

  • 添加 IO_CTRL 枚举值的时候要顺序定价,不要中间插,因为有可能新增的枚举值,在用户态的代码和内核态代码都有使用,如果用户态是旧代码,内核态是新代码(或者反之),会导致功能出问题。

  • uboot启动时已经把系统的寄存器配置完备了,后面linux直接使用,不需要初始化了

  • 使用fpga注意FPGA可能会有几个bank,同一bank的电压和信号电压是一致的,不同bank的电压可能不一致

  • gpio的开机启动模式pin脚,开机之后还可以做个其他的用处,避免gpio不够用。

  • 开发初期,睡眠默认关闭了,中后期再打开.关闭或者减少不必要的sleep/delay动作,后期测试过程中酌情增大.

  • 板子上没有的器件,dts里一定去掉,否则即使没有出现功能问题,但是性能可能有问题,比如访问不存在的寄存器导致重试等等(mpq2022去掉后,dts没有去掉)

  • 新项目很有可能使用旧的屏幕等等,所以不要急于替换屏幕等,是否有一个简单的方法来切换新旧屏幕呢

  • 虚拟文件夹中设备树节点的变化需要及时通知到上层,否则上层无法打开设备节点,造成错误,比如这里i2c的地址式bus7的0x24,如果变化了就需要通知上层。
    /sys/devices/platform/57247000.i2c/i2c-7/7-0024/ic_ver

  • 开机log中打印开机需要的时间,进入桌面的时间,避免代码修改慢慢积累造成性能变差的情况

  • 大的修改一定要切分支,比如摄像头4合1改4路独立,涉及到上下游,风险很大,就要拉分支来单独修改

  • i2c等通信通道一定要提前做压力测试,检查是否能稳定可靠工作。写压力测试用例时,需要考虑一边(比如通过继电器)测试,一边检查文件系统的节点,看是否符合预期,这样不用每天搜索日志,看是否有fail。

  • 外部上下拉电阻必须和软件的配置一致,否则在测试高低压脉冲时,芯片复位后读取的外部上拉电阻,导致功能异常。

  • 产品本身及其内部模块都要有reset机制,当上层检测到状态不对的时候就需要reset。

  • 每个硬件板子准备一个金机和使用最后的版本,方便回溯问题

  • 问题要提前压力测试,不要像保隆的斯特威摄像头,到了装车时,才发现有小概率的出图问题

  • 项目开发过程中需要定期检查系统的资源消耗和进程,后台,避免随着项目的进行,消耗的系统资源越来越大。

  • 摄像头要用mmap方式取图,由bsp提供cma内存,避免使用系统内存

  • 各公司的管理方法
    华为:需求管理和下发,敏捷迭代 + 站会,相关技术问题在TMG上升,加班能攒调休,沟通问题通过共享桌面很方便
    中兴通讯:敏捷迭代 ,需求用看板管理+ 站会+周报,白嫖式加班

标签:需要,嵌入式,测试,linux,开机,i2c,比如,摄像头,经验总结
From: https://www.cnblogs.com/ni-sy/p/17502107.html

相关文章

  • 自建frp服务器,搭建内网穿透,linux安装及docker安装
    frp服务搭建frp是一个专注于内网穿透的高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议。可以将内网服务以安全、便捷的方式通过具有公网IP节点的中转暴露到公网。通过在具有公网IP的节点上部署frp服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能......
  • Linux-FTP服务器搭建
    搭建FTP服务器,让客户端实现上传下载文件了解内容:对于配置文件中,常用的全局配置选项除了在配置文件中设置写权限之外,还要对这个目录设置一个selinux的权限,是否开启匿名用户的写权限on代表开启,匿名用户才会有响应的写权限下面构建一个匿名上传的FTP服务器:条件:准备两台虚拟机,一台作为......
  • 强强联手:诚迈科技携手研华共同发起嵌入式Linux和Android联盟
    3月16日于2017年纽伦堡嵌入式电子与工业电脑应用展(EmbeddedWorld)上,全球智能系统领导厂商研华公司宣布与诚迈科技等9家公司作为联合发起人,共同宣布成立嵌入式Linux与Android联盟(ELAA)。ELAA主要在工业嵌入式市场推动开放、标准化的Linux和Android软硬件构架,诚迈科技及其......
  • 强强联手:诚迈科技携手研华共同发起嵌入式Linux和Android联盟
    3月16日于2017年纽伦堡嵌入式电子与工业电脑应用展(EmbeddedWorld)上,全球智能系统领导厂商研华公司宣布与诚迈科技等9家公司作为联合发起人,共同宣布成立嵌入式Linux与Android联盟(ELAA)。ELAA主要在工业嵌入式市场推动开放、标准化的Linux和Android软硬件构架,诚迈科技及其......
  • 强强联手:诚迈科技携手研华共同发起嵌入式Linux和Android联盟
    3月16日于2017年纽伦堡嵌入式电子与工业电脑应用展(EmbeddedWorld)上,全球智能系统领导厂商研华公司宣布与诚迈科技等9家公司作为联合发起人,共同宣布成立嵌入式Linux与Android联盟(ELAA)。ELAA主要在工业嵌入式市场推动开放、标准化的Linux和Android软硬件构架,诚迈科技及其......
  • linux memblock 介绍
    memblock作用内核初始化阶段是用引导内存分配器memblock进行管理,因为内核里面有很多内存结构体,不可能在静态编译阶段就静态初始化所有的这些内存结构体。另外,在系统启动过程中,系统启动后的物理内存分配器本身也需要初始化,如伙伴分配器,那么伙伴分配器如何获取内存来初始化自己......
  • linux 系统清理 systemctl 日志
    背景生产环境日志文件太多导致磁盘空间不足,临时删除一些systemctl日志解决步骤首先,停止systemd-journald服务:sudosystemctlstopsystemd-journald清理日志文件:sudojournalctl--vacuum-size=100M上述命令将清理超过100MB大小的日志文件。你可以根据需要调整--vacuum-size参数......
  • 在Linux系统下XAMPP安装与配置(可离线安装)
    ......
  • 【linux命令】“最强大的编辑器”vim用法简介(基础篇)
    vim编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器。它主要分为命令令行模式、插入模式和底行模式这三种,下面主要介绍一下这三种模式最简单常用的用法。一.命令行模式1.移动光标左移:h光标右移:l光标上移:k光标下移:j光标向右移动一个单词:w(联......
  • linux系统查询服务器ip地址的命令
    linux系统查询服务器ip地址的命令参考文章3种方法来在Linux系统中查看服务器IP地址在Linux系统中,可以使用以下命令来查询服务器的IP地址:ifconfig命令:在终端输入ifconfig命令,它会显示当前系统中所有网络接口的配置信息,包括服务器的IP地址。ip命令:在终端输入ipaddr命令,它会列......