智能命令行设计及其在SOPC系统中的应用 (1)

2010-08-12 18:10:58   来源:Altera公司   

关键字:SOPC 智能命令行

  命令行是计算机系统中最重要的组件之一。它可以帮助开发人员更方便的控制系统。在调试过程中,可以让开发人员随时变更测试方法。

  FPGA的成本越来越低,FPGA上的嵌入式系统(SOPC)也应用得越来越广泛。但是相对其他成熟的计算机体系,SOPC系统现在还没有命令行。为了更好的推广SOPC应用,笔者开发了一个智能的命令行模块,可以调用系统中的任意函数,降低了开发人员的使用难度。在最小配置时,它只有大约1000行代码,占用14KB存储容量,可以放在完全由FPGA片内资源构成的计算机系统中。它的结构也具有很好的扩展性,开发人员可以结合自己的需求,轻松添加命令,丰富它的特性。

  命令行框架设计

  1 总体设计

  好的命令行要具有扩展性,开发人员能轻松添加自己的命令;也要傻瓜化,简单易于使用。

  为了达到这两个目的,可采用编译器创建的数组作为命令的总索引数据结构。为每条命令创建一个变量,指定它放在一个命令行专用的段中;其中用段“shell_cmd_tab”存放用户主动创建的命令;用段“shell_cmd_tab_auto”存放系统中所有全局函数。创建变量只需调用宏SHELL_CMD_DECL,提供命令名、命令说明和函数名即可。这样就可以实现C语言函数、变量、段、内存区域的自动映射过程。

  命令的数据结构如下。

  typedef struct _ncommand_t {

  const char *name;

  const char *descr;

  shell_st_call cfunc;

  } ncommand_t;

  为了简化命令的创建,定义下面这个宏来创建命令。

  #define SHELL_CMD_DECL(name, usage, func) ncommand_t _shell_cmd_tab_##func _attribute_ ( (section( “.shell_cmd_tab”) ) )={ name, usage, func }; // small memory version

  创建命令的实例如下:SHELL_CMD_DECL(“dump”, “Shows a memory dump”, hexdump);

[1] [2] [3]
相关阅读
基于SOPC的分布式干扰系统嵌入式网关设计 2011-12-27
NiosⅡ系统Avalon总线PWM设计 2011-11-26
利用FPGA协处理器优化汽车信息娱乐和信息通信系统 2011-10-24
基于SOPC的嵌入式高速串口设计 2011-09-16
Altera在亚洲13个城市举办2011年度技术巡展 2011-07-27
基于NIOSⅡ的矩阵键盘和液晶显示外设组件的设计 2011-07-08
基于SoPC技术的传感器非线性软件校正的实现 2011-07-08
基于FPGA的SOPC的几个概念 2011-05-30
基于SOPC的视频编解码IP核的设计 2011-05-27
基于Avalon总线的SD卡读写控制器的设计 2011-05-27
基于SOPC技术的EPA现场控制器的设计 2011-05-27
编辑:小甘
本文引用地址: http://www.eeworld.com.cn/FPGA/2010/0812/article_1290.html
[发表评论]
[加入收藏]
[告诉好友]
[打印本页]
[关闭窗口]
[返回顶部]
[RSS订阅]

小广播

最热点击

专栏

向农,EEWORLD副总编。被英特尔董事长贝瑞特称为“中国可与之对话的两名记者之一”

【详细】

总编随笔
汤宏琳,人皆称为“汤汤”,电子工程世界高级编辑。随着EEWORLD一起成长。

【详细】

汤汤手记
今年,是中国集成电路产业丰收的一年,相比较往年都有大幅提升。

【详细】

凯哥博客

论坛精华

精选博文