问题

1:

如果串口带有奇偶校验,则需要设置32的串口字长为9位数据格式才行,否则会乱码 

2:

如果在ucos中使用浮点数,尽量使用__align(8) 对齐,否则串口打印浮点数会乱码,比如:

//设置任务优先级
#define TASK1_PRIO                   6 
//设置任务堆栈大小
#define TASK1_SIZE               256
//任务堆栈
__align(8) OS_STK TASK1_STK[TASK1_SIZE];
//任务函数
void TASK1_task(void *pdata);

 3.

stm32内部有ram和rom(一般都是几百kb)

rom(flash)中的内容一般用来存储代码和一些定义为const的数据,断电不丢失, 
RAM可以理解为内存,用来存储代码运行时的数据,变量等等。掉电数据丢失。

stm32内部rom(flash)也可以通过代码进行指定位置读写.

 

简单的说就是在烧写的时候是FLASH中的被占用的空间为:Code + RO Data + RW Data

程序运行的时候,芯片内部RAM使用的空间为:               RW Data + ZI Data

 

 

4.

假如代码里定义了__align(4) u8 mem2base[MEM2_MAX_SIZE] __attribute__((at(0X68000000)));        //外部SRAM内存池 

则可能会增加zi data数据,因为程序会以为有外部SRAM,从而将数据存到外部SRAM

 

posted @ 2018-05-11 16:26  诺谦  阅读(181)  评论(0编辑  收藏  举报