PC版 SYSLAB blog  http://syslab.asablo.jp/blog/......

FRK-RX62N (14) printf (3) KPIT GNURX SCI
2011-06-22


禺画像]
, "Project Includes" *****************************************************************************/ /* Device specific SFR definitions */ #include "iodefine.h" /* Used for standard types (e.g. uint8_t) */ #include "stdint.h" /****************************************************************************** Global variables and functions ******************************************************************************/ /****************************************************************************** * Function Name: charput * Description : Outputs a character on a serial port * Arguments : character to output * Return Value : none ******************************************************************************/ void charput(uint8_t output_char) { /* Wait for transmit buffer to be empty */ while(IR(SCI1, TXI1) == 0); /* Clear TXI IR bit */ IR(SCI1, TXI1) = 0; /* Write the character out */ SCI1.TDR = output_char; } /****************************************************************************** End of function charput ******************************************************************************/ /****************************************************************************** * Function Name: charget * Description : Gets a character on a serial port * Arguments : character to output * Return Value : none ******************************************************************************/ uint8_t charget(void) { uint8_t temp; /* Read any 'junk' out of receive buffer */ temp = SCI1.RDR; /* Clear flag to receive next byte */ IR(SCI1, RXI1) = 0; /* Wait for next receive data */ while(IR(SCI1, RXI1) == 0); /* Read data */ temp = SCI1.RDR; /* Echo data back out */ if(temp == 0x0d) { /* Enter was pressed, output newline */ charput('\r'); charput('\n'); } else { /* Echo back character */ charput(temp); } /* Receive data acquired, send back up */ return temp; } /****************************************************************************** End of function charget ******************************************************************************/ int _write(int file,char *ptr,int len) { int i; for(i=0;i



6.KPIT GNURX [ELF] Toolchain の Library Generator は
  Library type が Pre-Built
  Select library が Optimized
  (次回は Newlib でもやってみよう)
7.後はコンパイルして書き込むだけ。


しかし、問題が無いわけではない。FDT で書き込む時 mot file exceeds the flash ROM size of RX600 Series device という警告が出てくる。 禺画像] FDTがうまく動かない場合は S-record file の2行目を削除してしまおう。
S30900001000xxxxxxxxxx となっている部分。
でも、本来このデータは ROM に入っていなければならないはずだが...
そのうち何とかすることにしよう。おそらく次の GNURX では直っていると思う。
表示は Renesas のサンプルそのまま。 禺画像]


欲を言えば、送受信割り込み+リングバッファ対応としたいところだ。


参照:Renesas Application Notes[LINK] RX600 Series Adding Printf and Scanf Support (R01AN0509EU0100)
環境:High-performance Embedded Workshop Upgrade 4.09.00
    KPIT GNURX v11.01 Windows Tool Chain (ELF)

戻る
[RX]
[マイコン]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット