龙芯pmon里添加文件

本文详细介绍了在龙芯Pmon中如何添加普通文件及自定义命令的方法。通过编辑conf/files和Targets/LS2K/conf/files.LS2K文件,可以加入特定的设备驱动或功能模块。同时,展示了如何在pmon/cmds目录下创建并注册新的命令,包括源码示例和编译流程。
摘要由CSDN通过智能技术生成

龙芯pmon里添加文件

1、添加普通的xxx.c 文件

在pmon中加入 *.c 文件,在pmon的目录中有两个文件分别为: conf/files 、 Targets/LS2K/conf/files.LS2K。当pmon被编译时,以这两个文件为基础把相应的 *.c 文件编译成 *.o 文件,这两个文件的主要区别是:Targets/LS2K/conf/files.LS2K 依赖于不同的龙芯 CPU,CPU 不同该文件的内容就可能不同;conf/files是整个pmon所依赖的,比如ext2文件系统,所有的pmon都用相同的ext2文件系统。
加入的 *.c 文件必须被其他函数直接或间接的调用的。假如设备驱动文件为 xxx.c该文件中有一个设备的初始化函数 xxx_init(),假如该文件的路径:Targets/LS2K/ls2k/xxx.c并且可以根据配置来决定是否加载该驱动,需要操作步骤:Targets/LS2K/ls2k/tgt_machdep.c文件的函数 initmips(unsigned int memsz)中调用该函数。

如果编译时报错找不到该函数,因为该文件没有被编译成 *.o 需要在conf/files 或 Targets/LS2K/conf/files.LS2K (二者任选其一)中加入:
file Targets/LS2K/ls2k/xxx.c (这里选Targets/LS2K/conf/files.LS2K )
假如希望通过配置移除该文件,需要在 Targets/LS2K/conf/ls2k 中加入:
select xxx
上面的添加内容也许要修改:
file Targets/LS2K/ls2k/xxx.c xxx
当然需要把调用 xxx_init() 的地方注释掉,由于加入的该 *.c 文件是与 CPU 的种类有关,所以在 Targets/LS2K/conf/files.LS2K 中加入,若加入的内容被不同的 CPU 使用,可以考虑在 conf/files 中加入。
备注:
① select指定后面的参数被选中
② option指定后面的宏定义被定义

2、添加一个命令

① 在pmon源码的pmon/cmds/目录下创建一个cmd_test.c
② cmd_test.c 简单例子如下

#include <stdio.h>
#include <pmon.h>
int cmd_test (int argc, char **argv)	//命令函数主体
{
	int data;
	data = strtoul(argv[1],0,0);
	printf(“cmd test parameter %d\n”,data);
}
static const Cmd Cmds[] =
{
	{"MyCmds"},
	{"cmd_test","",0,"cmd_test  date",cmd_test,0,99,CMD_REPEAT},                                                                          
	{0,0}
};

static void init_cmd __P((void)) __attribute__ ((constructor));
  
static void
init_cmd()
{
	cmdlist_expand(Cmds,1);
}

在Targets/LS2K/conf/files.LS2K 里添加如下一行:
file pmon/cmds/cmd_test.c
添加完成后重新编译pmon,执行效果如下图
执行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LS大猫

感谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值