LoginSignup
4
0

TOPPERS活用アイデア・アプリケーション開発コンテスト受賞作品紹介(1) 第一回(2011)アプリケーション開発部門銀賞『Natural Tiny Shell Task』中村晋一郎

Last updated at Posted at 2018-06-20

TOPPERS「活用アイデア」・「アプリケーション開発」コンテスト
は、2011年から毎年実施されています。
https://www.toppers.jp/contest.html

<この項は書きかけです。順次追記します。>

「アプケーション開発」は、ソースコードの公開を前提としています。
「活用アイデア」でも、その後実現したソースコードなどもある。探しながら紹介。

なお、この記事は、TOPPERSプロジェクトの公式見解ではなく、
小川清 の 技術者個人の考えに基づいています。

#目的(purpose)
TOPPERS開発アイデア・アプリケーション開発コンテスト受賞作品には、良質な算譜、技術的に崇高な志向、目的を達成するための意思などが感じられる。広く、source codeを表示して紹介し、次の応募作品を促す。

#成果(outcome)
応募作品の算譜を眺めると、その技術者の得意分野や技法を感じることができる。応募作品のソースコードを使ってみようという気になる。自分も良い作品を作ろうという気になる。

「TOPPERS活用アイデア・アプリケーション開発コンテスト受賞作品紹介」まとめ作成中
https://qiita.com/kaizen_nagoya/items/72b882d96b2841f25faf

アプリケーション開発コンテスト受賞作品紹介(1)

##第一回銀賞 小規模組み込みシステム向けシェル・タスク『Natural Tiny Shell Task』 中村晋一郎(個人)

応募資料(application material)

###「プロジェクトのウェブサイト」
https://www.cubeatsystems.com/ntshell/

Download

関連資料(related URL)

Natural Tiny Shell(NT-Shell)のポーティング事例。LPCXpressoとTOPPERS/ASPで小規模組み込みシステムの開発をもっと便利に!
http://shinta-main-jp.blogspot.com/2011/03/natural-tiny-shellnt.html

小規模組み込みシステム向けシェル・タスク『Natural Tiny Shell Task』のデモ・キットをET2011のTOPPERSブースで展示します。
http://shinta-main-jp.blogspot.com/2011/11/natural-tiny-shell-tasket2011toppers.html

実用ライブラリシリーズ : Natural Tiny Shell (NT-Shell)
https://os.mbed.com/users/shintamainjp/notebook/ntshell_ja/

Shinichiro Nakamura / NaturalTinyShell arm/mbed
https://os.mbed.com/users/shintamainjp/code/NaturalTinyShell/

Natural Tiny Shell (NT-Shell)の追加をdevelopにマージする
https://ja.osdn.net/projects/uzume/scm/git/uzume_bfin/commits?branch=experimental_30510_bash_completoin

TOPPERS活用アイデア・アプリケーション開発コンテスト受賞作品紹介(3)第二回(2012)アプリケーション開発部門銀賞Natural Tiny Logger(NT-Logger) 中村晋一郎(個人)
https://qiita.com/drafts/80d371ffaac4f51ecd05/

TOPPERS活用アイデア・アプリケーション開発コンテスト受賞作品紹介(6)第三回アプリケーション開発部門銀賞 T TOPPERS Realtime System Sample(RSS)- LPCXpresso GPS Clock 中村 晋一郎(個人)
https://qiita.com/kaizen_nagoya/items/06744374c509bf46ebfb

算譜(source code)

main.c
/**
 * @file main.c
 * @author CuBeatSystems
 * @author Shinichiro Nakamura
 * @copyright
 * ===============================================================
 * Natural Tiny Shell (NT-Shell) Version 0.3.1
 * ===============================================================
 * Copyright (c) 2010-2016 Shinichiro Nakamura
 *
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of this software and associated documentation
 * files (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use,
 * copy, modify, merge, publish, distribute, sublicense, and/or
 * sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following
 * conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 * OTHER DEALINGS IN THE SOFTWARE.
 */

#include "chip.h"
#include "uart.h"
#include "ntshell.h"
#include "usrcmd.h"
#include <cr_section_macros.h>

static int serial_read(char *buf, int cnt, void *extobj)
{
    for (int i = 0; i < cnt; i++) {
        buf[i] = uart_getc();
    }
    return cnt;
}

static int serial_write(const char *buf, int cnt, void *extobj)
{
    for (int i = 0; i < cnt; i++) {
        uart_putc(buf[i]);
    }
    return cnt;
}

static int user_callback(const char *text, void *extobj)
{
#if 0
    /*
     * This is a really simple example codes for the callback function.
     */
    uart_puts("USERINPUT[");
    uart_puts(text);
    uart_puts("]\r\n");
#else
    /*
     * This is a complete example for a real embedded application.
     */
    usrcmd_execute(text);
#endif
    return 0;
}

int main(void)
{
    void *extobj = 0;
    ntshell_t nts;
    SystemCoreClockUpdate();
    uart_init();
    uart_puts("User command example for NT-Shell.\r\n");
    ntshell_init(&nts, serial_read, serial_write, user_callback, extobj);
    ntshell_set_prompt(&nts, "LPC824>");
    while (1) {
        ntshell_execute(&nts);
    }
    return 0 ;
}

main.c以外のソースコードは順次追記予定。
https://www.cubeatsystems.com/ntshell/download.html

p.s.
ある年の、中村晋一郎さんのETでのプレゼンは、 TOPPERSプロジェクトの代表の高田広章と同じくらいの人間が集まっていたのが印象的だった。

技術者の、意思のある伝言は、多くの人に届くものだと。

参考資料(reference)

TOPPERS活用アイデア・アプリケーション開発コンテストを振り返る
https://researchmap.jp/joxkbxlck-1778110/

「応募すると何が嬉しい」TOPPERS活用アイデア・ アプリケーション開発コンテスト
https://www.slideshare.net/kaizenjapan/ss-78528931

Qiitaで組立語(assembler)・機械語(machine language)・CPU<アセンブラへの道>
https://qiita.com/kaizen_nagoya/items/46f2333c2647b0e692b2

<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>

文書履歴(document history)

ver. 0.10 初稿 20180620
contest.htmlで「プロジェクトのウェブサイト」がリンク切れだった。
下記が代替サイトであることを著者に確認。contest.html付け替え依頼、修正済み。20180620
https://www.cubeatsystems.com/ntshell/
Ver. 0.11 成果追記 20180622
Ver. 0.12 関連資料・参考文献追記 20180623
ver. 0.13 まとめ・参考資料(アセンブラ) 追記 20180716

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0