node_id.c

来自「MANTIS是由科罗拉多大学开发的传感器网络嵌入式操作系统。 这是mantis」· C语言 代码 · 共 77 行

C
77
字号
//  This file is part of MANTIS OS, Operating System//  See http://mantis.cs.colorado.edu/////  Copyright (C) 2003,2004,2005 University of Colorado, Boulder////  This program is free software; you can redistribute it and/or//  modify it under the terms of the mos license (see file LICENSE)/**************************************************************************//* File:    node_id.c                                                     *//* Author      Charles Gruenwald III   :  gruenwal@colorado.edu           *//*   Date:  04/14/2004                                                    *//*                                                                        *//* Description: this uses the eeprom to get and set the node id.          *//**************************************************************************/#include "mos.h"#include "dev.h"#include "avr-eeprom.h"#ifdef ARCH_MSP430#include "telos-flash.h"#endifstatic uint16_t global_node_id = -1;void mos_node_id_init(void){#ifdef ARCH_AVR   dev_open(DEV_AVR_EEPROM);   dev_ioctl(DEV_AVR_EEPROM, DEV_SEEK, 0);   dev_read(DEV_AVR_EEPROM, (uint8_t *)&global_node_id, sizeof(global_node_id));   dev_close(DEV_AVR_EEPROM);#elif defined(ARCH_MSP430)      dev_open(DEV_TELOS_FLASH);   dev_ioctl(DEV_TELOS_FLASH, DEV_SEEK, (uint32_t)0);   dev_read(DEV_TELOS_FLASH, (uint8_t *)&global_node_id, sizeof(global_node_id));   dev_close(DEV_TELOS_FLASH);   #else   global_node_id = -1;#endif }uint16_t mos_node_id_get(void){   return global_node_id;}void mos_node_id_set (uint16_t new_node_id){   #ifdef ARCH_AVR   dev_open(DEV_AVR_EEPROM);   dev_ioctl(DEV_AVR_EEPROM, DEV_SEEK, 0);   dev_write(DEV_AVR_EEPROM, (uint8_t *)&new_node_id, sizeof(new_node_id));   dev_close(DEV_AVR_EEPROM);#elif defined(ARCH_MSP430)   dev_open(DEV_TELOS_FLASH);   dev_mode(DEV_TELOS_FLASH, DEV_MODE_ON);      dev_ioctl(DEV_TELOS_FLASH, TELOS_FLASH_SECT_ERASE, (uint32_t)0);   dev_ioctl(DEV_TELOS_FLASH, DEV_SEEK, (uint32_t)0);   dev_write(DEV_TELOS_FLASH, (uint8_t *)&new_node_id, sizeof(new_node_id));   dev_close(DEV_TELOS_FLASH);   dev_mode(DEV_TELOS_FLASH, DEV_MODE_OFF);   #endif   global_node_id = new_node_id;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?