打印
[技术问答]

N76E003 ota 远程升级

[复制链接]
1227|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
feizhigang|  楼主 | 2019-11-20 11:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁有新唐IC的N76系列,OTA 远程升级的相关资料,帮忙提供下,谢谢

使用特权

评论回复
沙发
yiy| | 2019-11-20 15:08 | 只看该作者
IAP吗,官方提供的有啊,你远程用什么通信

使用特权

评论回复
板凳
643757107| | 2019-11-20 16:05 | 只看该作者
什么接口远程通信

使用特权

评论回复
地板
feizhigang|  楼主 | 2019-11-20 16:08 | 只看该作者
643757107 发表于 2019-11-20 16:05
什么接口远程通信

串口通讯,涂鸦WIFI

使用特权

评论回复
5
feizhigang|  楼主 | 2019-11-20 16:10 | 只看该作者
feizhigang 发表于 2019-11-20 16:08
串口通讯,涂鸦WIFI

load,boot程序如何跳转,中断需要映射吗,变量空间能否共用

使用特权

评论回复
6
huahuagg| | 2019-11-20 23:51 | 只看该作者
看官方的例子啊

使用特权

评论回复
7
dongliushui| | 2019-11-21 08:50 | 只看该作者
#include <intrins.h>
#include "..\lib\n76e003.h"
#include "..\lib\my.h"

unsigned char xdata UIDBuf[12];                //存储96bit的UID内容


//读出芯片的96bit的UID
void ReadUID(void)
{
        unsigned char ch;


        TA = 0xaa;
        TA = 0x55;
        CHPCON |= 0x01;                        //使能IAP

       
        for (ch=0; ch<0x0c; ch++)
        {
                IAPAH = 0x00;
                IAPAL = ch;                        //0x02;
                IAPCN = 0X04;
       
                TA = 0xaa;
                TA = 0x55;
                IAPTRG |= 0x01;
                UIDBuf[ch] = IAPFD;
        }

//        ch = IAPFD;

//        TA = 0xaa;
//        TA = 0x55;
//        IAPTRG |= 0x01;

/*        TA = 0xaa;
        TA = 0x55;
        IAPUEN |= 0x01;                        //选择要写入的区域 BIT2 -- 1 使能IAP擦除或编程CONFIG  BIT1 -- 1 使能IAP擦除或编程LDROM  BIT0 -- 1 使能IAP擦除或编程APROM

        IAPCN = 0x22;
        IAPAH = 0x10;
        IAPAL = 0x00;
        IAPFD = 0xff;
        TA = 0xaa;
        TA = 0x55;
        IAPTRG |= 0x01;

        IAPCN = 0x21;
        IAPAH = 0x10;
        IAPAL = 0x00;
        IAPFD = 0xaa;
        TA = 0xaa;
        TA = 0x55;
        IAPTRG |= 0x01;

        TA = 0xaa;
        TA = 0x55;
        IAPUEN &= ~0x01;*/

        TA = 0xaa;
        TA = 0x55;
        CHPCON &= ~0x01;
}

bit CompUID(unsigned char code *cp_r)
{
        unsigned char code *cp;
        unsigned char xdata *xp;
        unsigned char xdata tmpx[128];
        unsigned char loop;
        cp = cp_r;                //&UID1;
        xp = &tmpx;
        for (loop=0,B=12; ; )
        {
                if (*cp == 0xff) loop++;
                cp++;
                B--;
                if (B==0) break;
        }
        cp = cp_r;                //&UID1;
        if (loop>5)                //没有写入UID,写入UID
        {
                for (loop=0; loop<12;loop++)
                {
                        *xp = UIDBuf[loop];
                        xp++;
                        cp++;
                }
                for ( ; loop<128; )
                {
                        *xp = *cp;
                        loop++;
                        xp++;
                        cp++;
                }

                TA = 0xaa;
                TA = 0x55;
                CHPCON |= 0x01;                        //使能IAP


//                TA = 0xaa;
//                TA = 0x55;
//                IAPTRG |= 0x01;

                TA = 0xaa;
                TA = 0x55;
                IAPUEN |= 0x01;                        //选择要写入的区域 BIT2 -- 1 使能IAP擦除或编程CONFIG  BIT1 -- 1 使能IAP擦除或编程LDROM  BIT0 -- 1 使能IAP擦除或编程APROM
       
                IAPCN = 0x22;                        //APRROM擦除

                IAPAH = (unsigned char)(((unsigned int)cp_r)/256);                //0x10;
                IAPAL = (unsigned char)cp_r;                        //0x00;
                IAPFD = 0xff;

                TA = 0xaa;
                TA = 0x55;
                IAPTRG |= 0x01;                         //执行IAP

//APROM写入
                xp = &tmpx;
                for (loop=0; loop<128; loop++)
                {
                        IAPCN = 0x21;
                        IAPAH = (unsigned char)(((unsigned int)cp_r)/256);                //0x10;
                        IAPAL = loop;        //0x00;
                        IAPFD = *xp;        //0xaa;
                        xp++;
                        TA = 0xaa;
                        TA = 0x55;
                        IAPTRG |= 0x01;
                }

                TA = 0xaa;
                TA = 0x55;
                IAPUEN &= ~0x01;
       
                TA = 0xaa;
                TA = 0x55;
                CHPCON &= ~0x01;
                return(TRUE);
        }
        else                        //比较UID
        {
                cp = cp_r;                //&UID1;
                xp = &UIDBuf;
                for (B=12; ; )
                {
                        if(*xp != *cp) return(FALSE);
                        B--;
                        if (B==0) break;
                }
                return(TRUE);
        }
       

}

使用特权

评论回复
8
dongliushui| | 2019-11-21 08:51 | 只看该作者
上面是003的IAP例子,你参考参考吧

使用特权

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

本版积分规则

2

主题

4

帖子

0

粉丝