[X]关闭

PMON中添加文件及命令

文档创建者:LINUX课程
浏览次数:10
最后更新:2024-11-22
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文件的函数 init_loongarch中调用该函数。
如果编译时报错找不到该函数,因为该文件没有被编译成 *.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,例子如下:
  1. #include <stdio.h>
  2. #include <pmon.h>
  3. int cmd_test (void)
  4. {
  5. printf("Welcome to use Mi Lianke products");
  6. }
  7. static const Cmd Cmds[] =
  8. {
  9. {"MyCmds"},
  10. {"cmd_test","",0,"cmd_test  date",cmd_test,0,99,CMD_REPEAT},                                                                          
  11. {0,0}
  12. };

  13. static void init_cmd __P((void)) __attribute__ ((constructor));
  14.   
  15. static void
  16. init_cmd()
  17. {
  18. cmdlist_expand(Cmds,1);
  19. }
复制代码
还要再改几个文件,files.ls2k和ls2k.mlka,这都是编译环境所需要的文件
image.jpg
在file.ls2k添加
image.jpg
在ls2k_mlka内添加
image.jpg
添加完成后,开始编译pmon,然后得到gzrom-dtb.bin文件,把新的文件烧录到开发板flash里面即可。
这是在pmon下运行的结果
image.jpg
如果你不想调用这个指令,直接在ls2k_mlka中把该指令注释掉就行
image.jpg

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则