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,例子如下:
- #include <stdio.h>
- #include <pmon.h>
- int cmd_test (void)
- {
- printf("Welcome to use Mi Lianke products");
- }
- 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);
- }
复制代码 还要再改几个文件,files.ls2k和ls2k.mlka,这都是编译环境所需要的文件
在file.ls2k添加
在ls2k_mlka内添加
添加完成后,开始编译pmon,然后得到gzrom-dtb.bin文件,把新的文件烧录到开发板flash里面即可。
这是在pmon下运行的结果
如果你不想调用这个指令,直接在ls2k_mlka中把该指令注释掉就行
|
|