1.BACnet Stack
2.å¦ä½å¼ååµå
¥å¼ç³»ç» arm7 at91sam7x
3.迅雷赚钱宝一代(WS1408)固件探究报告——OpenWrt, Armbian
4.at91sam9261 linux_at91sam9g45_at91sam9260资料
5.SBC6020SBC6020简介
BACnet Stack
BACnet 协议栈提供开源库,用于实现 BACnet 应用层、网络层和媒体访问层的通信服务。适用于嵌入式系统、Windows、Linux 及其他操作系统,直销平台系统源码包含 BACnet 客户机和服务器示例应用程序。BACnet 是楼宇自动化与控制网络的标准数据通信协议,基于开放原则,允许贡献与使用。
BACnet 协议定义了在多种连线中通信的标准方式,包括以太网、EIA-、EIA-、ARCNET 和 LonTalk。同时支持通过 UDP、IP 和 HTTP 进行通信。此项目提供商业 BACnet 协议源代码库,使用 GPL with exception 许可,允许内嵌核心代码的macd kdj 叠加源码更改分发,同时允许与专有代码链接而不受 GPL 影响。源码使用 C 语言编写,高度可移植,包含单元测试和示例应用程序代码,兼容 GCC、Borland C++、Visual C++、MinGW、Code Warrior、IAR 或 MicroChip C 等编译器。
BACnet 协议栈遵循 ASHRAE/ANSI/ISO 标准,无版税或许可限制,注册 BACnet 供应商 ID 免费。库包含单元测试和功能测试,如 VTS(Visual Test Shell),以及支持各种 BACnet 控制器、工作站和路由器的测试。
项目包含 BACnet 示例应用程序,可在 Linux、app导航源码下载Win、RTOS- 和嵌入式微控制器下运行。源码提供基于 PC 的单元测试和示例应用程序代码,移植到不同架构(如 RTOS-、Picf、Atsam7s、Atmega、Bdk-atxx4-mstp、Stmfx 等)时,需要相应的开发工具包。
通过 Subversion 版本控制系统可获取最新源码。主开发分支包含最新代码和功能,适用于在 BACnet 协议栈上进行开发的项目。稳定版本发布与 SourceForge 下载版本相匹配,用于项目开发时选择合适的标记分支和版本。项目文档、常见问题答案及更多信息可查阅 BACnet Source Forge 项目页面。
参与项目的开发者可加入邮件列表,分享开发经验或寻求帮助。linux c 程序源码使用此协议栈开发产品的团队应将成果告知项目团队,以获得认可。项目提供了文档、常见问题解答、源码、稳定分支下载及开发者资源等。
此 BACnet 协议栈不仅支持标准配置文件如智能传感器、智能执行器或应用特定控制器的开发,还提供了移植到不同架构的示例和资源,满足开发人员在不同环境下的需求。通过参与邮件列表和访问源Forge页面,开发者可以获取更多项目细节和社区支持。
å¦ä½å¼ååµå ¥å¼ç³»ç» arm7 atsam7x
åµå ¥å¼ç³»ç»å¼åå°±æ¯å¯¹äºé¤äºçµèä¹å¤çææçµå设å¤ä¸æä½ç³»ç»çå¼åï¼å¼å对象æææºï¼æä¸çµèï¼æºçµç³»ç»çã
åµå ¥å¼ç³»ç»å¼åæµç¨ï¼
第ä¸æ¥ï¼å»ºç«å¼åç¯å¢
æä½ç³»ç»ä¸è¬ä½¿ç¨Redhat Linuxï¼éæ©å®å¶å®è£ æå ¨é¨å®è£ ï¼éè¿ç½ç»ä¸è½½ç¸åºçGCC交åç¼è¯å¨è¿è¡å®è£ (æ¯å¦ï¼arm-linux-gccãarm-uclibc-gcc)ï¼æè å®è£ 产åå家æä¾çç¸å ³äº¤åç¼è¯å¨ï¼
第äºæ¥ï¼é ç½®å¼å主æº
é ç½®MINICOMï¼ä¸è¬çåæ°ä¸ºæ³¢ç¹ç Baud/sï¼æ°æ®ä½8ä½ï¼åæ¢ä½ä¸º1ï¼9ï¼æ å¥å¶æ ¡éªï¼è½¯ä»¶ç¡¬ä»¶æµæ§è®¾ä¸ºæ ãå¨Windowsä¸çè¶ çº§ç»ç«¯çé ç½®ä¹æ¯è¿æ ·ãMINICOM软件çä½ç¨æ¯ä½ä¸ºè°è¯åµå ¥å¼å¼åæ¿çä¿¡æ¯è¾åºççè§å¨åé®çè¾å ¥çå·¥å ·ãé ç½®ç½ç»ä¸»è¦æ¯é ç½®NFSç½ç»æ件系ç»ï¼éè¦å ³éé²ç«å¢ï¼ç®ååµå ¥å¼ç½ç»è°è¯ç¯å¢è®¾ç½®è¿ç¨ã
第ä¸æ¥ï¼å»ºç«å¼å¯¼è£ è½½ç¨åºBOOTLOADER
ä»ç½ç»ä¸ä¸è½½ä¸äºå ¬å¼æºä»£ç çBOOTLOADERï¼å¦Uï¼BOOTãBLOBãVIVIãLILOãARM-BOOTãRED-BOOTçï¼æ ¹æ®å ·ä½è¯çè¿è¡ç§»æ¤ä¿®æ¹ãæäºè¯ç没æå ç½®å¼å¯¼è£ è½½ç¨åºï¼æ¯å¦ï¼ä¸æçARVãARM9ç³»åè¯çï¼è¿æ ·å°±éè¦ç¼åå¼åæ¿ä¸FLASHçç§åç¨åºï¼å¯ä»¥å¨ç½ä¸ä¸è½½ç¸åºçç§åç¨åºï¼ä¹æLinuxä¸çå ¬å¼æºä»£ç çJ-FLASHç¨åºãå¦æä¸è½ç§åèªå·±çå¼åæ¿ï¼å°±éè¦æ ¹æ®èªå·±çå ·ä½çµè·¯è¿è¡æºä»£ç ä¿®æ¹ãè¿æ¯è®©ç³»ç»å¯ä»¥æ£å¸¸è¿è¡ç第ä¸æ¥ãå¦æç¨æ·è´ä¹°äºå家ç仿çå¨æ¯è¾å®¹æç§åFLASHï¼è½ç¶æ æ³äºè§£å ¶ä¸çæ ¸å¿ææ¯ï¼ä½å¯¹äºéè¦è¿ éå¼åèªå·±çåºç¨ç人æ¥è¯´å¯ä»¥æ大æé«å¼åé度ã
第åæ¥ï¼ä¸è½½å·²ç»ç§»æ¤å¥½çLinuxæä½ç³»ç»
å¦MCLiunxãARM-LinuxãPPC-Linuxçï¼å¦ææä¸é¨é对æ使ç¨çCPU移æ¤å¥½çLinuxæä½ç³»ç»é£æ¯å好ä¸è¿ï¼ä¸è½½ååæ·»å ç¹å®ç¡¬ä»¶ç驱å¨ç¨åºï¼ç¶åè¿è¡è°è¯ä¿®æ¹ï¼å¯¹äºå¸¦MMUçCPUå¯ä»¥ä½¿ç¨æ¨¡åæ¹å¼è°è¯é©±å¨ï¼è对äºMCLiunxè¿æ ·çç³»ç»åªè½ç¼è¯å æ ¸è¿è¡è°è¯ã
第äºæ¥ï¼å»ºç«æ ¹æ件系ç»
ä¸è½½ä½¿ç¨BUSYBOX软件è¿è¡åè½è£åï¼äº§çä¸ä¸ªæåºæ¬çæ ¹æ件系ç»ï¼åæ ¹æ®èªå·±çåºç¨éè¦æ·»å å ¶ä»çç¨åºãç±äºé»è®¤çå¯å¨èæ¬ä¸è¬é½ä¸ä¼ç¬¦ååºç¨çéè¦ï¼æ以就è¦ä¿®æ¹æ ¹æ件系ç»ä¸çå¯å¨èæ¬ï¼å®çåæ¾ä½ç½®ä½äº/etcç®å½ä¸ï¼å æ¬ï¼/etc/init.d/rc.Sã/etc/profileã/etc/.profileçï¼èªå¨æè£ æ件系ç»çé ç½®æ件/etc/fstabï¼å ·ä½æ åµä¼éç³»ç»ä¸åèä¸åãæ ¹æ件系ç»å¨åµå ¥å¼ç³»ç»ä¸ä¸è¬è®¾ä¸ºåªè¯»ï¼éè¦ä½¿ç¨mkcramfs genromfsçå·¥å ·äº§çç§åæ åæ件ã
第å æ¥ï¼å»ºç«åºç¨ç¨åºçFLASHç£çååº
ä¸è¬ä½¿ç¨JFFS2æYAFFSæ件系ç»ï¼è¿éè¦å¨å æ ¸ä¸æä¾è¿äºæ件系ç»ç驱å¨ï¼æçç³»ç»ä½¿ç¨ä¸ä¸ªçº¿æ§FLASH(NORå)KBï½MBï¼æçç³»ç»ä½¿ç¨é线æ§FLASH(NANDå)8MBï½MBï¼æç两个åæ¶ä½¿ç¨ï¼éè¦æ ¹æ®åºç¨è§åFLASHçååºæ¹æ¡ã
第ä¸æ¥ï¼å¼ååºç¨ç¨åº
å¯ä»¥æ¾å ¥æ ¹æ件系ç»ä¸ï¼ä¹å¯ä»¥æ¾å ¥YAFFSãJFFS2æ件系ç»ä¸ï¼æçåºç¨ä¸ä½¿ç¨æ ¹æ件系ç»ï¼ç´æ¥å°åºç¨ç¨åºåå æ ¸è®¾è®¡å¨ä¸èµ·ï¼è¿æç¹ç±»ä¼¼äºÎ¼C/OS-IIçæ¹å¼ã
ç¬¬å «æ¥ï¼ç§åå æ ¸
æ ¹æ件系ç»ååºç¨ç¨åºï¼åå¸äº§åã
迅雷赚钱宝一代(WS)固件探究报告——OpenWrt, Armbian
欢迎来到深入探究迅雷赚钱宝一代WS固件的奇妙世界,让我们一起探索OpenWrt和Armbian的可能性。这款设备凭借其AMLogic S处理器、MB RAM和1GB NAND存储,为那些寻求性能与功能兼具的小型Linux主机或单臂路由提供了独特的平台。虽然官方固件并未提供线刷选项,但我们可以通过热心网友分享的linux挖矿源码资源来实现这一目标。 首先,让我们从关键步骤开始:使用dybjxx提供的赚钱宝线刷包,这款包是基于thunder-miner-rom_.img和miner_rom_V1.3..img两个固件精心编译的。通过分析工具,我们发现miner_rom_V1.3..img包含Linux内核和配置文件,这为后续的系统定制打开了大门。固件结构揭秘:
bootloader引导U-Boot,负责启动过程的初始化。
boot分区包含Android bootimg和initramfs,后者储存明文信息,引导时挂载upgrade分区。
upgrade分区则用于存放赚钱宝服务程序,ubifs文件系统确保数据存储和访问。
为了深入学习固件,推荐使用开源工具,如linux-amlogic-toolkit分支,如natinusala/fork、Eliminater/fork和syvaidya/fork,它们针对不同分区提供了更为全面的支持。特别是升级分区的处理,需要nandsim和ubi_reader工具,后者提供了诸如ubireader_extract_files等实用脚本。 对于OpenWrt移植,我们可以替换根文件系统以实现固件的个性化定制。例如,针对Cortex-A5架构,可以将OpenWrt目标调整为at/sama5。同时,理解ubifs参数,根据闪存型号SMLGTF调整mkfs命令,以适应WS的硬件特性。 在实际操作中,从Windows WSL2环境中开始,利用linux-amlogic-toolkit和USB Burning Tool,我们进行如下步骤:在WSL2环境中安装依赖,构建ubireader,并创建一个测试目录。
克隆OpenWrt源码,解包并进行必要的配置更改,如更换opkg源和移植kmod模块。
用root权限制作ubifs镜像,并将其与upgrade分区合并。
替换UBoot和Kernel,确保与设备兼容。
最终将定制的镜像烧录到WS上,重启设备,连接到路由器,体验新定制的系统。
虽然这些过程可能相对复杂,但收获的灵活性和可能性是值得投入的。值得注意的是,官方源码已关闭,但可以通过archive站点或not-aml等社区资源寻找替代途径。同时,针对WS这样内存有限的设备,DTB(Device Tree Blob)的使用是优化性能的重要策略。 最后,这里分享一些相关教程供参考:如icebee的WS直刷教程,tinylion N1更换dtb方法,以及suixin的玩客云S Armbian适配指南。但请记住,这些教程可能针对其他型号设备,所以在使用时请务必谨慎评估。 总之,迅雷赚钱宝WS固件的OpenWrt和Armbian之旅充满了挑战与乐趣,适合那些对嵌入式开发充满热情的探索者。祝你在定制旅程中收获满满!atsam linux_atsam9g_atsam资料
ATSAM和ATMEL其它型号的ARM处理器使用高度相似的USART外设,因而驱动程序也具有高度的相似性,而且USART硬件支持模式,用RTS信号作为的收发控制。在使用中,只要将其置为模式,其余的操作和普通的操作一模一样,RTS的翻转是自动的。
我的板子上使用USART0扩展了一个接口,而Linux原有串口驱动只支持普通的模式,为了在Linux下方便地使用接口,需要对原来的驱动程序稍加改动。
有关的文件
arch/arm/mach-at/目录下:
atsam_devices.c中的相关函数(不用改):
at_add_device_serial()
并在此文件中确认相关的引脚已被正确配置,在这里关心的是USART0的TXD,RXD和RTS引脚
static inline void configure_usart0_pins(void)
{
at_set_A_periph(AT_PIN_PC8, 1); /* TXD0 */
at_set_A_periph(AT_PIN_PC9, 0); /* RXD0 */
at_set_A_periph(AT_PIN_PC, 0); /* RTS0 */
at_set_A_periph(AT_PIN_PC, 0); /* CTS0 */
}
这是另一个相关的文件,也不用改
board-samek.c
include/asm-arm/arch-at/目录下
gpio.h中有相关引脚和at_set_A_periph的原形声明
extern int __init_or_module at_set_GPIO_periph(unsigned pin, int use_pullup);
extern int __init_or_module at_set_A_periph(unsigned pin, int use_pullup);
extern int __init_or_module at_set_B_periph(unsigned pin, int use_pullup);
extern int __init_or_module at_set_gpio_input(unsigned pin, int use_pullup);
extern int __init_or_module at_set_gpio_output(unsigned pin, int value);
extern int __init_or_module at_set_deglitch(unsigned pin, int is_on);
extern int __init_or_module at_set_multi_drive(unsigned pin, int is_on);
接下来需要确定在哪里修改USART0的配置。atsam linuxatsam linux在芯片手册中,可以找到相关的寄存器名,以此为关键字搜索源码树。
在Linux源码树下搜索:
grep -r US_MR ./
找到:drivers/serial/atmel_serial.c
其中有对串口的初始化代码,在文件中查找UART_PUT_MR,找到atmel_set_termios()函数
该函数是用户程序设置串口参数时必须调用的
在其中判断;当操作USART0时,设置为模式:
if(ATSAM_BASE_US0 == (port)->membase){ // in include/asm-arm/arch-at/atsam.h
SBCSBC简介
SBC是一款专为工业环境设计的嵌入式单板计算机,它由Atmel公司的工业级处理器ATSAM9G驱动,适用于工业现场控制终端、智能仪表仪器、网络终端以及车载电子等领域。这款单板计算机以其坚固的工业物理结构和多样化的工业总线接口为特色,可在严苛的温度范围(-℃至℃)内稳定运行,充分满足工业应用的苛刻需求,完全符合工业应用的标准。
SBC预装了Linux2.6.操作系统,这为用户提供了强大的基础环境。板载的所有外设驱动程序和源代码都已经预先安装,这使得开发者能够轻松利用提供的Linux工具链进行定制开发,大大缩短了产品上市的时间,提高了效率。