2016年4月17日日曜日

XAMPP-5.6.19 で mysql root パスワード設定方法

XAMPP Control Panel の Shell ボタンを押し以下を入力します。

    mysqladmin --user=root password "****"          (****は任意のパスワード)



次に、xampp/phpMyAdmin/config.inc.php を以下のように変更します。

    $cfg['Servers'][$i]['password'] = '';
                 ↓
    $cfg['Servers'][$i]['password'] = '****';            (****は任意のパスワード)



以上で root のパスワードは設定されたはずなので phpmyadmin を起動してみましょう。

    http://localhost/phpmyadmin/ をブラウザ入力して問題なく見れたらOKです。



AVR ブートプログラムのリンカー設定方法

Atmel Studio AVR bootloader
CPU : ATxmega256A3BU

ブートプログラムを自作する場合、生成されるHEXファイルは
ブート部に書込むようにしねければなりません。


ブートプログラム用のリンカー設定方法を ATxmega256A3BU を例に示します。








Atmel Studio の [Project]メニューの[**Properties]を開き以下を設定します。

    [Toolchain]->[AVR/GNU Linker]->[Memory Settings]->[FLASH segment]

    [Add Item](緑十字アイコン)をクリックし以下を入力します。

    .text=0x20000


ATxmega256A3BU のブート部は 0x40000 ですが .text=0x20000 になることに注意しましょう。

XAMPP-5.6.19 で xdebug を有効にする方法



xampp-win32-5.6.19-0-VC11-installer
 
php.ini に以下を追記します。 
 
[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9000
 
XAMPPの再設定のとき苦労したのでメモしました。

2016年1月7日木曜日

MFC VC++6.0 シリアル通信の注意点

MFC VC++6.0 シリアル通信の注意点

シリアル通信を行う場合の注意点は以下です。

・COMナンバーに¥¥¥¥.¥¥を付加する
    (COM1~9なら¥¥¥¥.¥¥を付加しなくても問題なくオープンします)

・CreateFileAを使ってCOMオープン
    (VC++上位互換を意識しないのならCreateFileでもオープンします)

-------------------------------------------------------

bool Open(int ComNum, int baudrate, BYTE parity, BYTE stopbit ) // シリアルポートを開く
{
char szSerial[256];
sprintf( szSerial, "¥¥¥¥.¥¥COM%d", ComNum); // ■¥¥¥¥.¥¥を付加する

if( NowCom != 0 ){ // すでにオープンのとき
Close( NowCom );
}

Shandle = CreateFileA( // ■CreateFileAを使ってCOMオープン
        szSerial,
        GENERIC_READ | GENERIC_WRITE,
        0,
        NULL,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL, // 非同期モード : 受信してなくても戻る
        NULL
        );

    if( Shandle == INVALID_HANDLE_VALUE) { // COMオープンできなかったとき
        Shandle = NULL;
NowCom = 0;
return FALSE;
    }

NowCom = ComNum; // COM確定
HandleAry[NowCom] = Shandle; // ハンドル登録

    if( !InitDCB( baudrate, parity, stopbit ) ){ // DCB構造体の初期化に失敗したとき
        return FALSE;
    }

    if( !InitCommTimeOuts() ){ // COMタイムアウト構造体設定に失敗したとき
        return FALSE;
    }

    return TRUE;
}