在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

cupkee系統(tǒng)的編程操作

科技綠洲 ? 來(lái)源:嵌入式大雜燴 ? 作者:嵌入式大雜燴 ? 2023-06-22 11:41 ? 次閱讀

cupkee是一個(gè)C語(yǔ)言編寫,專門為嵌入式硬件設(shè)計(jì)的微型操作系統(tǒng)

http://www.cupkee.cn

cupkee提供類似node的運(yùn)行環(huán)境,使用內(nèi)嵌的javascript解釋器執(zhí)行應(yīng)用程序腳本。

cupkee在硬件上提供了REPL,開(kāi)發(fā)者可以對(duì)硬件即時(shí)編程并獲得響應(yīng)。

cupkee小巧、簡(jiǎn)單。

關(guān)于cupkee的解釋器:

https://github.com/cupkee/panda

支持的處理器

  • stm32f103 (當(dāng)前的BSP是按照stm32f103rc的資源定義實(shí)現(xiàn)的)

硬件編程

cupkee系統(tǒng)的編程非常簡(jiǎn)單。

首先,將裝有cupkee系統(tǒng)的硬件通過(guò)USB連接到你的電腦

然后, 開(kāi)始編程

使用REPL

cupkee使用USB-CDC作為console,當(dāng)前主流桌面操作系統(tǒng)都可免驅(qū)識(shí)別。

打開(kāi)串口終端,鍵入Enter將看cupkee的logo信息和命令提示符。

輸入js語(yǔ)句,cupkee會(huì)為你執(zhí)行并返回結(jié)果

安裝應(yīng)用腳本

cupkee正常連接到電腦后,會(huì)出現(xiàn)卷標(biāo)為cupdisk的外掛硬盤。

寫好硬件應(yīng)用腳本后,只需將其拖入此硬盤,即可完成安裝。

mac用戶

mac是非常方便的開(kāi)發(fā)平臺(tái),其上自帶的screen應(yīng)用即可作為與cupkee的通信終端。(這是我在開(kāi)發(fā)cupkee時(shí)的用法)

完整的連接過(guò)程如下:

  1. 用usb線連接cupkee板和mac
  2. 打開(kāi)mac上的終端程序
  3. 在終端中輸入命令screen /dev/cu.usbmodemCUPKE1 baudrate (波特率可以隨便輸入)
  4. screen正常運(yùn)行后,會(huì)清除終端的歷史內(nèi)容,為用戶呈現(xiàn)一個(gè)干凈的新終端界面
  5. 鍵入Enter或其它任意,你將看到cupkee在終端中打印的logo,和輸入提示符

非mac用戶 或者不喜歡screen簡(jiǎn)陋功能

你可以使用其它常用的應(yīng)用軟件,如:putty,xshell,超級(jí)終端...

  • ubuntu12.04以上版本:無(wú)需驅(qū)動(dòng)
  • windows10, windows8: 無(wú)需安裝驅(qū)動(dòng),連接即可使用

較老電腦操作系統(tǒng)不能直接識(shí)別usb cdc設(shè)備,使用前需安裝驅(qū)動(dòng)程序。(不幸的是,目前沒(méi)有驅(qū)動(dòng)程序)

cupkee使用簡(jiǎn)介

完成上述操作,就可以開(kāi)始進(jìn)行硬件編程了。

使用解釋器

  • 進(jìn)行簡(jiǎn)單的計(jì)算
> 100 / 20 + 2
7
 >
  • 定義和使用變量
> var a = 1, b = 2;
undefined
 > a
1
 > a + b
3
 > a = "hello"
"hello"
 > b = "world"
"world"
 > a + " " + b
"hello world"
  • 定義和使用函數(shù)
> function fn(x, y) {
.   return x + y
. }
< function >
> fn(a, b)
3

操作硬件

  • 控制指示燈
led(1)              // 設(shè)置led引腳為高電平
led(0)              // 設(shè)置led引腳為低電平
led()               // 反轉(zhuǎn)led引腳電平
  • 操作GPIO
pinMap(0, 0, 1)     // 將GPIO引腳PA1,映射為PIN0
pinMap(1, 0, 2)     // 將GPIO引腳PA2,映射為PIN1

var pin = Device('pin', 0) // 申請(qǐng)pin設(shè)備實(shí)例0

pin.config('num',   2)
pin.config('start', 1)     // 設(shè)置pin設(shè)備管理的引腳: PIN0, PIN1
pin.config('dir', 'in')    // 設(shè)置pin方向: 輸入(in),輸出(out),雙向(dual)

