认真学习嵌入式 2024-03-14 11:15 采纳率: 0%
浏览 4

有偿,咨询指导 有关嵌入式开发

有偿 咨询指导 各位 最近在学习嵌入式开发,目前遇到了一个问题配图在下面,已知现有程序是运行在3399pro这块智能主板上的程序,开发时 工程师使用了pycharm eclipse secureCRT linux ubuntu 16.0 等工具,使用到了 c 和c++等语言,sqlite3数据库 ,shell脚本等手段完成的,现在想通过自学对现有程序进行扩展开发 遇到难题 有偿 咨询指导

img

img

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-14 11:16
    关注

    引自免费微信小程序:皆我百晓生

    根据您提供的信息,您在进行嵌入式开发的学习过程中,尝试对运行在3399pro智能主板上的现有程序进行扩展开发。该程序使用了多种工具和技术栈,包括PyCharm、Eclipse、SecureCRT、Linux Ubuntu 16.0环境,编程语言涉及C和C++,数据库为SQLite3,并利用shell脚本来管理系统服务和配置。

    从图1中可以看出,这是Linux文件系统的目录结构,其中包含了一些关键的文件和目录,例如bin、boot、dev、etc、home、lib、opt等,以及与项目相关的特定文件如sqlite数据库文件(AccSysData.db)、RKNN模型文件(people counting.rknn)、启动脚本(start.sh)和配置文件(option.ini、wgconfig.xml)。在开发时,可能需要关注这些文件的作用及配置内容。

    图2是SecureCRT会话管理器界面,展示了多个SSH连接及其对应的远程命令行操作。可以看到一些加载内核模块的操作(insmod),如加载weigand系列内核模块(weigand.ko、weigand1.ko、weigand2.ko)和rp_wiegand_out.ko模块,同时还有设置声卡DAC输出音量、启动/关闭bridge进程、执行acc可执行文件等相关命令。

    针对您的问题,若要进行扩展开发,请遵循以下步骤:

    1. 熟悉项目结构:首先理解项目源代码分布在哪些目录下,比如app目录下的各种文件夹可能包含了主程序和相关库,lib目录下的动态链接库对于程序运行至关重要。

    2. 分析现有代码:阅读并理解已有的C/C++源码,确定其功能逻辑、调用关系以及如何与硬件交互,比如加载的内核模块可能是用于某种硬件接口通信。

    3. 数据库操作:如果需要对SQLite数据库进行增删改查操作,学习SQLite的基本语法和API,并查看现有代码如何操作数据库以供参考。

    4. Shell脚本解析:理解图2中的shell脚本的功能,这通常是系统启动、配置或维护任务的一部分,例如加载内核模块、启动后台服务等。

    5. 环境搭建:确保您本地也搭建了类似的开发环境,包括Ubuntu 16.0操作系统、编译工具链、调试工具等。

    6. 新增功能开发:基于以上理解,在适当的位置编写新功能代码,并确保与原有代码兼容,完成后再通过测试验证功能正确性。

    7. 编译与部署:将修改后的代码重新编译成目标平台可执行文件,然后通过SecureCRT或其他方式上传到3399pro板子上进行部署和运行测试。

    由于没有具体的开发难题细节,上述回答提供了一般性的指导方案。若有具体问题,如某个函数如何实现、某个配置文件如何修改或某段shell脚本如何解读,请提供更详细的信息以便我能给出针对性的解答。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月14日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表