1.udevçruleså®å¶åè°è¯
2.STM32 进阶教程 1 - micropython 移植
udevçruleså®å¶åè°è¯
udevçruleså®å¶åè°è¯
å¨å®å¶é¡¹ç®ä¸ï¼å¯¹å¤è®¾ççææç管çåºæ¬é½å¨udev/systemd-udevæ¥ç®¡çãè¿é没æ对åºæ¬çudev使ç¨/rules书åè¿è¡ä»ç»ã
1. udevçruleså¯è½çä½ç½®
/lib/udev/rules.d -- udevé»è®¤/é¢ç½®çrules
/etc/udev/rules.d/ -- å®å¶çrulesï¼ ä¼å 级é«äº/lib/udev/rules.dï¼å®æ¹å»ºè®®å®¢æ·åçrulesé½æ¾è¿é
è³äºæ¾å¨åªä¸ªä½ç½®ï¼èªå·±å³å®å°±å¥½ï¼æ¢ç¶ä½ å¨ä¿®æ¹ç³»ç»å°±åºè¯¥ç¥éä½ å¨åä»ä¹
2. å®å¶èªå·±çrules
å®å¶çææçäºä»¶ï¼å ·ä½å°ruleså°±æ¯ï¼
1ï¼è¿æ»¤å°æ£ç¡®çudeväºä»¶ã
2ï¼æå®æ§è¡çå¨ä½ï¼ruleséçâRUNâï¼é常æ¯èæ¬ï¼æ¯ç«è¦å®æä¸ä¸ªåè½ï¼ç»å¤§å¤æ°åºæ¯é½ä¸æ¯ä¸ä¸ªå½ä»¤è½æå®çï¼
3.å°è¿éå°±è¦è®¾è®¡å°rulesçè°è¯äº
1ï¼å¦ä½ç¥éè¦è¿æ»¤çæ¯æ¡ä»¶ï¼
2ï¼å¦ä½å°å¿ è¦çåæ°ä¼ éç»RUNæ§è¡çèæ¬ï¼
æ¹æ³1:
udevadm monitor -p
-- çæµæ以çkernel/udevdççææäºä»¶ï¼ -pé项å¾æå¿ è¦ï¼æå°åºæ¬æ¬¡çææäºä»¶çä¸äºå±æ§
è¿éå°±æ¯æ¯è¾è®¾å¤æå ¥åæåºæ¶çäºä»¶å±æ§çä¸åï¼å¯ä½ä¸ºè¿æ»¤çæ¡ä»¶
æ¯å¦ï¼
rulesæ件对äºè§åï¼
å°è¿éå¾å¤æ¶åå°±è½æ»¡è¶³è¦æ±äºï¼å¦æè¿æ解å³ä¸éçåºæ¯ï¼å°±è¦è¿ä¸æ¥ä¿®æ¹è¿æ»¤æ¡ä»¶ã
man udevéä¼æç»å¤§é¨åçå ³é®åçä¿¡æ¯ï¼æ³å ¨é¨çå°±åªè½å»æ¸æºç ï¼ã
æ¹æ³2:
éè¿å¨RUNæå®çèæ¬éä¼ éåæ°ï¼æ¥æ¾å°è®¾å¤åå¨åä¸åå¨çå±æ§å·®å¼ã
æ¯å¦ï¼
åèä¿¡æ¯ï¼
aï¼ãudev è§åçå¹é é®
ACTIONï¼ ãã ããããããäºä»¶ (uevent) çè¡ä¸ºï¼ä¾å¦ï¼add( æ·»å è®¾å¤ )ãremove( å é¤è®¾å¤ )ã
KERNELï¼ ãã ããããããå æ ¸è®¾å¤å称ï¼ä¾å¦ï¼sda, cdromã
DEVPATHï¼ããããããã 设å¤ç devpath è·¯å¾ã
SUBSYSTEMï¼ ãããããã 设å¤çåç³»ç»å称ï¼ä¾å¦ï¼sda çåç³»ç»ä¸º blockã
BUSï¼ ãããããããããã 设å¤å¨ devpath éçæ»çº¿å称ï¼ä¾å¦ï¼usbã
DRIVERï¼ ãããã ãããã 设å¤å¨ devpath éç设å¤é©±å¨å称ï¼ä¾å¦ï¼ide-cdromã
IDï¼ ããããããã ãããã设å¤å¨ devpath éçè¯å«å·ã
SYSFS{ filename}ï¼ ãããã设å¤ç devpath è·¯å¾ä¸ï¼è®¾å¤çå±æ§æ件âfilenameâéçå 容ã
ãããããããããããããããä¾å¦ï¼SYSFS{ model}==âSTSSâ表示ï¼å¦æ设å¤çåå·ä¸º STSSï¼å该设å¤å¹é 该 å¹é é®ã
ãããããããããããããããå¨ä¸æ¡è§åä¸ï¼å¯ä»¥è®¾å®æå¤äºæ¡ SYSFS ç å¹é é®ã
ENV{ key}ï¼ ãããããã ã ç¯å¢åéãå¨ä¸æ¡è§åä¸ï¼å¯ä»¥è®¾å®æå¤äºæ¡ç¯å¢åéç å¹é é®ã
PROGRAMï¼ããããããããè°ç¨å¤é¨å½ä»¤ã
RESULTï¼ ãããããããã å¤é¨å½ä»¤ PROGRAM çè¿åç»æã
bï¼ãudev çéè¦èµå¼é®
NAMEï¼ãããããããããããå¨ /devä¸äº§çç设å¤æ件åãåªæ第ä¸æ¬¡å¯¹æ个设å¤ç NAME çèµå¼è¡ä¸ºçæï¼ä¹åå¹é çè§åå对该设å¤ç NAME èµå¼è¡ä¸ºå°è¢«å¿½ç¥ãå¦æ没æä»»ä½è§å对设å¤ç NAME èµå¼ï¼udev å°ä½¿ç¨å æ ¸è®¾å¤å称æ¥äº§ç设å¤æ件ã
SYMLINKï¼ããããããããã 为 /dev/ä¸ç设å¤æ件产ç符å·é¾æ¥ãç±äº udev åªè½ä¸ºæ个设å¤äº§çä¸ä¸ªè®¾å¤æ件ï¼æ以为äºä¸è¦çç³»ç»é»è®¤ç udev è§åæ产ççæ件ï¼æ¨è使ç¨ç¬¦å·é¾æ¥ã
OWNER, GROUP, MODEï¼ãã为设å¤è®¾å®æéã
ENV{ key}ï¼ãããããããããå¯¼å ¥ä¸ä¸ªç¯å¢åéã
cï¼ãudev çå¼åå¯è°ç¨çæ¿æ¢æä½ç¬¦
Linux ç¨æ·å¯ä»¥éæå°å®å¶ udev è§åæ件çå¼ãä¾å¦ï¼my_root_disk, my_printerãåæ¶ä¹å¯ä»¥å¼ç¨ä¸é¢çæ¿æ¢æä½ç¬¦ï¼
$kernel, %kï¼ãããããããã设å¤çå æ ¸è®¾å¤å称ï¼ä¾å¦ï¼sdaãcdromã
$number, %nï¼ããããããã 设å¤çå æ ¸å·ç ï¼ä¾å¦ï¼sda3 çå æ ¸å·ç æ¯ 3ã
$devpath, %pï¼ããããããã设å¤ç devpathè·¯å¾ã
$id, %bï¼ãããããããããã设å¤å¨ devpathéç ID å·ã
$sysfs{ file}, %s{ file}ï¼ãã 设å¤ç sysfsé file çå 容ãå ¶å®å°±æ¯è®¾å¤çå±æ§å¼ã
$env{ key}, %E{ key}ï¼ãããä¸ä¸ªç¯å¢åéçå¼ã
$major, %Mï¼ãããããããã设å¤ç major å·ã
$minor %mï¼ãããããããã设å¤ç minor å·ã
$result, %cï¼ããããããããPROGRAM è¿åçç»æã
$parent, %Pï¼ãããããã ç¶è®¾å¤ç设å¤æ件åã
$root, %rï¼ãããããããã udev_rootçå¼ï¼é»è®¤æ¯ /dev/ã
$tempnode, %Nï¼ãããããã临æ¶è®¾å¤åã
%%ï¼ããããããããããããç¬¦å· % æ¬èº«ã
$$ï¼ãããããããããããããç¬¦å· $ æ¬èº«ã
对æ¯ä¸ä¸åmanéçå·®å«ï¼$sysfs{ file}ï¼è¿ä¸ªå¨å®é 解å³é®é¢çæ¶åæ¯å¾æç¨çã
è¿ç§æ¹æ³éåè°è¯ç³»ç»å¯å¨çæ¶å对rulesçè°è¯ï¼è¿ä¸ªè¿ç¨ä¸æ¯æ²¡å¾udevadmin monitor使ç¨çãï¼å½ç¶ï¼å¯ä»¥å°è¯èªå·±åä¸ä¸ªsystemdå¯å¨æå¡ï¼è¿å°±æ¶åå°å¯å¨çæ¶æºãå ³èãå½±åï¼å®é æä½ä¼æ¯é¢æ³çå¤æï¼
è¿éæ两个ç¹ï¼
1. env - å¯ä»¥æ¯udeväºä»¶éçå±æ§ï¼-pæå°çï¼
2. $sysfs{ file}, è¿éçfileå°±æ¯å¨ç³»ç»/sysç®å½ä¸å¯¹åºçèç¹ä¸çæ件ï¼æäºæ åµä¸åªè½å¨sysfsçfileçå åæè½åç¡®åºåäºä»¶ã
STM 进阶教程 1 - micropython 移植
在STMFZET6开发板上移植Micropython,为单片机和嵌入式程序开发引入Python的优点。
MicroPython是Python 3的精简高效实现,包含标准库的网页源码在线查一部分,可在微控制器和受限环境中运行。它具备Python的高级特性,如交互式提示符、任意精度整数、闭包、列表解析、生成器和异常处理等,音乐狂源码同时体积紧凑,可在k代码空间和k RAM中运行。
移植Micropython至STMFZET6开发板,让我们以正点原子的stmf4探索者开发板为例,使用JFLAH、rhino 源码解读PUTTY和ST_DFU工具进行硬件配置。ST_DFU工具可从document/d...>获取。
安装所需的工具,如Git、gcc和gcc-arm-none-eabi交叉编译器,负数有源码并在Ubuntu系统中下载Micropython源码。在ports/stm/boards目录下找到支持的处理器或开发板型号,如STMF4DISC,然后将其复制并重命名为MYBOARD。在micropython目录下进入mpy-cross目录,PaperWork php源码先编译MicroPython cross-compiler,随后编译Micropython。生成的固件以DFU或HEX形式适用于烧录。
使用jlink工具直接烧录firmware.hex文件至开发板。如需使用DFU,参考相关教程。程序烧录与运行后,在电脑资源管理器中应能看到USB串行设备或新盘符。通过PUTTY连接开发板,执行命令验证Micropython功能,如加减乘除运算、IO口操作、随机数生成等。
实现Micropython移植教程至此完成。如需深入了解Micropython,可访问en...>。对移植过程感兴趣或有实际应用案例的同学,可继续研究和实践。针对所用开发板,仍有未完全支持的功能,如不支持特定GPIO口的操作、LED控制端口不匹配或UART1使用受限。下一节将介绍解决这些具体问题的方法。