====== Embedded ====== * [[https://www.withdiode.com/|Diode]],这个网站可以模拟面包板的电路实验,可视化放置各种电子元件,查看模拟效果。 ===== IAR Embedded Workbench ===== 嵌入式 C 编译器 , IDE * Official site: [[https://www.iar.com/iar-embedded-workbench/]] ===== J-Link ===== jlink仿真器 * Official site: [[https://www.segger.com/jlink-debug-probes.html]] * 如果 IAR 烧入不成功, 可用 J-Flash ARM程序来烧入, 烧完记的 Start application ===== ChibiOS ===== * Official site: [[http://www.chibios.org]] * Github repo: [[https://github.com/mabl/ChibiOS]] ===== Intel HEX ===== * [[http://lionwq.spaces.eepw.com.cn/articles/article/item/16811#|HEX文件和BIN文件格式的区别]] * [[wp>intel_hex]] ===== Linux 设备树 ===== * [[https://elinux.org/Device_Tree_Usage|Device Tree Usage]] * 标准: 老的 [[https://elinux.org/images/c/cf/Power_ePAPR_APPROVED_v1.1.pdf|ePAPR v1.1]] -> 新的[[https://www.devicetree.org/specifications/|The Devicetree Specification]] * node 命名规则:section 2.2.2 of the ePAPR * **compatible** 属性标示对应的驱动, 格式 ''compatibel=",",","'', 头一个表精确匹配,后续表兼容 * **reg** 属性,格式 ''reg = '' * 设备树设置基本与驱动紧密关联,可查看对应文档来看怎么写,比如 [[https://elixir.bootlin.com/linux/v5.4.132/source/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt|pinctrl]], 然后,比如 pinctrl 里的 group 还得查看对应硬件驱动的说明文档 ===== Yocto ===== * [[https://www.yoctoproject.org/|yoctoproject.org]]: 嵌入式定制linux ===== Linux GPIO ===== * Linux用户层的GPIO 操作标准接口,参考[[https://elixir.bootlin.com/linux/v4.20.17/source/Documentation/gpio/sysfs.txt|Documentation/gpio/sysfs.txt]] * 控制接口: /sys/class/gpio/export #用户空间可以通过写入gpio号申请将gpio的控制权导出到用户空间,比如 echo 42 > export /sys/class/gpio/unexport # 和export相反 /sys/class/gpio/gpiochip0 # gpio控制器 * 调用接口:使用export导出gpio的控制权以后会有路径/sys/class/gpio/gpio42/,路径下有如下属性: * **direction**:表示GPIO端口方向,读取为”in”或”out”,写入”in”或者”out”可以设置输入或输出 * **value**:表示GPIO的电平,0为低电平,1为高电平,如果GPIO配置为输出,则value值可写 * **edge**:表示中断触发方式,有”none” “rising” “falling” “both” 4种类型, * none: 表示GPIO不为中断引脚, * rising: 表示引脚为上升沿触发的中断, * falling: 表示引脚为下降沿触发的中断, * both: 表示引脚为边沿触发的中断