- 博客(15)
- 资源 (22)
- 收藏
- 关注
原创 STM8出现如下问题的解决方案
The command: "cxstm8 +warn +mods0 +debug -pxp -no -pp -l -iinc -iproject -i"C:\Program Files (x86)\COSMIC\CXSTM8_32K\Hstm8" -cl..\esir-th(v1.0)\ -co..\esir-th(v1.0)\ project\devinit.c" has failed, the
2015-07-31 16:26:59 4564
原创 如何分配变量到指定的地址
unsigned char temp_A@0x00; //定义无符号变量temp_A,强制其地址为0x00 unsigned char temp_B@0x100; //定义无符号变量temp_B,强制其地址为0x100 @tiny unsigned char temp_C; //定义无符号变量temp_C,由编译器自动在地址小于0x100的RAM中为其分配一个地址
2015-07-29 19:34:31 2055
原创 在STVD中如何生成hex文件
在Project->settings->PostBuild选项页中,在commands栏内加入下行命令:chex –fi -o $(OutputPath)$(TargetSName).hex $(OutputPath)$(TargetSName).sm8 再次编译链接该项目,如果成功则会在项目输出目录中(本例是在C:\STM8_NewProject1\debug 目录下
2015-07-29 17:22:17 5505
原创 STLINK找不到debug session的解决办法
如果在编译的时候出现如标题描述的问题,在debug instrument 的菜单下点击target settings 。这样就会出现如图一所示的对话框,选择swim ST-Link.。问题就此解决。
2015-07-29 13:30:19 3872
转载 stvd软件的精确讲解
如何分配变量到指定的地址 举例:unsigned char temp_A@0x00; //定义无符号变量temp_A,强制其地址为0x00unsigned char temp_B@0x100; //定义无符号变量temp_B,强制其地址为0x100@tiny unsigned char temp_C; //定义无符号变量temp_C,由编译器自动在地址小于0x100的RAM
2015-07-28 13:36:43 3853
转载 51的DATA,IDATA,XDATA,PDATA区别
DATA: 固定指前面0x00-0x7F的128个RAM,可以用ACC直接读写的,速度最快,生成的代码也最小。IDATA: 固定指前面0x00-0xFF的256个RAM,其中前128和DATA的128完全相同,只是因为访问的方式不同。IDATA是用类似C中的指针方式 访问的。汇编中的语句为:MOX ACC,@Rx。XDATA:外部扩展RAM,一般指外部0x000
2015-07-28 13:34:13 450
原创 函数求偏移量
if(len != pupdate->len+offset_of(struct UPDATE, data)) return(ret);struct UPDATE{ uint8 seq[2]; uint8 ack; uint8 crc[2]; uint8 len; uint8 data[1];};#define offse
2015-07-16 19:18:39 811
原创 IAR编程环境 _no_init
@是指定地址,__no_init 是一个SEGMENT,是给LINKER用的,定义到不初始化的块中去。@就是指定地址,这个应该没什么好说的了,大部分编译器都这么用。你应该理解这个吧。你定义全局变量的时候比如int char; 即使你没有赋值给他,编译器还是会给他一个初始化值0,编译的时候编译器把他分配到初始化为零的那个SEGMENG中去了。编译器默认的有几个块,初始化为零的块,初始化不为零的块,和
2015-07-15 16:53:51 2709
原创 crc16计算
unsigned short sp_crc16_with_init(unsigned short crc, const unsigned char *buf, int size){ unsigned char i; while(size--!=0) { for(i=0x80; i!=0; i/=2) { if((crc&0x8000)!=0)
2015-07-13 20:11:45 1036
原创 远程升级学习
升级说明①升级程序结构:bootloader应用程序区程序备份区 0x8000~0x81FF 0x8200~0xC100 0xC100
2015-07-13 16:02:01 942
原创 **X的用法
uint8 program_data(uint16 flash_addr, uint8 buffer[], uint8 len){uint8 i; int trycnt = 1; uint16 address = flash_addr;retry_lbl: if(trycnt-- _flash_write(flash_addr,
2015-07-13 16:00:51 3085
原创 c语言中!=EOF的意义
eof 是end of file的缩写 “!=EOF” 表示文件还没有结束“=EOF” 表示到文件末尾了。你在用函数读入文件数据的时候,函数总会返回一个状态,是读取成功还是失败,那么这个状态怎么表示呢,所以就约定俗成定义一个标识符表示这个状态,就有了EOF
2015-07-03 08:08:03 1514
原创 十六进制转换为BCD码
bcd_add_1(&ptempc->temp_param.limit_t);void bcd_add_1(unsigned char *s){ if((*s & 0x0f) == 9) { *s = (*s & 0xf0) + 0x10; } else (*s)++;}bcd_sub_1(&ptemp
2015-07-02 20:19:51 3656
原创 解决IAR在线不能下载的问题
$TOOLKIT_DIR$\config\flashloader\Freescale\FlashKLxx32K.board在框中添加如上就可以运行了,下载了。
2015-07-01 13:25:19 5751
STM32F429FreeRTOS开发手册V1.1
2018-11-12
【原创】讯联电子DA14580实战教程---DA14580 SDK介绍
2018-11-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人