小编Ott*_*unt的帖子

状态机与微控制器的RTOS

我偶然发现了一个免费的状态机工具.这似乎是用于以图形方式编程嵌入式系统.通过这样做,作者声称,与使用RTOS相比,生成的代码更易于维护.这个工具基于UML,很高兴知道,但学习曲线陡峭.

我想知道一些比较有经验的程序员在这里想到这个工具.

我正在为LM3S5P36微控制器开发嵌入式应用程序.TI有一个名为Code Composer Studio(CCS)的IDE.我还没有进入CCS,但我怀疑它有一个很酷的功能,即能够将所需的行为输入状态机图表,转动曲柄,并弹出C或C++代码.然后返回并编辑图表以生成相应的修订代码.我用C语言编写了微控制器,但对UML几乎一无所知.在过去,我保留了两个文件,其中一个是微控制器代码,另一个是流程图.每个代码修订版意味着维护两个单独的文

所以我的困境是:发现这个很酷的图表到代码一体化文档包含的工具,我很乐意使用它,但是,更重要的是,我只想完成我的项目.我是用旧方法做的,还是花几周时间学习UML?

uml rtos state-machine

4
推荐指数
1
解决办法
3688
查看次数

系统Verilog仿真与执行

关于SystemVerilog(SV)用于编程芯片和模拟SV代码的问题很多.语言结构的这种经济性给我带来了一些困惑:SV参考文献的第9.2.2节说明

"总有四种形式的程序:always,always_comb,always_latch和always_ff.所有形式的always程序在整个模拟过程中不断重复."

当然,这些结构当然也指定了组合逻辑和锁存逻辑的创建.那么SV标准主要是针对模拟,还是由芯片OEM提供给客户建议哪些SV结构会产生实际硬件,就像Altera在这里做的那样?

Altera制造CPLD和FPGA,其中一些并不太昂贵(因此我开始学习SV).由Altera祝福的SV构造子集是可合成的,可以在Quartus中编译成适合下载到芯片的形式.Altera标记其他构造,例如许多断言(上面引用的第16节),"支持.忽略合成".以并发断言为例.

因此,我的结论是,在此处获得的新信息之外,我可以使用例如仅针对测试平台模块的并发断言,但是可以在任何地方使用立即断言.

基本上我试图了解SV如何工作,以及我如何最好地解释上面引用的SV标准.谢谢.

simulation system-verilog

3
推荐指数
1
解决办法
250
查看次数

TCL命名空间和堆栈帧之间有什么区别?

Upvar创建指向不同堆栈帧中的变量的链接,有时称为调用堆栈不同的范围.

Upvar还用于为全局(或命名空间)变量2创建别名.但是命名空间只能由namespace eval命令创建.proc命令创建一个新的堆栈帧.

命名空间和调用堆栈似乎是TCL命名上下文可以更改的两种方式.Upvar和Uplevel可以在命名空间和调用堆栈上工作.

我做对了吗?我还没有看到调用堆栈和命名空间之间的直接比较,因此我的问题.

callstack namespaces tcl uplevel upvar

2
推荐指数
1
解决办法
446
查看次数

TCL"\"操作符如何接受键盘输入?

我对反斜杠运算符感到困惑,因为它在以下示例中使用:

foreach op {+ - * / %} {proc $op {a b} "expr {\$a $op \$b}"}
Run Code Online (Sandbox Code Playgroud)

当反斜杠在花括号内时,将执行键盘输入(以前缀表示法).当我删除反斜杠时,错误消息是"无法读取"":没有这样的变量".

谷歌搜索这个只是一遍又一遍地告诉我关于逃脱角色和线路延续.这个上下文中的反斜杠操作符是不同的:\ $ a接受键盘输入怎么样?我应该搜索"TCL反斜杠操作符"以外的其他内容吗?

tcl

1
推荐指数
1
解决办法
148
查看次数