音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

光盤上的flashdown程序有問題,到1100就出問題

作者:zyking 欄目:ARM技術(shù)
光盤上的flashdown程序有問題,到1100就出問題
光盤上的flashdown程序有問題,到0x1110就出問題,改s[1024]為2048出錯的地址為19a0,是不是在程序里沒清s,溢出了?

2樓: >>參與討論
zlgarm
re
降低你的串口波特率試試。

3樓: >>參與討論
zyking
我降到了9600,還要降低嗎
 
4樓: >>參與討論
vcvcvcvc
我改的flash.c,我用沒問題

#define IN_FLASH
#include "config.h"

volatile uint16 *GetAddr(INT32U addr)
{
    uint32 TEMP;
    
    TEMP = 0x80000000;
    TEMP += (addr << 1);
    return (volatile uint16 *)TEMP;
}

uint8 WordProgram(uint32 Addr, uint16 Data)
{
    volatile uint16 *ip;
    uint16 TEMP1,TEMP2;

    ip = GetAddr(0x5555);
    ip[0] = 0xaaaa;
    ip = GetAddr(0x2aaa);
    ip[0] = 0x5555;
    ip = GetAddr(0x5555);
    ip[0] = 0xa0a0;
    
    ip = ((volatile uint16 *)(Addr));
    *ip = Data;
    while (1)
    {
        TEMP1 = *ip;
        TEMP2 = *ip;
        if (TEMP1 == TEMP2)
        {
            if (TEMP1 != Data)
            {
                return FALSE;
            }
            else
            {
                return TRUE;
            }
        }
    }
    return TRUE;
}

uint8 ChipErase(void)
{
    volatile uint16 *ip;
    uint16 TEMP1,TEMP2;

    ip = GetAddr(0x5555);
    ip[0] = 0xaaaa;
    ip = GetAddr(0x2aaa);
    ip[0] = 0x5555;
    ip = GetAddr(0x5555);
    ip[0] = 0x8080;
    ip = GetAddr(0x5555);
    ip[0] = 0xaaaa;
    ip = GetAddr(0x2aaa);
    ip[0] = 0x5555;
    ip = GetAddr(0x5555);
    ip[0] = 0x1010;

    while (1)
    {
        TEMP1 = *ip;
        TEMP2 = *ip;
        if (TEMP1 == TEMP2)
        {
            if (TEMP1 != 0xffff)
            {
                return FALSE;
            }
            else
            {
                return TRUE;
            }
        }
    }
    return TRUE;
}

uint8 SectorErase(uint32 Index)
{
    volatile uint16 *ip;
    uint16 TEMP1,TEMP2;

    ip = GetAddr(0x5555);
    ip[0] = 0xaaaa;
    ip = GetAddr(0x2aaa);
    ip[0] = 0x5555;
    ip = GetAddr(0x5555);
    ip[0] = 0x8080;
    ip = GetAddr(0x5555);
    ip[0] = 0xaaaa;
    ip = GetAddr(0x2aaa);
    ip[0] = 0x5555;
    ip = GetAddr(Index << 11);
    ip[0] = 0x3030;

    while (1)
    {
        TEMP1 = *ip;
        TEMP2 = *ip;
        if (TEMP1 == TEMP2)
        {
            if (TEMP1 != 0xffff)
            {
                return FALSE;
            }
            else
            {
                return TRUE;
            }
        }
    }
    return TRUE;
}

unsigned CHAR block_erase(unsigned LONG index)
{
    volatile uint16 *ip;
    uint16 TEMP1,TEMP2;

    ip = GetAddr(0x5555);
    ip[0] = 0xaaaa;
    ip = GetAddr(0x2aaa);
    ip[0] = 0x5555;
    ip = GetAddr(0x5555);
    ip[0] = 0x8080;
    ip = GetAddr(0x5555);
    ip[0] = 0xaaaa;
    ip = GetAddr(0x2aaa);
    ip[0] = 0x5555;
    ip = GetAddr(index << 15);
    ip[0] = 0x5050;

    while (1)
    {
        TEMP1 = *ip;
        TEMP2 = *ip;
        if (TEMP1 == TEMP2)
        {
            if (TEMP1 != 0xffff)
            {
                return 0;
            }
            else
            {
                return 1;
            }
        }
    }
    return 1;
}



5樓: >>參與討論
zlgarm
re
核對一下你的串口波特率設(shè)置是否和下載程序的串口設(shè)置一致。

6樓: >>參與討論
zyking
一致
我在config.h里定義#define bps 9600

在寫到0x1100時錯,返回FILE_FOEMAT_ERR:我看了程序是*s!=':',是接收出了問題?我是在片內(nèi)ram運行程序的。在函數(shù)uint8 DownloadLine(CHAR *s)中
s++;是不是超出了1024,程序中沒有把s指回去。

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
如何定義一個全局結(jié)構(gòu)體變量
全局結(jié)構(gòu)體數(shù)組 問題,請周工和眾兄臺幫忙,焦急等待中
請教 ARM嵌入式基礎(chǔ)教程-BootLoader的問題。
周工:LPC2292跑minigui問題
想SMARTARM2200的目標板上移植ucGUI的朋友請進!
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號