pin.enable()

// 讀取pin引腳值
pin.get()                 // PIN0 PIN1
pin.get(0)                // PIN1
pin.get(1)                // PIN2
pin[0]                    // PIN1
pin[1]                    // PIN2

pin.listen('data', function(state) {   // 注冊(cè)引腳電平變化處理函數(shù)
  if (state[0]) led()
})
  • 操作設(shè)備(pwm, uart, i2c, adc, timer, counter, pulse)
var pwm = Device('pwm', 0) // 申請(qǐng)pwm設(shè)備實(shí)例0
...
// 設(shè)置pwm周期為1000ms
pwm.config('period', 1000)
// 使能pwm
pwm.enable()
...
pwm.write(0, 10)           // 設(shè)置pwm通道0占空比為10:990
pwm.write(0, 1000)         // 設(shè)置pwm通道0占空比為1000:0


...

更多信息, 請(qǐng)參考后續(xù)介紹及cupkee函數(shù)及設(shè)備手冊(cè)

cupkee提供的原生函數(shù)

cupkee提供了一組原生函數(shù)供開(kāi)發(fā)者使用

  • print

print函數(shù)被設(shè)計(jì)為一個(gè)即時(shí)幫助工具,它可以用來(lái)打印變量的內(nèi)容,和當(dāng)前cupkee支持的原生函數(shù)

cupkee內(nèi)建有系統(tǒng)定時(shí)器,每秒1000次滴答(每毫秒一次),作為系統(tǒng)程序的通用同步工具。

systicks函數(shù)返回系統(tǒng)啟動(dòng)后的總滴答數(shù)。

> while(1) {
    if (systicks() > 10000) {
        ...
        break;
    }
}
  • ledMap & led

點(diǎn)亮指示燈是硬件調(diào)整最基本的手段,cupkee為此專門提供了ledMap和led兩個(gè)原生函數(shù)進(jìn)行支持。

ledMap 用于指定指示燈使用的GPIO引腳。

led 用于控制指示燈引腳電平:1. 不帶參數(shù)調(diào)用時(shí),反轉(zhuǎn)引腳電平 2. 傳入真值(1, true, ...)時(shí),引腳設(shè)為高電平 3. 傳入假值(0, false, ...)時(shí),引腳設(shè)為低電平

  • pinMap & pin設(shè)備

采用相同處理器的不同的硬件板卡的引腳使用方案,往往并不同。cupkee需要一種處理機(jī)制,讓一個(gè)處理器的固件程序支持多種板卡。

原生函數(shù)pinMap就是為此而來(lái),它可以將任意GPIO引腳映射到cupkee內(nèi)建的抽象PIN[0-15]。PIN0-15]可以分配給pin設(shè)備使用。

  • setTimeout, setInterval, clearTimeout, clearInterval

cupkee提供了一組定時(shí)器函數(shù),它們相對(duì)于使用systicks管理程序同步更加有效

  1. setTimeout
    注冊(cè)延時(shí)(回調(diào))函數(shù),在指定時(shí)間后執(zhí)行
  2. setInveral
    注冊(cè)周期(回調(diào))函數(shù),以指定的時(shí)間間隔周期執(zhí)行
  3. clearTimeout
    清除延時(shí)函數(shù)
  4. clearInterval
    清除周期函數(shù)
// 定義函數(shù)f1,并在1000毫秒后執(zhí)行
var t = setTimeout(def f1() {
    ...
}, 1000)
...
// 定義函數(shù)f2,每1000毫秒執(zhí)行一次
var i = setInterval(def f2() {
    ...
}, 1000)
...
// 清除延時(shí)函數(shù), 參數(shù)為setTimeout的返回值
clearTimeout(t)
...
// 清除周期函數(shù), 參數(shù)為setInterval的返回值
clearInterval(t)
...
// 清除所有延時(shí)函數(shù)
clearTimeout()
...
// 清除所有周期函數(shù)
clearInterval()

cupkee上的設(shè)備

原生函數(shù)Device用來(lái)創(chuàng)建和查看可用設(shè)備。

