OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3565|回复: 5

stm32在线标定系统设计问题

[复制链接]

3

主题

9

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2019-12-25
在线时间
7 小时
发表于 2019-12-25 12:39:43 | 显示全部楼层 |阅读模式
1金钱
问题:汽车电子钟用const定义常量在rom中,上电后把rom这部分数据搬到ram中。我的问题是怎么在切换到ram标定页的时候,让程序到ram相关区域查找变量,而不是rom的标定页。
下面是英飞凌c16x芯片的demo,我理解标定页初始化函数一样,设置标定页这个stm32怎么处理?
void ccpInitCalPage( void ) {

    #define CALROM_ADDR 0x14000
    #define CALRAM_ADDR 0x44000
    huge unsigned char *p1 = (huge unsigned char *)CALROM_ADDR;
    huge unsigned char *p2 = (huge unsigned char *)CALRAM_ADDR;
    unsigned int i;
    for (i=0;i<0x4000;i++) {
      *p2++ = *p1++;
    }
}
void ccpSetCalPage( CCP_DWORD a )
{
  ccpCalPage = (CCP_BYTE)a;

    if (ccpCalPage==1) { /* RAM */
      #pragma asm
        mov DPP1,#11h
      #pragma endasm
    }
    else
    {             /* ROM */
      #pragma asm
        mov DPP1,#05h
      #pragma endasm
    }

}





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2019-12-26 02:30:47 | 显示全部楼层
你可以将rom数据一次性拷贝到ram,然后再去操作ram里面的数组就可以了
回复

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2019-12-25
在线时间
7 小时
 楼主| 发表于 2019-12-26 20:41:24 | 显示全部楼层
正点原子 发表于 2019-12-26 02:30
你可以将rom数据一次性拷贝到ram,然后再去操作ram里面的数组就可以了

原子大哥这个应该是搬运rom 中常量的函数
void ccpInitCalPage( void ) {

    #define CALROM_ADDR 0x14000
    #define CALRAM_ADDR 0x44000
    huge unsigned char *p1 = (huge unsigned char *)CALROM_ADDR;
    huge unsigned char *p2 = (huge unsigned char *)CALRAM_ADDR;
    unsigned int i;
    for (i=0;i<0x4000;i++) {
      *p2++ = *p1++;
    }
}
回复

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2019-12-25
在线时间
7 小时
 楼主| 发表于 2019-12-26 20:46:15 | 显示全部楼层
正点原子 发表于 2019-12-26 02:30
你可以将rom数据一次性拷贝到ram,然后再去操作ram里面的数组就可以了

下边是我的理解不知道对不对:搬运完成后,咱们是可以修改相应位置的值。但是程序运行还是会去rom中查找常量参与运算。标定常量通常是一些需要调整的参数,所以修改ram根本没有起到调整参数的作用。是不是还需要rom和ram地址的重映射,如果是具体怎么操作啊
回复

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2020-5-19
在线时间
12 小时
发表于 2020-6-4 10:55:05 | 显示全部楼层
大哥,我看了您发的一篇关于标定的文章,我想请问一下关于单片机参数标定的思路,看了一个关于can通讯的ccp协议的标定以及485通讯的标定,但是感觉还是很乱,(1)这个数据是保存到ram还是rom,还是eeprom,(2)标定的时候是怎么个流程,如果可以,能加你微信咨询一下吗
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2023-7-15
在线时间
0 小时
发表于 2023-7-15 22:51:27 | 显示全部楼层
请问下,代码中 在线标定时 const变量切换为 RAM变量的方法找到了吗? 谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 04:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表