1
xiaoxiaoyang OP 追加一句,想程序启动后直接切换到自己的shell界面,请各位同行指点
|
2
nobodybutme 2015-07-20 17:58:46 +08:00
不明白你这么做的目的。 你从centos开个终端直接ssh/serial 或者任意方式登陆上开发板不就得到了一个开发板的shell了么
|
3
iamfredng 2015-07-20 19:50:32 +08:00
自己开发个bash
|
4
xiaoxiaoyang OP 可能我说的不太明白,就是从我的应用程序直接从终端上运行到我自己的定义的shell里,然后再我我的shell里写我自己定义的命令,
|
5
402124773 2015-07-21 09:52:22 +08:00
你的问题,实在写的不清楚,看不懂。开发板如何连接电脑,参见2楼。
|
6
fxxkgw 2015-07-21 10:17:11 +08:00
windows下用一些工具 比如putty absoluteTelnet这种 如果开发板配置了IP 就用Telnet或者SSH 如果用的是RS232这种串口线就用Telnet centos也一样 只是工具换成了命令
如果开发板已经有bootloader了 那启动后就连上电脑 把开发板工作目录mount到centos中 直接./demo运行 如果没boot 就要用工具烧了 可能会麻烦些 至少要知道不同分区之类 |
7
xiaoxiaoyang OP iIntLockKey = vos_intLock();
iShell= taskNameToId("tShell"); if(iShell != ERROR) { taskDelete(iShell); } shellOrigStdSet(STD_IN, a);//a文件描述符 shellOrigStdSet(STD_OUT, a); shellOrigStdSet(STD_ERR, a); ioGlobalStdSet(STD_IN, a); ioGlobalStdSet(STD_OUT, a); ioGlobalStdSet(STD_ERR, a); vxworks上这样写的,但是想在linux也想实现一种,能在自己写程序的系统中调用某个函数进入到有自己命令提示符的自己定义的类似shell命令 |
8
nalaginrut 2015-07-21 12:48:00 +08:00
@xiaoxiaoyang 你是想在上位机(PC)实现一个shell专门通过串口给板子下命令?板子上跑什么OS?
|
9
xiaoxiaoyang OP 真的真的非常感谢@nobodybutme
@402124773 @iamfredng @fxxkgw 很感谢@nalaginrut; 回答: 是的是的,我的开发板系统是CentOs6.4的linux操作系统,想在开发板里跑着自己的程序,而这个程序中又有我自己定义的shell命令行系统,想程序运行到某个地方就可以切换到我自己的shell命令行系统中,并且我自己也可以键入我在自己程序中写好的命令,让我的程序执行我自己的命令;就是不知道如何让程序自动切换到我自己定义的shell系统呢? |
10
hitmanx 2015-07-21 15:57:01 +08:00
试试搜索关键字"默认shell 修改"?
|
11
nalaginrut 2015-07-21 17:40:17 +08:00
@xiaoxiaoyang 你的问题还是描述得不是很清楚。如果想在程序里嵌入一个shell,其实就是实现一个REPL(read-eval-print-loop)然后在程序里调用就行了。在这种情况下你并不需要修改系统shell。
|
12
xiaoxiaoyang OP |
13
nalaginrut 2015-07-22 21:58:33 +08:00
@xiaoxiaoyang 你写过一次就会很简单,如果你在应用层做,我建议挑个动态语言来写,在应用层用C也很简单,内核层的话不建议带loop,做着玩倒是可以。REPL是解释器最基本的构架,最简单的情况下一行代码就能完成,你想实现shell的话相当于实现一个解释器,所以REPL是必备的。
https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop |
14
xiaoxiaoyang OP 非常感谢@nalaginrut,我研究下
|