- 製品情報
-
- 個人・家庭向けプリンター
<用途から選ぶ>
- <カテゴリーから選ぶ>
- 法人・業務向けプリンター・複合機
- 産業向けプリンター・デジタル印刷機
- 消耗品
- 産業向け製品
- <インクジェットソリューション>
- 個人・家庭向けプリンター
S1C17 Familyの概要とシリーズ別の特長を解説した「マイクロコントローラの製品概要資料」
下記のようなS1C17 Familyの詳細資料がダウンロードできます
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | ソフトウェア割り込み時(int 命令)に、割り込みレベルを指定するにはどうすればよいか? |
回答 | S1C17 のアセンブラ命令には int 命令以外に、割り込みレベル指定付ソフトウェア割り込みintl が用意されています。書式は以下のとおりで、imm5 にベクタ番号、imm3 に割り込みレベルを指定します。 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | アセンブリソースコード中のコメントについて、";"と"/*"を組み合わせるとエラーになる。 |
回答 | アセンブリソースコードの中では、コメントの優先度が";" < "/*"となっており、"/*"の表記に対して"*/"がないとエラーになります。 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | アセンブラ言語を使った割り込み設定の記述方法について知りたい。 |
回答 | 弊社Web公開中の、スタートアップマニュアル(アセンブラ版)と、GNU17V3同梱のサンプルプログラム(C:\EPSON\GNU17V3\sample)を参考にしてください。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | ROMサイズが厳しいため少しでもコードを小さくしたい。 |
回答 | 出来るだけ多次元配列を使用せず、代わりに複数の1次元配列を使用するようにしてください。多次元配列へのアクセスは、コード効率を低下させます。また、関数へ構造体を渡す場合や、関数から構造体を返す場合に、ポインタで渡すようにしてください。ポインタ渡しにしない場合、構造体全体をコピーする処理が入るためコードが大きくなります。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | 現在の割り込みの状態を知りたいが、PSRを読み出すにはどうしたら良いか?また、PSRを直接変更する事は出来るか? |
回答 | S1C17 には、PSR にアクセスする命令は用意されておりません。PSR を参照、変更するには、int命令して使用し転送スタックにPSRを保存し、保存されたPSRを参照、変更したものをreti 命令を使用して元に戻すことで実現可能です。 なお、機種により PSR を参照するためのレジスタを搭載しているものもあります。詳しくは各機種のテクニカルマニュアルをご参照ください。 PSRサンプル |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | コンパイラに対し、コマンドラインオプション"-S"を指定するとsyntax errorが発生する。 |
回答 | コマンドラインオプション"-S"を指定すると、syntax errorが発生しますが、".o"ファイルとしてアセンブリソースファイルが出力されています。このオプションを指定した場合は、GNU17の仕様としてオブジェクトファイルが生成出来ないため、リンカのパスで失敗します。 GNU17としては、コマンドラインオプション"-S"を指定せず、コンパイル結果である".elf"ファイルを用いて、objdumpコマンドによりアセンブリ結果を参照する方法を標準としています。 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | GNU17でShift-JISの対応するにはどうしたら良いか。 |
回答 | GCCの基本的な文字コードは、UTF-8です。そのため、Shift-JISに対応するために、以下の設定を行ってください。 対象プロジェクトから[Properties]ダイアログ>C/C++ Build>Settings>[Tool Settings]>[Cross GCC Compiler]>[Dialect]>[Other dialect flags] に -finput-charset=CP932 を追加して下さい。 “-finput-charset”は、文字コードを指定するオプションになり、Shift-JIS(CP932)を指定します。 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | Cソースコード上から、固定データを特定のアドレスに配置したい。 |
回答 | 例えば、以下のようにソースコードとリンカスクリプトを記述することにより、アドレス0xB000~0xB00Fにデータ0x00~0x0Fを配置します。 ソースコード リンカスクリプト |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | Cコンパイラ 最適化オプションの変更方法は。 |
回答 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | プログラムサイズの確認方法は。 |
回答 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | スタック使用量を知りたい。 |
回答 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | プログラム、データ、変数の配置情報を知りたい。 |
回答 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | ビルド後に生成されるファイルと用途は。 |
回答 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | 割り込みルーチン、割り込みベクタの定義方法がわからない。 |
回答 | GNU17Ver.3.x.xに付属しております"crt0.c"ファイルではベクタテーブルの定義を行い、また、基本サンプルソフトでは、以下のようなマクロを提供していますので、これを用いると容易にベクタテーブルを再定義できます。 1)ベクタ定義(crt0.c) 2)マクロ定義(crt0.h) 3)マクロ使用例(ユーザ記述内容) |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | スタートアップルーチンを差し替える方法 |
回答 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | 未使用関数を除外してビルドする方法 |
回答 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | C言語上から直接アドレスを指定して、そこに書き込まれているデータを読み出したい。あるいは、データを書き込みしたい。 |
回答 | 以下のように記述することにより、指定アドレスから"value"に値を読み出し、あるいは指定アドレスに"value"の値を書き込むことが可能です。 1)アドレスが周辺回路レジスタ0x4000(2バイト)の場合 |
対象 GNU17 version | Ver.3.x.x Ver.2.x.x |
---|---|
質問 | IDEで作成したプロジェクトを構成管理ソフトで管理したいが、どのファイルを管理すればよいか? |
回答 | 管理する必要があるのは、以下のファイルです。 ・ソースファイル ・ヘッダファイル ・IDEがプロジェクト内に生成するファイルのうち、下記表が示す「要管理ファイル」 GNU17v3の場合 GNU17v2の場合 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | プロジェクト設定の properties「GNU17 General」にある「Target CPU Device」で選択出来る項目に CPU名以外に「S1C17」というのがあるが、何に使用するのか? |
回答 | S1C17 は機種に依存しない汎用的な設定で、CPUコアをシミュレートするために用意されています。 メモリマップは特に区分けされていません。ブートアドレスは、デフォルトで0x8000となっています。(変更可) |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | Eclipse経由でプラグインをインストールしようとした場合、プラグインがリストアップされない。 |
回答 | GNU17 IDEのHelp>Install New Softwareからプラグインをインストールする場合、必要事項入力後、プラグインがリストアップされるまで3~4分かかる場合があります。これは、Elipseの公式サイトにも記載がありますのでご確認ください。 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | ビルド時に以下のエラーが発生する。 "Couldn't reserve space for cygwin's heap, Win32 error 0." |
回答 | GNU17で採用しておりますGCCをWindowsアプリケーションで使用するためのライブラリ(msys-1.0.dll)の問題です。お客様の環境によっては、OSの再起動で解消される場合があります。また、一般的にはrebaseすることで解決するようです。GNU17V3は対策用にrebase済みのmsys-1.0.dllを"C:\EPSON\GNU17V3\utility\msys"に用意しています。本ファイルをGNU17V3のフォルダ(GCC4の場合は、"C:\EPSON\GNU17V3\gcc4")に上書きしてください。 前記の方法で解決しない場合は、以下のような対応をお試しください。 - OSを起動し直して、GNU17V3を(なるべく)最初に起動してください。 - 他のツールがインストールしたmsys-1.0.dllが存在するようなら、他のツールがインストールしたmsys-1.0.dllをGNU17v3のフォルダ(C:\EPSON\GNU17V3\gcc4)に上書きしてください。 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | プロジェクト名に"."を使用し、プロジェクト名を"文字列1.文字列2"のように設定した場合、ビルドで時にエラーが発生する。 |
回答 | プロジェクト名に、半角英数字とアンダーバー以外の文字は使用しないでください。 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | プロジェクト中で拡張子.cと.Cを混在させたい。 |
回答 | Eclipse CDTの仕様により混在させることは出来ません。どちらかに統一してください。 |
対象 GNU17 version | Ver3.x.x | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
質問 | 覚えておくと便利なショートカットキーは。 | ||||||||||||||||||||||
回答 |
※本情報は参考情報です。 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | プロジェクトファイルをビルドした結果、生成されたオブジェクトコードが、ターゲットMCUのメモリサイズに収まっていないのに、Problemウィドウにエラーとして表示がされない。 |
回答 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | 英語以外の表記に変更したいのですが、最新プラグインのURLが判りません。 |
回答 | 2020年8月現在の最新プラグインのURLは、以下になります。 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | デバッガが起動しなくなりました。また、デバッガ起動時の画面が変更されてしまいました。 |
回答 |
対象 GNU17 version | Ver3.x.x |
---|---|
質問 | 配置情報が記載されているマップファイルについて、スタックポインタ開始位置("__START_stack")は0x7c0になっているが、実際の設定と異なっている。 |
回答 | デフォルトのリンカスクリプトにおいて、スタックポインタの設定は、0x7C0に設定されています。リンカスクリプトファイルを指定しない場合は、デフォルトのリンカスクリプトが採用されますので、常にスタックポインタが0x7C0に設定されます。これはマップファイル表示のみの問題あり、実際の動作には影響ありません。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | ターゲットマイコンのRAMエリアにプログラムのオブジェクトデータをおいて、実行をさせたい。 |
回答 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | 変数を特定のアドレスに配置したい。 |
回答 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | ソースウィンドウでstep実行を行っているとき、関数内に入れないことがある。 |
回答 | コンパイラによりコードが最適化されているために起こります。"C" プログラム上は存在するコードが、コンパイラの最適化処理によりアセンブラプログラム上では"C"プログラムを同じ場所に存在していません。このためあたかもプログラム自体がそこに存在しないように見えます。"C"プログラムに沿ったstep実行を行いたい場合は、ビルド時に最適化を行わない設定としてください。 最適化の設定につきましてはS5U1C17001Cマニュアル「 Cコンパイラ」の章をご参照ください。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | 周辺回路レジスタのwatch表示をさせたい。 |
回答 | 例えば、”MSCPROT”といいう名称のレジスタでしたら、expressionsのウィンドウに{MSCPROT_REG}0x4000と記述する必要があります。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | Buildを実行した時、エラー、ワーニングは発生していないが、[run]→[Debug Configurations]を選択し、デバッガを起動した場合、[resume]ボタンが表示されないことがある。 |
回答 | プルダウンメニューの[run]→[Debug configuration]→[Debugger]タブ上に"Stop on startup"という項目があります。このチェックボックスのチェックが外れているか、欄内に記入されている関数が、"main"でない可能性があります。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | ダウンロードしたソフトを走行、ステップ実行すると暴走する。また、デバッガから操作ができなくなる。 |
回答 | 以下の事項について、ご確認ください。 ・スタックポインタの設定は正しくできていますか。 ・デバッグ端子をGPIOに切り替えていませんか。 ・RAMの最後尾64バイトはデバッガが使用します。この領域を使用していませんか。 ・プログラム走行中にウォッチドッグタイマ割り込みは入っていませんか。また、DEBUGモード時にウォッチドッグタイマの動作クロックを供給するか否か設定するビット(=DBRUN)が、"1"になっていませんか。 ・スタートアップルーチンを自作されているようであれば、内容に問題はございませんか。 ・S1C17コア予約I/Oエリア(0xfffc00~0xffffff番地)をアクセスしていませんか。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | デバッガ起動オプションは。 |
回答 | 以下の資料をご参照下さい。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | デバッガ クイックリファレンスありますか。 |
回答 | 以下の資料をご参照下さい。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | 表示されていないビューの表示方法は。 |
回答 | 以下の資料をご参照下さい。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | 周辺回路レジスタを見やすく表示 |
回答 | 以下の資料をご参照下さい。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | プログラム実行時間計測方法は。 |
回答 | 以下の資料をご参照下さい。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | メモリ、レジスタ内容参照時の注意事項は。 |
回答 | 以下の資料をご参照下さい。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | デバッガが突然起動しなくなった。 |
回答 | 以下の資料をご参照下さい。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | コンソールビューの注意事項は。 |
回答 | 以下の資料をご参照下さい。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | デバッガを起動するとき、ターゲットMCUのフラッシュメモリに対して、のプログラム/データの再書き込みを実行したくない。 |
回答 | プロジェクトファイル内にある以下の"gdbmini3.ini"ファイルを書き換えることにより実現可能です。gdb-05参照してください。
例えば、外部から電源供給をしない、初期読み出し、書き込み、イレーズとも実行しない場合は、以下のように記載します。 c17 model 17***@NOVCCIN,NOREAD,NOWRITE,NOERASE |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | デバッガの起動時間が遅い。 |
回答 | プロジェクトファイル内にある以下の"gdbmini3.ini"ファイルを書き換えることによりダウンロード時間を短縮することが可能です。gdb-05を参照してください。 ”NOREAD”と記述すれば、事前読み出しを行いませんので、高速に書き込みが可能です。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | ブレークポイントを4ポイント設定した後、いったんデバッガを終了し、その状態で再度デバッガを起動するとエラーが発生する。 |
回答 | S1C17Familyに内蔵されたデバッグ回路は、最大4ポイントのハードブレークポイントを設定することが可能です。しかし、本デバッガでは起動直後に停止すべきポイント(main関数の先頭)もハードブレークポイントとして、設定しますので、初期起動時にあらかじめ設定可能なハードブレークポイントは、3ポイント以下ということになります。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | ソフトウェアを走行させながら、変数値を参照したい。 |
回答 | リアルタイムで変数を参照する機能はありませんが、以下の手順により、ユーザソフトウェアを走行させながら変数値を参照することが可能です。 ■手順 1)デバッガ起動時に実行されるGDBコマンドファイル"gdbmini3.ini"の末尾に以下を追加する。 c17 stdout 1 WRITE_FLASH WRITE_BUF c17 stdin 1 READ_FLASH READ_BUF 2)ソースコード上で、モニタしたい変数を出力 例えば、”puts()”、"putchar()"などの関数を用いて変数値を画面に表示します。 以下にサンプルソフトがありますので、こちらを参照するとわかりやすいと思います。 C:\EPSON\GNU17V3\sample\sample_gcc6 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | ICDminiを用いてマイコンに内蔵されたフラッシュメモリを書き換える際、書き換え電源をマイコン内部で発生させる昇圧モードを用いると書き換えエラーが発生する。あるいは、マイコンのソフトウェアにより、本マイコンに内蔵されたEEPROMを書き換えようとすると、書き換えエラーが発生する。 |
回答 | 以下の資料をご参照下さい。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | ローカル変数がVariablesビューに表示されない。 |
回答 | 最適化オプションはデフォルト-O1のため、表示したいローカル変数が最適化されている場合があります。変数にvolatile宣言を追加し、最適化を防ぐことで表示可能です。 |
対象 GNU17 version | - |
---|---|
質問 | ビット操作で特定の割り込みフラグをクリアした際に、同じレジスタ内の別の割り込みフラグもクリアされる。 |
回答 | C言語上でのビット操作時には、実際はORを取っています。つまり、対象レジスタ情報をバイト単位で読み出し、特定ビットを変え、再びバイト単位で書き戻しています。この時、特定ビット内の別の割り込みフラグが1の場合、1が書き戻されるため、結果的にフラグクリアされてしまいます。このような場合には、バイト操作し、レジスタ全体の値を指定して書き込むことで解決可能です。 |
対象 GNU17 version | Ver.3.0.0 |
---|---|
質問 | S5U1C17001H1/2(ICDminiV1/2)のFlashライタモードを使用したい。 |
回答 | GNU17V3では、S5U1C17001H1/2(ICDminiV1/2)のFlashライタモードをサポートしていませんが、Flashライタモードを使用するための専用のツールを個別にご提供しております。弊社営業窓口までお問い合わせください。 |
対象 GNU17 version | Ver.3.x.x |
---|---|
質問 | psa(モトローラSフォーマット)ファイルをディスアセンブルして、アセンブラ命令に変換したい。 |
回答 | GNU17に付属されている objdumpコマンドを用いることにより、実現可能です。 objdump -D -m c17 --stop-address=末尾アドレス XXXX.psa > XXXX.s なお、constなどで定義されたデータ、割り込みベクタなども命令コードに変換されますので、注意が必要です。 |
対象 GNU17 version | N/A |
---|---|
質問 | 自社でターゲットマイコンの内蔵されたフラッシュメモリにデータを書き込むが、データの取り違えを防止するため、チェックサムを用いて管理したい。 |
回答 |
対象 GNU17 version | N/A |
---|---|
質問 | Windows10にて、マイコンユーザサイトからパッケージをダウンロードする際、以下の画面が表示される。 |
回答 | 実行して問題ありません。 |
対象 GNU17 version | Ver.4.0.0 |
---|---|
質問 | Multi Programmerを使用した量産において、Verifyエラーがする。 |
回答 | ICDmini⇔ターゲット間に使用している配線の長さをご確認ください。 規程より長さを延長している場合、書込みデータにノイズが乗り、Verifyでエラーとなる場合があります。 |
対象 GNU17 version | Ver.4.0.0 |
---|---|
質問 | MultiProgrammer.dllを使用したいが、マニュアルの記述だけでは使用方法が分からない。 |
回答 | MultiProgrammer.dllを使用した制御サンプルソフトをご提供しております。弊社営業窓口までお問い合わせください。 |
対象 GNU17 version | Ver.4.0.0 |
---|---|
質問 | ICDminiに接続されるターゲットの電源電圧に応じて、ICDminiの対応電圧を切り替える必要があります。ICDminiVer.2の場合は、ディップスイッチで3.3V/1.8V、外部電源を選択できましたが、ICDminiVer.3では電圧を切り替えるためのディップスイッチがありません。 どのようにして設定すればよいですか。 |
回答 | ICDminiVer.3をご使用の場合は、まず、TARGET_VCC_IN端子に供給される外部電源でターゲットとの接続を試み、本接続が失敗したら、内部電源(3.3V)に切り替えて再接続を試みます。そのため、お客様は、気にする必要はありません。なお、マルチプログラマも、機種別情報ファイルを使用いたします。本ファイルは常に最新版であることを弊社ウェブサイトでご確認ください。 |
対象 GNU17 version | Ver.4.0.0 |
---|---|
質問 | 実行結果が表示される前(実行が完了する前)に、基板からICDminiを切り離した場合、メイン画面のLCD表示部が進み、エラーにならない。 |
回答 | ターゲットのFlashメモリが小さい機種の場合、基板からICDminiを切り離す前に実行が完了しています。メイン画面では視覚的にユーザに見えるように表示しているため、思っているタイミングと異なる場合があります。 |
対象 GNU17 version | Ver.2 |
---|---|
質問 | Gang Programmerで問題が発生した場合、ログファイルの読み方を知りたい。 |
回答 | ログファイル(gplog.txt)の読み方については、マニュアルに記述しております。 Gang Programmerの問題解決のため弊社営業窓口にお問い合わせの際には、以下の情報をお送りください。 ・問題が発生している時のLCDパネルの写真 ・gplog.txt |