设为首页收藏本站
查看: 1095|回复: 1

【米尔瑞萨RZ/G2L开发板-创新应用】内核调试环境搭建

[复制链接]

3

主题

0

回帖

39

积分

新手上路

积分
39
iysheng 发表于 2023-7-23 17:12:28 | 显示全部楼层 |阅读模式
【米尔瑞萨RZ/G2L开发板-创新应用】内核开发环境搭建
我这次计划完成的开发工作大部分都是在内核下,所以就需要搭建一个比较方便的内核开发调试环境。我的整个开发环境大概是这样子的。

myir.drawio.png
所以呢,就需要在Solus笔记本这里安装一个tftp服务,但是这个发行版的仓库并没有对应的软件包可以用,所以最后根据从 Arch 的软件列表中找到了 atftp 这个软件包,并进行了安装和测试。在这个过程中,了解几部分知识点:
  • syslog 日志系统
    • 目前使用 jouralctl 查看日志信息,因为 atftpd 默认使用 syslogd 进行日志管理,之前不熟悉这部分导致调试 atftpd 的时候碰到各种问题找不到打印就很尴尬。

  • systemd 服务管理系统
    • systemctl list-unit-files 查看服务文件
    • systemctl daemon-reload 重新加载服务
    • systemctl enable xxx.service 开机允许 xxx 服务自动运行
    • systemctl start xxx.service 启动指定的 xxx 服务
    • systemctl status xxx.service 查看指定的的 xxx 服务状态
    • systemctl stop xxx.service 停止指定的xxx服务

  • atftp 这个包含有 tftp 服务端和客户端的软件包,通过在调试这个软件的过程中又了解了一些新的函数:
    • getopt_long() optstring 参数中有::符号,表示对应的命令行参数带有 optional arg(比如--verbose,v::,命令行 -v6 和 --verbose=6 是等价的,-v 和 --verbose 也是等价的)
    • int daemon(int nochdir, int noclose) 如果 noclose 参数为 0,那么会将标准输入,输出以及错误输出重定向到 /dev/null,否则的话对应的标准输入,输出以及错误输出就不会发生变化。



tftp 在 Solus 上环境搭建好之后下一步就是下载内核启动了,因为我这次设计主要使用到的是 USB gadget 这部分内容,所以最近一段时间根据内核的文档作了一些笔记(具体来说就是翻译内核文档有关 USB 部分的内容),后续的开发也会集中到这个仓库进行:
当内核编译出来之后,就需要在 U-Boot 下通过 tftp 下载并启动了,却发现官方出厂的 U-Boot 网络会报错,具体是这个样子的:
err.png

根据对应的出错打印在 U-Boot 的代码 grep, 发现是 MAC 地址没有设置,根据上述截图中的内容设置下 MAC 地址就可以了。具体如下:
alive.png
设置好 MAC 以及相关的网络参数,就可以 ping 通开发机器了,下面就是简单的下载内核部分以及引导启动了。
u1.png
我通过修改官方的内核配置开启了 USB gadget 部分功能,引导启动后是这样子的:
new_kernel.png
并且这个内核可以直接让主机识别 RZ/G2 板子为一个 gadget_serial 设备,简单测试下如下:
gserial.png



回复

使用道具 举报

6

主题

23

回帖

147

积分

注册会员

积分
147
米尔小助手2 发表于 2023-7-28 09:02:56 | 显示全部楼层
感谢楼主分享,期待下一期的内容
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录

本版积分规则

Archiver|手机版|小黑屋|米尔科技论坛   

GMT+8, 2024-11-23 16:23 , Processed in 0.049688 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表