第一章:PSoc 4000 系列电容式触摸传感器之第三方工程下载

1、写在前面

  • 因为项目开发的缘故,所以使用到了赛普拉斯的CY8C4014LQI-421芯片,但是官方Psoc Creator编译出来的hex文件,使用第三方J-link是无法烧写。

2、PSoc Creator导出KEIL工程

  • 官方文档讲得很清楚了,可以参考PSoc Creator里面的Help文档,查看里面的第三方IDE章节。
    在这里插入图片描述
  • 首先在PSoc Creator的工具栏中选择Rroject中的Export to IDE,选择导出为Keil。
    在这里插入图片描述
  • 如果碰到需要安装驱动的话,选择Install。
    在这里插入图片描述
  • 并安装进自己电脑上装keil的目录。
  • ps:前提是你电脑上有装keil。
    在这里插入图片描述
  • 之后选择编译链为ARM MDK。
    在这里插入图片描述
  • 将用到的文件都选上,下一步后,选择Exprot.
    在这里插入图片描述
  • 待配置完成后,选择finish。
    在这里插入图片描述

3、运行keil工程

  • 上一步finish之后,有勾选Open in uVision的话,就会自动打开生成的文件,点击编译,看有没有问题。
  • ps:如果碰到keil和 ads起冲突的话,可以参考以下两个帖子。 https://blog.csdn.net/mao0514/article/details/70312202
    http://www.bubuko.com/infodetail-1313242.html
  • 正常零错误就代表编译完成了,生成了我们需要用到的axf文件。但接下来要使用keil和J-link烧写我们的设备,首先选择在工具栏上选择option,找到里面的Debug,选择使用J-Link作为我们的烧写器。最后选择setting.
    在这里插入图片描述
  • 按上一步的setting之后,会弹出以下界面,选择Debug中,确实使用的是SW烧写方式,速率这个按实际情况选择,我之前选太高还连不上了。
    在这里插入图片描述
  • 之后选择Flash Download。
    在这里插入图片描述
  • 选择flash类型,中间那个芯片信号不对的话,按ADD进行选择,如果你的keil中没有这个芯片型号的话,那请往下看。
    在这里插入图片描述
  • 找到官方烧写软件Programmer的目录,该目录下有个3rd_Party_Configuration_Files文件夹,里面就有我们需要的文件,找到对应的芯片系列型号CY8C40xx,在Prog_Algorithm文件夹下,可以看到一个CY8C40xx.FLM的文件,拷贝起来。
  • ps:参考下我电脑上这个文件的路径吧,一目了然的感觉对吧。
    D:\Program Files (x86)\Cypress\Programmer\3rd_Party_Configuration_Files\CY8C40xx\Prog_Algorithm
    在这里插入图片描述
  • 拷贝之后的文件放在keil的安装目录下的\ARM\Flash。
    参考我电脑的路径:D:\Keil_v5\ARM\Flash 拷贝进去之后,就能在Add flash选项中找到对应的flash。
    在这里插入图片描述

4、烧写

  • 配置完成后,点击Load,正常情况下,就可以直接下载,但是万一出现右下角的SW device Found,那就有问题了,但问题也不大,逐步排查。
    在这里插入图片描述
  • 出现上述问题,主要是没办法使用j-link和芯片连接,在排除不是手残把线弄断的情况下,接着往下看。
  • 因为CY8C4014LQI-421这款芯片没有Reset引脚,而且他的SWDIO SWCLK这两个引脚是有复用功能的,也就是当这两个引脚上电后被用了,在没有Reset的情况下,没办法使用SW模式和芯片建立通信,唯一能解决的方法,就是不要用到这个引脚的其他功能,再或者就是使用官方99刀的烧写器,选择power cycel模式下载。
  • ps:我先前使用了烧写口的复用功能(使用了串口,因为之前开发板上的串口是接P3.0),导致芯片烧写口被使用了,所以这里需要在原来的工程中,将这Debug Select设置回原来的SWD模式,然后使用官方烧写器烧录芯片,关闭烧写口的复用功能。
    在这里插入图片描述
  • 烧写完成后,再用keil的Load功能,就可以正常的烧写了。
    在这里插入图片描述

5、使用J-Flash烧写

  • 能使用keil烧写的话,至少可以省去99刀昂贵的烧写器费用,但是如果涉及到产线生产的问题,那就麻烦了,那么多步骤,产线的员工才不会这么搞,他们想做的就是能够直接点下载,就能烧录了。按以往的方法,可以使用hex文件烧录,当然keil也支持生成hex文件。
  • 不知道是我的J-Flash(V6.34f)版本问题还是其他问题,hex文件超过16k之后,就会报错,大致原因应该就是J-Flash烧写这款芯片的时候,不支持Hex格式的?(暂时不确定),毕竟hex文件不是纯粹的二进制文件,里面还带了很多其他信息在里面,因此要能够将编译出来的文件转换成bin文件就好了。
    在这里插入图片描述
  • 好在keil也支持间axf文件转换成bin文件的方式,想深入研究的可以参考官方文档,位置如下:在help中,打开文档帮助,然后在搜索中查找:fromelf,可以找到一堆相关的文章。
    在这里插入图片描述
  • fromelf这个工具就在keil文件夹下的ARM\ARMCC\bin中。
  • 参考我的目录:D:\Keil_v5\ARM\ARMCC\bin
  • 这里我简单说下有以下两种方法,第一种是是使用cmd命令去执行,打开命令行,进入到fromelf程序的文件夹里面,在命令窗口中输入"fromelf.exe --bin --output xxx.bin xxx.axf"并回车,这样就将axf文件生成xxx.bin文件。
  • 第二种方法可以在keil的配置选项中,添加:fromelf.exe --bin -o “%L@L.bin” “#L”,具体操作参考下图。生成的bin文件会在工程的同级目录下。
    在这里插入图片描述
  • ps:生成出来的bin文件会变成一个文件夹,里面有四个文件,其中三个看起来没啥用的感觉。
  • 可以在配置文件中,选择对.scat文件进行编辑,删除掉那几个链接文件,然后保存,在重新编译,就可以正常生成bin文件。但是这里我不确定另外三个没链接进去的文件是否会有影响,就目前来看,生成出来的bin文件,能用J-Flash烧录,也能正常使用。
    在这里插入图片描述
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值