2015年5月12日 星期二

Filezilla Client windows8.1跟ubuntu 10.04安裝

server 是linux系統的,有用基本的putty的telnet連上過,沒問題

先講簡單的windows8.1

安裝完 Filezilla Client 3.10.3 , 打開後,開啟站台管理員,新增站台=>在一般設定=>
主機:192.168.xx.xx
連接埠:22
協定:SFTP-SSH File Transfer Protocol
登入型式:一般
使用者:xxx(在server的帳號)
密碼:xxx(在server的密碼)


再按連線,就可以看到successful


======================================================================
再說linux ubuntu10.04版的
先在terminal下
sudo apt-get install filezilla
安裝完後到
/usr/bin/
看看有沒有
filezilla
直接去執行filezilla,左鍵滑鼠敲2下,就可以打開filezilla
再往下做就跟windows的操作一樣







2015年5月11日 星期一

ubuntu 10.04 安裝圖形化介面

1.先在VM=>Install VMware Tools
首先發現會出現的問題, "VMware Tools installation cannot be started manually while Easy Install is in progress."

1.先確認一下,是否有選到的選項




如果還不行,就請用終極作法

1.將Floppy先移除掉,再重新add,一樣是選Auto detect,按ok
2.再將CD/DVD移除掉,再重新add,選Auto detect,在按ok






完畢後,再開機(power on),開機時會出現找不到Floppy,但不管它,開機後再選一次,VM=>Install VMware Tools,這樣就可以正常了,會出現cancel VMware Tools installation

=======================================================================
有安裝過ubuntu-14.10-desktop-amd64,跟安裝最新的ubuntu-15.04-desktop-i386,安裝老半天都沒法create share file,上面的就是我遇到其中的某一個問題,所以只好回到10.04,之前有使用過10.04版,但是燒到光碟版的安裝都沒什麼問題,我是
直接下載ubuntu 10.04,ubuntu-10.04.4-server-i386.iso,沒燒成CD,安裝完,啟動後,就變文字模式,如果要進入圖形化介面,在terminal,先安裝sudo apt-get install xinit,再打startx,哇~發現是變成白底黑字,在網上找到一些資料,做了一些動作都沒用,例如做一些update,
但是安裝完下面指令後就可以進入圖形化介面,但是安裝時間要很久,我下載時間約2小時多
sudo apt-get install ubuntu-desktop #gnome

如果再不行,可以試著換這個

sudo apt-get install Kubuntu-desktop #kde

我2個都有安裝,先安裝sudo apt-get install ubuntu-desktop #gnome,再安裝sudo apt-get install Kubuntu-desktop #kde,發現會讓你選擇是要執行gnome或kde,我選擇gnome,看起來是沒問題的






















2014年11月3日 星期一

MT7620 新增madplayer方法


要先下載madplayer的資料

madplay-0.15.2b.tar.gz
libmad-0.15.1b.tar.gz
libid3tag-0.15.1b.tar.gz

網址:
http://sourceforge.net/projects/mad/files/

zlib-1.2.8.tar.gz
網址:
http://sourceforge.net/projects/libpng/files/zlib/1.2.8/zlib-1.2.8.tar.gz/download

http://sourceforge.net/projects/libpng/files/zlib/

我是用mips的,所以我找了一些mip相關網站,參考,修改成我要的東西
1.
 先指定路徑:
TOOLCHAINPATH=/opt/buildroot-gcc342/bin/

2.安裝zlib
tar zxf zlib-1.2.8.tar.gz

cd zlib-1.2.8

./configure --prefix=$TOOLCHAINPATH

make CC=mipsel-linux-gcc 2>&1 | tee build.log

make install

3.安裝libid3tag

tar zxf libid3tag-0.15.1b.tar.gz

cd libid3tag-0.15.1b

RANLIB=mipsel-linux-ranlib AR=mipsel-linux-ar CC=mipsel-linux-gcc ./configure --prefix=$TOOLCHAINPATH --enable-static --disable-shared --host=mipsel-linux

make 2>&1 | tee build.log

make install

4.安裝libmad
tar zxf libmad-0.15.1b.tar.gz

cd libmad-0.15.1b

RANLIB=mipsel-linux-ranlib AR=mipsel-linux-ar CC=mipsel-linux-gcc ./configure --prefix=$TOOLCHAINPATH --enable-static --disable-shared --host=mipsel-linux

make 2>&1 | tee build.log

make install

5.安裝madplay

tar zxf madplay-0.15.2b.tar.gz

cd madplay-0.15.2b

