嵌入式
leumber
这个作者很懒,什么都没留下…
展开
-
Hex格式文件转APDU格式
在使用Snooper时需要添加某外部程序到系统中,此处用到APDU格式传输,所以需要把Hex的16进制文件转成APDU格式。使用Notepad++或者类似的文本编辑器工具,使用快捷键Ctrl+H(替换)查找目标处输入Hex文件的起始符和代码长度,如: :10然后替换为FE38000014 6810(此处根据APDU的指令格式来)如:FE380000146810这是自己编的指令,CLA为原创 2016-09-28 10:24:59 · 956 阅读 · 0 评论 -
IAR 下将函数指定到RAM中
1. 利用关键字__ramfuncIAR中提供了关键字来声明将某个函数放在RAM中运行。该函数用关键字__ramfunc声明后,编译器将这段程序和其他的需要初始化的变量一起放在一个具有读/写属性的区域(SECTION),系统启动时自动和其他的需要初始化的变量一起被从ROM拷贝到RAM。使用__ramfunc关键字的缺点就是,不能指定具体的RAM位置。在定义为__ramfunc的函数中原创 2016-11-21 10:42:30 · 12502 阅读 · 1 评论 -
ARM内核寄存器的操作函数
在修改嵌入式底层的参数时需要使用一些内核寄存器的操作,在编译器中往往都封装了对应的函数。1.__ASM uint32_t __get_PSP(void):获取进程堆栈指针PSP。2.__ASM void __set_PSP(uint32_t topOfProcStack):设置PSP。3. __ASM uint32_t __get_MSP(void):获取主堆栈指针MSP。原创 2017-01-11 17:09:00 · 5272 阅读 · 0 评论 -
Kinetis KL8x 使用eDMA模块接收串口数据
飞思卡尔的芯片KL系列Cortex-M0+内核的,其他的应该可以通用,大体一致,之前在KL25上用过,这次是KL81,我对比两者使用类似,就是某些寄存器不同罢了正文开始:需要用LPUART接收上层接口的数据,比较大,而且大小不固定,之前用FIFO来接收,但是遇到收发错乱,很不稳定,故使用eDMA来接收#include "fsl_port_hal.h"#include "fsl_dev原创 2017-04-28 17:38:51 · 1685 阅读 · 0 评论 -
USB描述符解析和USB_CCID描述符设置
USB描述符解析USB描述符信息会被存储在USB设备中,在设备枚举过程中,USB主机会向USB设备发送GetDescriptor请求,USB设备在收到这个请求之后,会将USB描述符信息返回给USB主机,USB主机分析返回来的数据,判断出该设备是哪一种USB设备,按照描述符中的一些配置信息与设备建立相应的数据通道。USB描述符信息在USB协议中有详细描述。标准的USB设备有5种USB描述原创 2017-05-26 13:54:09 · 3738 阅读 · 0 评论