打印
[KungFu8位 MCU]

ChipON KF8 系列 MCU 常见问题 Q&A(五)

[复制链接]
5208|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
原味_郭|  楼主 | 2017-5-30 12:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
51、 ChipON IDE 编译一直出错。
ChipON IDE 提供了便利的程序空间管理,但和其他工具存在差异。这种模式是建立在一个空间下的多个项目管理,提供了历史管理和对比功能,便于程序版本的快速对比。因此项目需要一个对应的空间,一个空间下对应多个同类项目,但也要求空间应该独立如 D 盘某目录下一个、 E 盘某目录下一个。空间可以有很多个,每次 ChipON IDE 启动可以在对话框中选择或启动后点击文件-切换工作空间-其他。 ChipON IDE 要求每个空间独立,即不能有上下级关系,如 D a 目录是个空间, a 目录下 c 目录也是个空间,这种情况会存在信息混淆,出现编译错误的信息。该错误主要来源切换工作空间时的选择空间定位,如应选择到 a,不能是 a下的某个目录,否则会在该目录下建立新的工作空间。空间的标志是目录下存在“ .metadata”文件夹。建议工作路径不能太长。
      除了空间之外, ChipON IDE 采用变量仅在源文件中建立,不能在头文件中建立。如果其他文件需要使用时,在头文件中进行声明,其他文件引用该声明即可。数组大小不能超过 128
个字节(数据存贮器分区)。 不建议使用指针和浮点运算,这些代码编译会占用更多的程序空间。  

沙发
原味_郭|  楼主 | 2017-5-30 17:33 | 只看该作者
52、 ChipON IDE 调试功能怎么用,怎么查看变量的值?
ChipON IDE 提供调试功能,如果要用到调试功能还需要注意以下几点:调试模式下的编译选择不优化模式,因此程序空间比非调试模式下代码多。调试功能还会在程序区建立监控代码,也会占用部分空间,调试模式需要将复位脚作为复位功能, IO 口功能下可能会失败。调试使用了编程口,因此代码中不应使用该口的功能,如执行输出或 AD 功能使能,甚至 PWM输出脚。编译完成在该项目的代码文件编辑区域右键选择调试方式,随后选择 ChipON 硬件仿真。这里需要注意的是 debug 的编译过程信息,在异常下查看是否提示有错误,如找不到文件。
默认的调试界面仅显示变量,但该窗口主要建立过程结果,正确的做法是打开窗口-显示视图,选择表达式,也可以显示其他如内存、寄存器。在表达式中可以粘贴变量名即完成监控。需要注意的是监控建议使用全局变量。局部变量存在空间占用,但后续代码的过程变量可能会
使用,如定义 char 型临时变量 i, int 型临时变量 j,实际为存在临时的数据空间 3 个,后续代码的执行会灵活使用该 3 个地址,即临时变量的监控结果会在查看过程中不符,这个属于正常情况

使用特权

评论回复
板凳
原味_郭|  楼主 | 2017-5-30 17:35 | 只看该作者
53、 DEBUG 时程序程序运行,下载到芯片后不能正常运行
A:DEBUG 时选择的是“ DEBUG”模式, HEX 中包含监控代码,需要切换到”RELEASE”下编译,然后把 HEX 下载到芯片中。

使用特权

评论回复
地板
原味_郭|  楼主 | 2017-5-30 17:36 | 只看该作者
54、芯片在线下载不了
A: 确认 5 根下载线是否连接正常, SPDAT SPCLK 是否有电容。用万用表确认 5 根线是否老化造成断路、短路。

使用特权

评论回复
5
原味_郭|  楼主 | 2017-5-30 17:37 | 只看该作者
55、电平变化中断不可靠
A: 进入中断后,需要锁存 PO 口状态,然后再清零 POIF。
__asm
MOV P0 ;锁存 P0 口状态
__endasm

使用特权

评论回复
6
原味_郭|  楼主 | 2017-5-30 17:39 | 只看该作者
56、 KF8V111 P1 电平变化中断用不起来
A: KF8V111(A02)版本 P0/P1/P2 口有弱上拉功能, A01 版本只有 P0 口有弱上拉。 数据手册最后有说明,注意查看

使用特权

评论回复
7
原味_郭|  楼主 | 2017-5-30 17:39 | 只看该作者
57、提示芯片 ID 丢失,或者不识别
A: 这是由于芯片采用内部晶振,出厂时芯片晶振校准值存放在芯片保留区,编程时由于干扰(如 SPDAT SPCLK 接触不稳) ,造成校准值丢失。编程器为了防止这种异常,禁止编程。解决办法时,先把 HEX 下载到编程器,通过脱机编程重新校准芯片晶振,这样就可以正常使用了。

使用特权

评论回复
8
原味_郭|  楼主 | 2017-5-30 17:40 | 只看该作者
58、 芯片晶振不准
A: 用汇编编程时,需要先读取芯片校准值。详细见 DEMO 样例程序。

使用特权

评论回复
9
原味_郭|  楼主 | 2017-5-30 17:41 | 只看该作者
59、 在恶劣的坏境中 MCU 容易复位解决方法
A: 在强电磁干扰的情况下, MODE 脚电压一高,容易产生复位。 MODE 脚外部的复位电路尽量靠近 MCU,不宜走线过长,另外,通过加入 104 的电容和下拉 560 欧电阻到地。

使用特权

评论回复
10
原味_郭|  楼主 | 2017-5-30 17:41 | 只看该作者
60、在断电后又及时上电, MCU 为什么会程序跑乱。
A: 在配置位中掉电检测没有打开,导致在断电时电容没有一下子放电干净,使 MCU 没有完全复位,又一上电后,程序没有重头开始执行,部分寄存器数据发生变化了。解决方法是打开 BOD。

使用特权

评论回复
11
ahhsyf| | 2017-6-20 22:51 | 只看该作者
用汇编编程时,需要先读取芯片校准值。这个芯片校准,确实是第一次见到。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

224

帖子

1

粉丝