【原创】飞思卡尔processor expert使用-另篇
0赞飞思卡尔的processor expert是一个非常好用的工具,尤其是对初学者来说,pe工具可以帮助他们入门,也可以帮助他们学习如何变成,pe的变成风格,代码组织方式也是所有程序开发者可以借鉴的范例,今天在这里就以在飞思卡尔hcs12平台上生成spi程序为例来介绍pe的使用。
首先你的电脑上要安装最新的codewarrior程序(不推荐飞思卡尔的cw10.x开发程序,个人不喜欢那个开发软件的风格,而且对电脑要求高,占用资源多,cw5.x就可以),这里就不介绍安装过程了。
安装好开发环境后,pe工具也就随着安装好了,最新的cw软件会配最新的pe软件,他会支持所有的处理器,如果freescale另外推出新的处理器,那么他就会同时推出他的pe工具更新安装包,这个可以再飞思卡尔网站上找到。
打开软件,利用codewarrior的project wizard引导生成一个新的工程,取名为DP256B_PE_SPI,设置存储路径,如下图:
点击ok,选择使用pe工具,然后根据自己工程的特点选择需要的配置,也可以使用默认配置。
工程配置完毕,点击完成,软件自动生成相关组件,下面是生成过程:
在这里,有一个比较特殊的地方,那就是需要选择器件封装,因为同一种型号的处理器可能有不同形式的封装,在这里你需要根据自己选用的处理器来据实选择。
设置完封装后,工程就完全创建好了,这时,软件界面如下所示:
点开CPU internal peripheral里的communication项展开,可以看到synchromaster项,双击或者右击添加到工程里面,如图所示,工程里面的beans文件夹下多了一个sm1:synchromaser项,可以看到左边有一个红色叹号,那是错误提示,不要怕,不是你的操作错了,而是你没有配置你添加的beans,稍作配置编译后叹号就会消失。
双击这个sm1beans,弹出bean inspector sm1窗口,我们看到是这个模块的时钟配置除了问题,点击设置栏后的省略号,弹出时钟配置对话框,如图
选择单位是Hz,在可能值列表中选择一个你需要的值,点击一下,就会弹出一个选择菜单,如图所示,点击你需要的值,如100kHz,就可以看到相应的数值出现在上面的Requested baud rate 栏中了:
此时可以看到波特率设置成了100kHz,而且错误标志也没有了。可以看一下在这一页中还有没有其他的设置需要修改。一般是不需要修改的。现在这一页列出的是SPI 的一些基本属性,如果用户需要更高级的设置话,可以点击Items Visibility,选择Advanced View 或Expert View,可以看到如图9 所示,出现了更多的选择项。这项功能可能需要license 的支持。
methods书签,简单来说在这里你可以选择让codewarrior生产那些函数,注意:是自动生成,这个功能可以节省您大量的时间,而且程序风格非常好,可读性,可移植性非常高。
events标签,直白点,就是配置中断函数,通过这个标签里的选项你可以控制程序生成哪些中断,自己命名中断函数名称,配置中断优先级等等,这里就不一一介绍了,自己试试就知道了。
好了,到这里,spi的配置就基本完成了,接下来是代码的制动生成,将主菜单中的Processor Expert 项下拉,点击其中的Generate Code ‘DP256B_PE_SPI.mcp’,PE 就会自动生成相应的代码,如图。
打开CodeWarriorTM左边的project窗口中的Files 页,可以看到PE生成了多个目录和文件,包括Generated Code 和User Modules 等,如图 所示。我们都知道main函数是一个工程的主函数,他就放在User Modules 中的DP256B_PE_SPI.c 。工程中几乎所有文件都是可以打开的,双击即可在右边代码栏里查看程序代码,修改编辑等。
可以看到很多目录和文件左侧有红色的小勾,表示它们还没有编译过。点击Make 按键,就可以将所有文件编译并连接。
Make 完成后,就已生成了S19 二进制文件。但此时主程序只是将MCU初时化后进入一个空的for 循环,没有做任何事情。我们来让程序来做点事情,就让主循环不停地通过SPI 发送一个数i,而i 随着for 循环递增变化。我们把i 加入程序中,如图表示。要把发送字节函数SendChar 加到程序里非常简单,只需在project的Processor Expert 页中,用鼠标点中SendChar 函数,然后把它拖到文件中,释放到合适的位置即可,对,开发软件就这么简单,只需拖动鼠标就能添加,小激动吧。不要忘记在后面加上分号“;”。再将参数i 加进函数中。
如果在发送数据的同时还要接收数据,那么同样将RecvChar 函数拖放进文件即可。注意RecvChar 函数的参数是一个地址,所以要将&temp 作为其参数。如图 所示。
这样,一个用PE 生成的SPI 程序就大功告成了。编译后将它写入芯片,就可以在PS6、PS5 和PS4 口上看到数据波形了。如果要查看某个函数的具体内容,只需用鼠标右键点击此函数,在选择菜单中选择Go to function definition of SM1_SendChar,就会自动转入并打开此函数的定义文件,如图
好了,就写这么多吧,累了,歇歇,歇歇各位