LIBS="-lm -lz" RANLIB=mipsel-linux-ranlib AR=mipsel-linux-ar CC=mipsel-linux-gcc ./configure --prefix=$TOOLCHAINPATH --enable-static --disable-shared --host=mipsel-linux

make 2>&1 | tee build.log


基本上這樣是沒錯的,但是我安裝到最後會出現問題,不知道為什麼,請待續...

下面是我compiler過的

方法一:
安裝zlib
tar zxf zlib-1.2.8.tar.gz
cd zlib-1.2.8
CC=mipsel-linux-gcc AR="mipsel-linux-ar rc" RANLIB=mipsel-linux-ranlib ./configure --prefix=/opt/buildroot-gcc342/bin/mipsel-linux

export CPPFLAGS='-I../libmad -I../libid3tag'
export LDFLAGS='-L../libmad -L../libid3tag'

安裝libid3tag
./configure --host=mipsel-linux
make
cp .libs/libid3tag.a .

安裝libmad
./configure --host=mipsel-linux
make
cp .libs/libmad.a .

安裝madplay
./configure --host=mipsel-linux
make

我compiler後,會出現這樣的問題
../libtool: line 1644: cd: ../libmad: No such file or directory
libtool: link: cannot determine absolute directory name of `../libmad'
make[2]: *** [libintl.la] Error 1

解決方法:直接指到絕對路徑
修改Makefile
#vi Makefile
CPPFLAGS='-I/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libmad/ -I/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libid3tag/'
LDFLAGS='-L/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libmad/ -L/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libid3tag/'

最後再下:
#./configure --host=mipsel-linux --disable-debugging --disable-shared --enable-static CPPFLAGS='-I/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libmad/ -I/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libid3tag/' LDFLAGS='-L/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libmad/  -L/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libid3tag/.libs'
就過了
之後換make
#make
又會出現error
mipsel-linux-gcc: /root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libid3tag/.libs/.libs/libid3tag.so: No such file or directory
make[2]: *** [madplay] Error 1

再次修改Makefile
vi Makefile
找到下面那行
LDFLAGS='-L/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libmad/ -L/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libid3tag/.libs'
變成
LDFLAGS='-L/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libmad/ -L/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libid3tag/
之後再make一次
#make
就過了

# file madplay

madplay: ELF 32-bit LSB executable, MIPS, MIPS-II version 1 (SYSV), dynamically linked (uses shared libs), not stripped

就會看到是用MIPS











2013年5月23日 星期四

PIC32MX795F512H相關的問題PK3Err0040 error massage

這顆CHIP發現有個問題,就是燒錄問題,在programmer可以燒錄,但是轉換成Debug時候就不能燒錄,會出現這樣的Massage:


PK3Err0040: The target device is not ready for debugging.
Please check your configuration bit settings and program
the device before proceeding.


檢查之後是因為Spec上有寫到的問題

bit 3 ICESEL: In-Circuit Emulator/Debugger Communication Channel Select bit
1 = PGEC2/PGED2 pair is used
0 = PGEC1/PGED1 pair is used
bit 2 Reserved: Write ‘1’
bit 1-0 DEBUG<1:0>: Background Debugger Enable bits (forced to ‘11’ if code-protect is enabled)
11 = Debugger is disabled
10 = Debugger is enabled
01 = Reserved (same as ‘11’ setting)
00 = Reserved (same as ‘11’ setting)

原來燒錄問題是出現在這顆IC有2個燒錄方式,分別是
1. PGEC1; PGED1
2. PGEC2; PGEC2
要看當時的版子是選用哪一種方式去燒路,所以要去選擇Configure->Configuration Bit->ICESEL
要看一下線路圖,Spec預設值是PGEC2/PGED2

線路圖的話,
要看一下PIC32MX795F512,100隻腳位PGEC1/PGED1是在pin24(PGEC1),pin25(PGED1)
                                                                  PGEC2/PGED2是在pin28(PGEC2),pin27(PGED2)

2013年5月5日 星期日

AVR makefile using a library

AVR version is 4.0

如果要在Atmel的AVR建立一個Library要做以下的步驟:

1.在makefile裡面新增一行:

##Link
$(TARGET): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET)

avr-ar rcs libUART.a UART_App.o
%.hex: $(TARGET)
avr-objcopy -O ihex $(HEX_FLASH_FLAGS)  $< $@ 

這是我擷取下來的,主要在Link後面加上 avr-ar rcs libUART.a UART_App.o   要注意一個地方,
 libUART.a 這個的lib很重要,一定要加lib不然compile不會過,avr-ar rcs libUART.a UART_App.o一定要空格

2.再到Edit Configuration Options->General->Use External Makefile 把自己寫好的makefile include進來

3.在跑一次Rebuild all,就會跑出 libUART.a

4.把自己Build的libUART.C檔移除,只剩下libUART.a

5.再到Edit Configuration Options->libraries->library search path 只到自己建立的 libUART.a路徑

6.Edit Configuration Options->libraries->Available Link Objector-> libUART.a  add Objector 到Link with These Objects->確定

7.再做一次Rebuild All


2012年9月4日 星期二

常用的C語言指標用法


typedef struct
{
   unsugned char bit0:1;
   unsugned char bit1:1;

   unsugned char bit2:1;
   unsugned char bit3:1;

   unsugned char bit4:1;
   unsugned char bit5:1;

   unsugned char bit6:1;
   unsugned char bit7:1;


}type_data;

        unsigned char *data_prt;
type_data temp_data;

data_prt = (unsigned char*) & type_data ;
*data_prt = cmd;//cmd is data, put cmd to type_data 8bit

or
      cmd = *dtat_prt; //type_data put to cmd

2012年2月21日 星期二

Atmel Chip要注意的地方跟常忘記的事情

Compiler Software is AVR Studio 4
********************************************************************************************
一般Timer的算法:
頻率:4M
打出軟體PWM:3K
1.4000000/3000=1333.33333333 ; 所以4M/1333.3333333=3000.00000007輸出約3K
  所以4M/1334=2998.50074962   
2.8bit-(0.00033333333*4M/8/1)
  8bit=256
  256-(0.00033333333*4000000/8(軟體除頻)/1(cpu除頻))=90 ==>輸出約3K

Atmega48/88/168 CTC Mode 要注意的地方
1.目前所實驗的是使用 WGM13:0 = 4 ((WGM13,WGM12,WGM11,WGM10)=0100)
2.OCR1A 可以用來設定PWM的輸出
3.TCNT1跟OCR1A做比較後,計數器會歸零,EX:TCNT1=0x0000, OCR1A=0x0FF0, TCNT1會計數到0x0FF0會產生中斷,並將TCNT1清除歸零
4.OCR1A定義是計數器的TOP值
*5.OCR1A計數到TOP時,會產生中斷,
*6.OCR1A小於TCNT1,計數器會丟失這次比較,並會數到0xFFFF,然後再重0x0000重新計數到OCR1A所設定的值
*7.OCF1A是計數到TOP值後,所產生的中斷旗標,
1.如果使用Timer 去計算 時間的中斷的話,OCR0A絕對不能去設定


********************************************************************************************
//AVR Studio 4
*****  函式裡的參數第一個字不能是大寫
Bug mesesge ==>.././_include/UART_Mega48.h:82:26: error: expected ';', ',' or ')' before numeric constant

********************************************************************************************
ATmega48
裡面UART的RX要接TX,TX接RX
自己做的UART轉USB,GND的旁邊是TX,再過來是RX

********************************************************************************************
Tiny461 使用AD有關問題,需要注意的地方
Auto trigger mode 有個bit要注意 ADCSRA |= (1<<ADATE);這bit要注意,
   ADATE Enable:當使用外部的crystal,不知為什麼不能使用會抓不到值,但使用內部的8Mhz,就可以抓的到
   ADATE Disable:可以使用外部的Crystall就沒問題
***特別要注意的地方,在JTAGICE裡面的fuses==>BODLEVEL要選Brown-out detection disable 因為如果要做ADC的功能的話必須要Disable,不然會影響ADC,
  EX:選4.3v會偵測到3.76v
    選Brown-out detection disable就可以detect到0~5v
  
EX 1:  這的設定結果只能抓到0v~3.76v之間的電壓,以上的話是會顯示最大值,192==>192/255(8bit)*5v= 3.7647  <<此現象必須把BODLEVEL disable
 ADCSRA_Prescaler_Select(Division_2);  //ADCSRA = (1<<ADPS0);
 ADCSRB_Auto_Trigger_Enable(Counter0_Overflow); //ADCSRB |= ((1<<ADTS2));  // ADCSRA |= (1<<ADATE); //use Auto trigger enable, but can't use external crystall
 ADMUX_Voltage_Mode(VCC_Voltage);  //VCC used as voltage reference,disconnected from AREF ADMUX &= ~((1<<REFS1)|(1<<REFS0));
 ADMUX_InputChannle_Mode(AnalogCannel_1); //ADC0   ADMUX &= ~((1<<MUX4)|(1<<MUX3)|(1<<MUX2)|(1<<MUX1)|(1<<MUX0));  //  ADC0 (PA0)
 DIDR0 |= ((1<<AREFD) | (1<<ADC0D));
 ADCSRA_Enable();
 ADCSRA_Start();