> Device()              // 打印設(shè)備列表
Device id conf inst
* pin   0    3    2
* adc   0    3    2
...
undefined
>
> var pwm, key, adc
> pwm = Device('pwm', 1) // 申請(qǐng)pwm設(shè)備實(shí)例1
> key = Device('pin', 1) // 申請(qǐng)pin設(shè)備實(shí)例1
> adc = Device('adc', 0) // 申請(qǐng)adc設(shè)備實(shí)例0
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5095

    文章

    19189

    瀏覽量

    307969
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6900

    瀏覽量

    123805
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3639

    瀏覽量

    94031
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux操作系統(tǒng)C語(yǔ)言編程入門

    Linux操作系統(tǒng)C語(yǔ)言編程入門
    發(fā)表于 08-26 20:43

    編程用什么操作系統(tǒng)

    操作系統(tǒng)編程語(yǔ)言
    小凡
    發(fā)布于 :2022年09月08日 13:46:13

    基于操作系統(tǒng)編程與裸機(jī)編程有哪些不同之處

    因?yàn)閷W(xué)的是控制,剛開(kāi)始的時(shí)候玩的單片機(jī)比較多,單片機(jī)進(jìn)行開(kāi)發(fā)的一個(gè)重要的特點(diǎn)就是裸機(jī)編程。也就是說(shuō)內(nèi)核跑的完完全全是你的代碼。但是在操作系統(tǒng)編程就完全不一樣,因?yàn)槟愕某绦虼蟛糠侄荚谡{(diào)用操作系
    發(fā)表于 11-22 07:37

    Linux操作系統(tǒng)-C語(yǔ)言編程入門-pdf

    Linux操作系統(tǒng)-C語(yǔ)言編程入門介紹在LINUX 下進(jìn)行C 語(yǔ)言編程所需要的基礎(chǔ)知識(shí).在這篇文章當(dāng)中,我們將會(huì)學(xué)到以下內(nèi)容:􀂄 源程序編譯􀂄 Makefile 的編寫􀂄 程
    發(fā)表于 12-08 09:55 ?193次下載
    Linux<b class='flag-5'>操作系統(tǒng)</b>-C語(yǔ)言<b class='flag-5'>編程</b>入門-pdf

    編程操作界面在SCADA系統(tǒng)中的應(yīng)用

    編程操作界面在SCADA系統(tǒng)中的應(yīng)用
    發(fā)表于 01-19 12:29 ?23次下載
    可<b class='flag-5'>編程</b><b class='flag-5'>操作</b>界面在SCADA<b class='flag-5'>系統(tǒng)</b>中的應(yīng)用

    嵌入式操作系統(tǒng)Linux 中的串口應(yīng)用編程

    針對(duì)嵌入式Linux操作系統(tǒng)的特點(diǎn),分析在該系統(tǒng)下串行通信口編程控制的方法,總結(jié)程序設(shè)計(jì)的步驟; 在嵌入式Linux 系統(tǒng)上, 編寫控制程序, 成功地實(shí)現(xiàn)嵌入式
    發(fā)表于 05-14 14:34 ?28次下載

    FANUC_O系統(tǒng)操作編程說(shuō)明書(shū)

    FANUC O系統(tǒng)操作編程說(shuō)明書(shū)FANUC O系統(tǒng)操作編程說(shuō)明書(shū)FANUC O
    發(fā)表于 06-15 10:58 ?13次下載

    SLPC可編程調(diào)節(jié)器的編程設(shè)計(jì)與操作

    SLPC可編程調(diào)節(jié)器的編程設(shè)計(jì)與操作
    發(fā)表于 12-11 23:15 ?0次下載

    基于Linux操作系統(tǒng)下C語(yǔ)言編程入門

    基于Linux操作系統(tǒng)下C語(yǔ)言編程入門
    發(fā)表于 10-27 15:36 ?11次下載
    基于Linux<b class='flag-5'>操作系統(tǒng)</b>下C語(yǔ)言<b class='flag-5'>編程</b>入門

    Linux操作系統(tǒng)下C語(yǔ)言編程入門.pdf

    Linux操作系統(tǒng)下C語(yǔ)言編程入門
    發(fā)表于 05-17 10:08 ?96次下載

    Linux操作系統(tǒng)實(shí)用教程之如何進(jìn)行Linux系統(tǒng)下的編程管理

    本文檔的主要內(nèi)容詳細(xì)介紹的是Linux操作系統(tǒng)實(shí)用教程之如何進(jìn)行Linux系統(tǒng)下的編程管理主要內(nèi)容包括了:1.inux編程環(huán)境及工具2 Linux高級(jí)語(yǔ)言
    發(fā)表于 11-01 10:51 ?5次下載
    Linux<b class='flag-5'>操作系統(tǒng)</b>實(shí)用教程之如何進(jìn)行Linux<b class='flag-5'>系統(tǒng)</b>下的<b class='flag-5'>編程</b>管理

    操作系統(tǒng)是什么?計(jì)算機(jī)操作系統(tǒng)的詳細(xì)資料介紹

    操作系統(tǒng)是計(jì)算機(jī)學(xué)科的基礎(chǔ)課程,是理解計(jì)算機(jī)運(yùn)行原理的重要基石,學(xué)習(xí)操作系統(tǒng)不僅能夠讓編程人員了解計(jì)算機(jī)運(yùn)行邏輯而且還有助于培養(yǎng)編程“軟實(shí)力”,如果想真正在
    的頭像 發(fā)表于 02-04 12:24 ?1.7w次閱讀
    <b class='flag-5'>操作系統(tǒng)</b>是什么?計(jì)算機(jī)<b class='flag-5'>操作系統(tǒng)</b>的詳細(xì)資料介紹

    基于實(shí)時(shí)操作系統(tǒng)編程系統(tǒng)設(shè)計(jì)

    。基于實(shí)時(shí)操作系統(tǒng)編程可以大大縮短開(kāi)發(fā)的周期,實(shí)時(shí)性也有足夠的保證。基于實(shí)時(shí)操作系統(tǒng)編程的代價(jià)之一是,增加了程序代碼的長(zhǎng)度;代價(jià)之二是,需要較多的RAM空間,在不擴(kuò)展片外存儲(chǔ)器的情況下,中低檔單片機(jī)是難以勝任的。另一方面,大部分中低檔應(yīng)用
    的頭像 發(fā)表于 10-04 13:16 ?2778次閱讀
    基于實(shí)時(shí)<b class='flag-5'>操作系統(tǒng)</b>的<b class='flag-5'>編程</b><b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)

    單片機(jī)編程操作系統(tǒng)綜述

    本文分為兩部分——“單片機(jī)編程篇”和“操作系統(tǒng)篇”。單片機(jī)編程篇主要介紹單片機(jī)的各種編程結(jié)構(gòu),及其實(shí)現(xiàn)方法。是在假設(shè)已經(jīng)可以驅(qū)動(dòng)單片機(jī)和各個(gè)模塊的前提下,討論如何整合和使用這些資源,以
    發(fā)表于 05-08 11:12 ?40次下載

    基于操作系統(tǒng)編程與裸機(jī)編程的區(qū)別

    因?yàn)閷W(xué)的是控制,剛開(kāi)始的時(shí)候玩的單片機(jī)比較多,單片機(jī)進(jìn)行開(kāi)發(fā)的一個(gè)重要的特點(diǎn)就是裸機(jī)編程。也就是說(shuō)內(nèi)核跑的完完全全是你的代碼。但是在操作系統(tǒng)編程就完全不一樣,因?yàn)槟愕某绦虼蟛糠侄荚谡{(diào)用操作系
    發(fā)表于 11-13 17:36 ?11次下載
    基于<b class='flag-5'>操作系統(tǒng)編程</b>與裸機(jī)<b class='flag-5'>編程</b>的區(qū)別
    主站蜘蛛池模板: 给我免费播放片黄色 | 久久福利青草精品资源站免费 | 美女扒开尿囗给男人玩的动图 | 午夜美女久久久久爽久久 | 中文字幕亚洲综合久久2 | 亚洲国产福利精品一区二区 | 黄色大片三级 | 永久免费在线看 | 波多野结衣一级特黄毛片 | 欧美三级网 | 性欧美高清短视频免费 | 亚洲最大色网 | 午夜精品视频在线观看 | 天堂在线观看中文字幕 | 欧美三级在线 | 天天综合亚洲 | 性欧美xxxx乳高跟 | 久久精品亚洲精品国产欧美 | 在线黄视频网站 | 六月婷婷在线视频 | 一区精品视频 | 中文字幕在线看视频一区二区三区 | 国内一区二区 | 日韩高清毛片 | 国产一级又色又爽又黄大片 | 91夫妻视频 | 欲色网站 | 第四色亚洲色图 | 欧美一级在线全免费 | 欧美性受一区二区三区 | 天天躁日日躁成人字幕aⅴ 天天躁夜夜躁 | 国产h视频在线 | 在线观看亚洲一区 | 欧美呜巴又大粗又长 | 全免费午夜一级毛片真人 | 在线观看高清免费播放 | 二区视频在线 | 欧美日一级 | 午夜情趣视频 | 全黄h全肉边做边吃奶在线观看 | 亚洲最新|