Kinetis ARM Cortex-M4 MCU 常见问题解答
0赞本帖汇总Kinetis ARM Cortex-M4 的一些常见问题,以下内容是结合本论坛网友提问及回答。下列问题可能存在一些小毛病,欢迎大家针对问题进行讨论,本帖将实时更新。如果大家有新的问题,可以跟帖留言,我们第一时间为您解答。
1、Kinetis ARM Cortex-M4使用哪些仿真器?
回答:OSBDM、PE、Jlink
2、K60无法下载程序的原因?
回答:由于程序本身问题,导致进入硬件错误死循环。解决方法是擦除FLASH。
3、JTAG接口电路?
回答:只用到TCK、TDI、TDO、TMS、nRST、TRST(可加可不加)、VCC、GND。
4、为什么操作flash的函数要copy到RAM里来执行?
回答:拷贝到RAM中执行是由于FLASH存储方式确定的,因为同一片FLASH不能进行操作,只能将FLASH拷贝到RAM中执行。
5、flexubs地址是以什么方式操作的?
回答:Flexubs地址是以双字的方式操作。
6、cortex-m4 datasheet下载地址:
回答:http://www.freescale.com.cn/products/Kinetis_ARM_Cortex-M4_Microcontrollers.asp
7、codewarrior v10.1如何设置成全部英文的?
8、在100M主频下面串口波特率的配置?
回答:在2M波特率下面,计算出来的位脉宽偏大,可以通过调整BRFA的值,来调整脉宽
9、TWR-K60N512在Keil MDK中如何打开外部中断
回答:用NVIC_EnableIRQ(UART3_RX_TX_IRQn);打开相应中断号。
10、AD,只能每次启动1个通道的转换,不能多次转换。
11、K60中断优先级设置是哪个寄存器?
回答:IPR寄存器可以设置优先级,详细请查阅手册。
12、程序存储区和PC指针的使用:
回答:0x00000000处放置的是堆栈起始地址;
0x00000004处存放的是PC指针,可以是标号
也就是开机上电后,把0x00000000出的内容给SP,把0x00000004处的内容给PC,然后就从那个地址开始执行指令了。
0x00000000 0x20010000 ;堆栈起始位置在RAM最顶端
0x00000004 __startup ;第一条指令在__startup标号处
13、K60有没有软件复位指令?
RNG_CMD_SR = 1;
14、模拟部分的VDDA和AD的基准VREF到底最高可以接多少V的电压?
回答:VDDA min VDD-0.3V max VDD+0.3 V VDD max 3.8V也就是说VDDA最大4.2V 4.2V是一个极限 最好不要超过3.6V
VaIO模拟IO min -0.3V max VDD+0.3V
Vref 1.71V - 3.6V
15、DAC寄存器配置里有个watermark的作用?
watermark嘛,顾名思义水位标记。这里指buffer位置标记,设置妥当之后,一旦当前buffer位置是设置位置,那么就会有相应中断发生或触发DMA。这个标记在快速读取和写入的时候相当有用,特别是配合dma使用时。
16、我在K60上跑的裸程序,没有系统,在程序中我申请了动态内存,我准备使用内部看门狗,看门狗复位后原来申请的内存没有释放,程序起来会去申请内存,会不会造成内存泄露?还是复位后内存管理也初始化了,只是RAM里有值,再申请内存也不会造成内存泄露?
回答:看门狗复位后,内存管理也会重新初始化。没有指示内存使用情况的“寄存器”。如果没有特殊情况,你所说的内存管理应该就是heap的使用,通常是malloc/calloc/realloc/free等函数。具体内存使用情况,可以参考你所用的IDE中这些函数的源代码,会有几个全局变量供你查看。
17、一直没有找到详细的资料说明K60的AD通道方面,datasheet上说是4路16 bit的ADC,4路AD是差分输入吗?如果单端输入最多可以有几路?
回答:就目前的产品来说,是2个sar adc模块,每个模块有多路通道,同时支持差分输入模式。以后可能会有4个adc模块的产品。如果没有同时采样要求,一个adc模块就可以接20路单端输入;如果一定要同时采样或者有时序要求,那只能是两路。另:具体请到官方网站上下载k60的参考手册和Datasheet