コード例 #1
0
ファイル: main.c プロジェクト: ESS-Group/WSim
int main(void) 
{
  int i;

  WDTCTL = WDTPW + WDTHOLD;

  P1IE   = 0x00;        // Interrupt enable
  P2IE   = 0x00;        // 0:disable 1:enable

  LEDS_INIT();
  LEDS_ON();
  delay(DELAY);
  LEDS_OFF();

  led_state = 0;

  while (1) 
    {                         
      for (i=0; i<99; i++)
	{
	  led_change();
	  delay(DELAY >> 2);
	}
    }
}
コード例 #2
0
ファイル: main.c プロジェクト: hunt978/vatdma
int main(void) 
{
    int i;

    set_mcu_speed_xt2_mclk_8MHz_smclk_1MHz();

    uart0_init(UART0_CONFIG_1MHZ_115200);

    LEDS_INIT();
    LEDS_ON();
    delay(DELAY);
    LEDS_OFF();

    led_state = 0;

    while (1) 
    {
        for (i=0; i<99; i++)
        {
            printf("Salam Aleikoum\n");
            uart0_getchar_polling();
            led_change();
        }
    }
}
コード例 #3
0
int ipmi_cmd_chassis(struct ipmi_ctx *ctx_cmd)
{
    DEBUG("ipmi_cmd_chassis\r\n");

    switch (ctx_cmd->req.msg.cmd)
    {
        /* Chassis Device Commands ******************************************/
        case CHASSIS_GET_CAPABILITIES:                      /* 0x00 */
            {
                struct ipmi_chassis_capabilities_rsp *capa_rsp;

                capa_rsp = (struct ipmi_chassis_capabilities_rsp*)&ctx_cmd->rsp.data[0];
                capa_rsp->capabilities_flag = 0;
                capa_rsp->chassis_fru_dev_addr = I2C_i2c0_ipmb_self_addr_get();
                capa_rsp->sdr_dev_addr = AT24CXX_SLAVE_ADDR;
                capa_rsp->sel_dev_addr = AT24CXX_SLAVE_ADDR;
                capa_rsp->sys_dev_addr = 0;
                capa_rsp->bridge_dev_addr = 0;

                ipmi_cmd_ok(ctx_cmd, sizeof(struct ipmi_chassis_capabilities_rsp));
            }
            break;

        case CHASSIS_GET_STATUS:                            /* 0x01 */
            {
                struct ipmi_chassis_status_rsp *status_rsp;

                status_rsp = (struct ipmi_chassis_status_rsp*)&ctx_cmd->rsp.data[0];

                ctx_cmd->rsp.msg.data_len = sizeof(struct ipmi_chassis_status_rsp);
                ctx_cmd->rsp.msg.ccode = IPMI_CC_OK;

                status_rsp->pow_restore_policy =  chassis_power_restore_policy;
                status_rsp->cur_pow_state   = chassis_power_state;
                status_rsp->last_pow_env    = chassis_last_power_event;
                status_rsp->chassis_state   = chassis_state;
                status_rsp->front_p_button_status   = 0;

                ipmi_cmd_ok(ctx_cmd, sizeof(struct ipmi_chassis_status_rsp));
            }
            break;

        case CHASSIS_CONTROL:                               /* 0x02 */
            {
                char reqcmd = ctx_cmd->req.data[0];
                switch (reqcmd & 0x0f)
                {
                    case IPMI_CHASSIS_CTL_POWER_DOWN:
                        //ctx_cmd->flags |= IPMI_CTX_NO_RESPONSE;
                        ipmi_common_power_onoff(0);
                        chassis_power_state_set(IPMI_CHASSIS_POW_STATE_POW_OFF);    // FIXME:从芯片读取电源状态
                        chassis_last_power_event_set(IPMI_CHASSIS_EVN_ON_CMD);
                        ipmi_cmd_ok(ctx_cmd, 0);
                        break;

                    case IPMI_CHASSIS_CTL_POWER_UP:
                        ipmi_common_power_onoff(1);
                        chassis_power_state_set(IPMI_CHASSIS_POW_STATE_POW_ON);     // FIXME:从芯片读取电源状态
                        chassis_last_power_event_set(IPMI_CHASSIS_EVN_ON_CMD);
                        ipmi_cmd_ok(ctx_cmd, 0);
                        break;

                    case IPMI_CHASSIS_CTL_POWER_CYCLE:
                    case IPMI_CHASSIS_CTL_HARD_RESET:
                    case IPMI_CHASSIS_CTL_PULSE_DIAG:
                    case IPMI_CHASSIS_CTL_ACPI_SOFT:
                    default:
                        ipmi_cmd_invalid(ctx_cmd);
                        break;
                }
            }
            break;

        case CHASSIS_IDENTIFY:                              /* 0x04 */
            {
                switch (ctx_cmd->req_len)
                {
                    case 0:
                        led_change(IPMI_LED_IDENTIFY);
                        break;
                    case 1:
                        led_change(ctx_cmd->req.data[0]);
                        break;
                    case 2:
                        led_change(IPMI_LED_ON);
                        break;
                    default:
                        ipmi_cmd_err(ctx_cmd, IPMI_CC_REQ_DATA_INV_LENGTH);
                        return 0;
                }
                ipmi_cmd_ok(ctx_cmd, 0);
            }
            break;

        case CHASSIS_GET_POH_COUNTER:                       /* 0x0f */
            {
                uint32_t poh;

                ipmi_common_get_poh(&poh);

                poh /= 60;
                ctx_cmd->rsp.data[0] = 1;
                ctx_cmd->rsp.data[1] = poh & 0x000000ff;
                ctx_cmd->rsp.data[2] = (poh & 0x0000ff00) >> 8;
                ctx_cmd->rsp.data[3] = (poh & 0x00ff0000) >> 16;
                ctx_cmd->rsp.data[4] = (poh & 0xff000000) >> 24;

                ipmi_cmd_ok(ctx_cmd, 5);
            }
            break;

        case CHASSIS_RESET:                                 /* 0x03 */
        case CHASSIS_SET_CAPABILITIES:                      /* 0x05 */
        case CHASSIS_SET_POW_RESTORE_POLICY:                /* 0x06 */
        case CHASSIS_GET_RESTART_CAUSE:                     /* 0x07 */
        case CHASSIS_SET_SYS_BOOT_OPT:                      /* 0x08 */
        case CHASSIS_GET_SYS_BOOT_OPT:                      /* 0x09 */
        case CHASSIS_SET_FP_BUTTON_ENABLE:                  /* 0x0a */
        case CHASSIS_SET_POW_CYCLE_INTERVAL:                /* 0x0b */
        default:
            // response C1h for no support cmd
            ipmi_cmd_invalid(ctx_cmd);
            break;
    }

    return 0;
}