打印
[Kinetis]

KE06有没有程序运行时,像st32f103那样对flash可以进行编程

[复制链接]
2444|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
nongfuxu|  楼主 | 2014-11-6 08:04 | 只看该作者
上面没有说清楚。
是问,KE06能不能像ST32F103那样,在运行中对某一块闪存进行擦除后重新写入新数据。

使用特权

评论回复
板凳
nongfuxu|  楼主 | 2014-11-6 08:19 | 只看该作者
刚才在KE驱动库中找到一个写闪存的DEMO。
这说明 KE06是有一块闪存允许用户进行读、写。
代码如下:
    /* Erase 99th sector */
    FLASH_EraseSector(VERIFIED_SECTOR*FLASH_SECTOR_SIZE);
   
    for(i=0;i<256;i++)
    {
        u8DataBuff[i] = (uint8_t)i;
    }
   
    /* write data to erased sector */
    FLASH_Program( VERIFIED_SECTOR*FLASH_SECTOR_SIZE,&u8DataBuff[0],256 );
    FLASH_Program( VERIFIED_SECTOR*FLASH_SECTOR_SIZE+256,&u8DataBuff[0],256 );
    for( i=0;i<512/16;i++ )
    {
        for(ch =0;ch<16;ch++)
        {
            printf("0x%x,",*((uint8_t *)(i*16+ch+VERIFIED_SECTOR*FLASH_SECTOR_SIZE)));
        }
        printf("\r\n\r\n");
    }
    while(1){}
那么还剩下一个问题:  KE06中允许用户在运行中编程的区域有多少大,地址要求等。
在KE06参考手册上,我没有找到在哪里有写明白的,请熟悉KE芯片的各位告知。
谢谢!

使用特权

评论回复
地板
nongfuxu|  楼主 | 2014-11-6 08:20 | 只看该作者
/*-----------------------------------------------------*/
/*                                                     */
/* 在KE06参考手册上,我没有找到在哪里有写明白的,      */
/* 请熟悉KE芯片的各位告知。                            */
/*-----------------------------------------------------*/

使用特权

评论回复
5
justtest111| | 2014-11-6 08:30 | 只看该作者
如果从bootloader启动的话是不是能全部擦除加重写?我也刚学飞思卡尔,不是很懂。

使用特权

评论回复
6
FSL_TICS_Jeremy| | 2014-11-6 08:55 | 只看该作者
nongfuxu 发表于 2014-11-6 08:19
刚才在KE驱动库中找到一个写闪存的DEMO。
这说明 KE06是有一块闪存允许用户进行读、写。
代码如下:那么还 ...

Kinetis 芯片中都有支持Flash操作的模块,读写单位一般是512字节,即为1个扇区。

使用特权

评论回复
7
nongfuxu|  楼主 | 2014-11-6 10:14 | 只看该作者
谢谢 FSL_TICS_Jeremy。

再请教,是不是KE06中,所有Flash都可以进行读写操作?
比方,我现在用的芯片Flash为128 k,其中 固定不变的程序占用了60k,那么剩余的128-60=68k Flash,我应该从哪里开始作为"EEPROM",来进行擦除、读写呢?

使用特权

评论回复
8
nongfuxu|  楼主 | 2014-11-6 10:29 | 只看该作者
/*-----------------------------------------------------------------------------------------*/
1、
知道 Flash大小,和它们的相对地址,不知道从哪里到哪里是可以用作
给用户 在运行中读写的Flash. 比方 选用128k芯片,固定代码占用了50k
/*-----------------------------------------------------------------------------------------*/


/*-----------------------------------------------------------------------------------------*/
   2、
   参考手册上只写数据块0(Flash)地址范围,
   没有写明此闪存块在芯片中的地址区域。
/*-----------------------------------------------------------------------------------------*/


/*-----------------------------------------------------------------------------------------*/
  3、假如选用128k芯片,固定代码占用了50k。
  下载固定不变的用户代码后,不知道可编程、用于读写区域是从哪里到哪里。
/*-----------------------------------------------------------------------------------------*/

3.JPG (62 KB )

3.JPG

2.JPG (79.96 KB )

2.JPG

1.JPG (40.09 KB )

1.JPG

使用特权

评论回复
9
FSL_TICS_Jeremy| | 2014-11-6 14:41 | 只看该作者
nongfuxu 发表于 2014-11-6 10:14
谢谢 FSL_TICS_Jeremy。

再请教,是不是KE06中,所有Flash都可以进行读写操作?

理论上是所以的Flash都可以操作,但是Flash已经将部分空间用于存放代码,所以只能对剩余的空间进行存储,但是实际也不是对所有剩余的空间都进行操作,请以512字节,及一个扇区为界进行存储,即使存储代码的最后一个扇区还有部分字节空间,也建议不要使用,从下个扇区开始,用于Flash操作。

使用特权

评论回复
10
nongfuxu|  楼主 | 2014-11-6 17:38 | 只看该作者
谢了:)

使用特权

评论回复
11
FSL_TICS_Jeremy| | 2014-11-7 08:47 | 只看该作者
nongfuxu 发表于 2014-11-6 17:38
谢了

不客气!

使用特权

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

本版积分规则

个人签名:是不是经济不KUA,房价下不来? 高房价只能带来“实体经济挤出效应”。

417

主题

4293

帖子

2

粉丝