這里把在FLASH引導方面做的工作向大家匯報一下,希望能對大家有所幫助。本人經驗和文筆都有限,寫的不好請大家諒解。
硬件環境:
DSP:TMS320VC5416PGE160
FLASH:SST39VF400A-70-4C-EK 都是貼片的,FLASH映射在DSP數據空間的0x8000-0xFFFF
軟件環境: CCS v2.12.01
主 程序(要燒入FLASH的程序): DEBUG版,程序占用空間0x28000-0x2FFFF(片內SARAM),中斷向量表在0x0080-0x00FF(片內DARAM),數據空間使用0x0100-0x7FFF(片內DARAM)。 因為FLASH是貼片的,所以需要自己編一個數據搬移程序,把要主程序搬移到FLASH中。在寫入FLASH數據時,還應寫入引導表的格式數據。最后在數 據空間的0xFFFF處寫入引導表的起始地址(這里為0x8000)。
搬移程序: DEBUG版,程序空間0x38000-0x3FFFF(片內SARAM),中斷向量表在0x7800-0x78FF(片內DARAM),數據空間使用 0x5000-0x77FF(片內DARAM)。 搬移程序不能使用與主程序的程序空間和中斷向量表重合的物理空間,以免覆蓋。 燒寫時,同時打開主程序和搬移程序的PROJECT,先LOAD主程序,再LOAD搬移程序,然后執行搬移程序,燒寫OK!
附:搬移程序(僅供參考)
標簽:
FLASH
5416
家
DSP
上傳時間:
2014-01-08
上傳用戶:gaojiao1999
河內塔問題
#include<stdio.h>
#include<stdlib.h>
int fun_a(int)
void fun_b(int,int,int,int)
int main(void)
{
int n
int option
printf("題目二:河內塔問題\n")
printf("請輸入要搬移的圓盤數目\n")
scanf("%d",&n)
printf("最少搬移的次數為%d次\n",fun_a(n))
printf("是否顯示移動過程? 是請輸入1,否則輸入0\n")
scanf("%d",&option)
if(option==1)
{
fun_b(n,1,2,3)
}
system("pause")
return 0
}
int fun_a(int n)
{
int sum1=2,sum2=0,i
for(i=n i>1 i--)
{
sum1=sum1*2
}
sum2=sum1-1
return sum2
}
void fun_b(int n,int left,int mid,int right)
{
if(n==1)
printf("把第%d個盤子從第%d座塔移動到第%d座塔\n",n,left,right)
else
{
fun_b(n-1,left,right,mid)
printf("把第%d個盤子從第%d座塔移動到第%d座塔\n",n,left,right)
fun_b(n-1,mid,left,right)
}
}
標簽:
int
include
stdlib
fun_a
上傳時間:
2016-12-08
上傳用戶:努力努力再努力