Quantcast
Channel: TaterLi 个人博客
Viewing all 541 articles
Browse latest View live

电子纸刷”亮”记录

$
0
0
电子纸没有背光哪里刷亮说法,哈哈哈. 首先确定电子纸型号,然后我通过4线SPI访问.主控是IL3895. 实际通信所需要连接的:RST,BUSY,CS,DC,MOSI,SCLK. 注意的是,RST不能为了节省连接到MCU的复位端,因为电子纸的复位时间比较长,不能这么用.流程是这样的.
  1. RST 电子纸(RST = 0 + DELAY + RST = 1 + DELAY)
  2. 进屏幕初始化
    1. 写入各寄存器初值(跟普通TFT差不多,DC控制各种.)
    2. 写入LUT表(这是难度,刷屏的参数控制器是通过查表确认的,是局刷模式还是全刷模式,靠LUT决定.切换LUT一定触发屏幕RST.原理导致的.)
    3. 写入上电寄存器(和TFT的SLEEP OUT差不多)
  3. 刷入显示
    1. 设置屏幕内存指针(无论局刷还是全刷都要,推荐有事没事来全刷,局刷麻烦多了.)
    2. 把内存发过去,发送逻辑额外处理.(比如像TFT的LCD_Clear和LCD_Fill一样分开,电子纸并没DrawPoint能力.)
    3. 发送刷新屏幕指令
就是这么用的,因为电子纸他没有DrawPoint能力,所以,有两个办法,一是改变Buffer作为DrawPoint,类似OLED刷新方法,每次都刷新全屏.另一种是读取RWW写入,但是我这个不支持.


教你做CMSIS-DAP仿真器(基于Nucleo-F767ZI)

$
0
0
为什么选这个板子,因为我就这个高性能.哈哈. 新建Keil工程把我所列的组件都选上.

首先我们用的FULL SPEED模式.

修改USB_Config_0.c配置,这里名字记得改,他识别名字和VID PID.一定要带CMSIS-DAP字的.

再把具体USB_Config_HID_0.h修改.

我们这次是FullSpeed,先试试延迟16ms的版本.(默认值),接着把堆栈改大. 修改操作系统的参数.

在组右键通过模板增加一个文件,测试一下配置.

因为是HSI,注意修改一下main中的配置. 这时候编译应该就不会出什么错误.

设置一下让他ST-Link下载.

进入调试查看时钟对不对.时钟配置后下断点观察.

找到CMSIS-DAP源码.我的地址是[C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.0.1\CMSIS\DAP\Firmware]

把配置文件搞过来.

同样如此.

然后搞这两个过来,Main不要覆盖.

把源码挪过来.

里面这个文件不要.

把刚才添加的一些东西加到Keil里面. 在main.c中增加include.

#include "osObjects.h"
#include "rl_usb.h"
#include "DAP_config.h"
#include "DAP.h"
RTOS调度相关函数删掉.添加我们的DAP数据.

  DAP_Setup();                          // DAP Setup
  Delayms(100U);                        // Wait for 100ms
  USBD_Initialize(0U);                  // USB Device Initialization
  USBD_Connect(0U);                     // USB Device Connect
  while (!USBD_Configured(0U));         // Wait for USB Device to configure
把这个文件的只读去掉.(在资源管理器)

然后把device.h改成stm32f7xx.h

CPU_CLOCK填真实系统时钟.

暂时不要SWO功能. 添加INCLUDE,自身项目目录和RTE目录.

这时候编译,应该会出错的.通过错误快速引导到需配置的地方.

一般情况已经可以了,如果还不可以,请加装HSE晶振.

但是这个时候不能仿真啊,不能不能啊.因为我们PIN脚都还没定义呢.由于硬件限制和偷懒,先只实现一个SWD吧,另外SWD有双向引脚,正常来说呢,不应该一个IO搞定的.但是速度无所谓党表示算了.把函数按照最后的改装表改装,如果SWDIO是不是很难控制?外部电路当然容易,当然也可以采用不断切换输入输出模式.就像我这样,但是缺点是最慢速度才能满足他检测所需时间了.

  全部IO改好后,调到最低速度,连接了一个STM32F103,检测成功,仿真肯定也是可以的,只是慢得...

具体每个函数解释如下.

未来设想,做个带屏幕的调试器?

STM32 ADC三重采样的坑

$
0
0
三重采样很简单,就是三个ADC叠加成更高速度,但是不是所有通道都支持三重采样.如图,只有写着ADC123_INx的才可以.

当初改掉原来官方的ADC1 + ADC2接PA4结果什么用都没,真是麻烦.另外只能按照WORD传输.进入DMA中断后要赶紧处理数据.取出高16和低16位.这个三重下,顺序是比较复杂(其实也就是先来后到),不过实际上不用管,当做只有一个ADC在工作就好了.
        aADCxMultimodeDualMasterConvertedData[tmp_index] = (uint16_t) __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(LL_ADC_MULTI_MASTER, aADCxADCyMultimodeDualConvertedData[tmp_index]);
        aADCyMultimodeDualSlaveConvertedData[tmp_index]  = (uint16_t) __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(LL_ADC_MULTI_SLAVE, aADCxADCyMultimodeDualConvertedData[tmp_index]);
得到数据该怎么处理就怎么处理,这么快速度,串口是发不走的了,因为串口至少得144000000bps,不太可能,看看怎么送出去了,这数据.或者处理.
/**
  ******************************************************************************
  * @file    Examples_LL/ADC/ADC_MultimodeDualInterleaved/Src/main.c
  * @author  MCD Application Team
  * @version V1.0.0
  * @date    30-December-2016
  * @brief   This example describes how to use several ADC peripherals in
  *          multimode, mode interleaved.
  *          ADC master instance synchronizes and manages ADC slave instance.
  *          Multimode interleaved combines ADC instances to convert
  *          the same channel and increase the overall ADC conversion rate.
  *          This example configures the ADC to perform conversions at the
  *          maximum ADC conversion rate possible (with a sampling time
  *          corresponding to ADC resolution 12 bits).
  *          This example is based on the STM32F7xx ADC LL API;
  *          Peripheral initialization done using LL unitary services functions.
  ******************************************************************************
  * @attention
  *
  * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
  *
  * Redistribution and use in source and binary forms, with or without modification,
  * are permitted provided that the following conditions are met:
  *   1. Redistributions of source code must retain the above copyright notice,
  *      this list of conditions and the following disclaimer.
  *   2. Redistributions in binary form must reproduce the above copyright notice,
  *      this list of conditions and the following disclaimer in the documentation
  *      and/or other materials provided with the distribution.
  *   3. Neither the name of STMicroelectronics nor the names of its contributors
  *      may be used to endorse or promote products derived from this software
  *      without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  ******************************************************************************
  */

/* Includes ------------------------------------------------------------------*/
#include "main.h"

/** @addtogroup STM32F7xx_LL_Examples
  * @{
  */

/** @addtogroup ADC_MultimodeDualInterleaved
  * @{
  */

/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/

/* Definitions of ADC hardware constraints delays */
/* Note: Only ADC IP HW delays are defined in ADC LL driver driver,           */
/*       not timeout values:                                                  */
/*       Timeout values for ADC operations are dependent to device clock      */
/*       configuration (system clock versus ADC clock),                       */
/*       and therefore must be defined in user application.                   */
/*       Refer to @ref ADC_LL_EC_HW_DELAYS for description of ADC timeout     */
/*       values definition.                                                   */

/* Timeout values for ADC operations. */
/* (enable settling time, disable settling time, ...)                       */
/* Values defined to be higher than worst cases: low clock frequency,       */
/* maximum prescalers.                                                      */
/* Example of profile very low frequency : ADC clock frequency 36MHz        */
/* prescaler 2, sampling time 56 ADC clock cycles, resolution 12 bits.      */
/*  - ADC enable time: maximum delay is 3 us                                */
/*    (refer to device datasheet, parameter "tSTAB")                        */
/*  - ADC disable time: maximum delay should be a few ADC clock cycles      */
/*  - ADC stop conversion time: maximum delay should be a few ADC clock     */
/*    cycles                                                                */
/*  - ADC conversion time: with this hypothesis of clock settings, maximum  */
/*    delay will be 99us.                                                   */
/*    (refer to device reference manual, section "Timing")                  */
/* Unit: ms                                                                 */
#define ADC_CALIBRATION_TIMEOUT_MS       ((uint32_t)   1)
#define ADC_ENABLE_TIMEOUT_MS            ((uint32_t)   1)
#define ADC_DISABLE_TIMEOUT_MS           ((uint32_t)   1)
#define ADC_STOP_CONVERSION_TIMEOUT_MS   ((uint32_t)   1)
#define ADC_CONVERSION_TIMEOUT_MS        ((uint32_t)   2)

/* Definitions of environment analog values */
/* Value of analog reference voltage (Vref+), connected to analog voltage   */
/* supply Vdda (unit: mV).                                                  */
#define VDDA_APPLI                       ((uint32_t)3300)

/* Definitions of data related to this example */
/* Init variable out of expected ADC conversion data range */
#define VAR_CONVERTED_DATA_INIT_VALUE    (__LL_ADC_DIGITAL_SCALE(LL_ADC_RESOLUTION_12B) + 1)

/* Definition of ADCx conversions data table size */
/* Note: Considering interruption occurring after each number of            */
/*       "ADC_CONVERTED_DATA_BUFFER_SIZE" ADC conversions                   */
/*       (IT from DMA transfer complete),                                   */
/*       select sampling time and ADC clock with sufficient                 */
/*       duration to not create an overhead situation in IRQHandler.        */
#define ADC_CONVERTED_DATA_BUFFER_SIZE   ((uint32_t) 256)

/* Private macro -------------------------------------------------------------*/

/* Private variables ---------------------------------------------------------*/

/* Variables for ADC conversion data */
__IO   uint32_t aADCxADCyMultimodeDualConvertedData[ADC_CONVERTED_DATA_BUFFER_SIZE];     /* ADC multimode dual conversion data: ADC master and ADC slave conversion data are concatenated in a registers of 32 bits. */
static uint16_t aADCxMultimodeDualMasterConvertedData[ADC_CONVERTED_DATA_BUFFER_SIZE];/* For the purpose of this example, dispatch multimode dual conversion data into array corresponding to ADC master conversion data. */
static uint16_t aADCyMultimodeDualSlaveConvertedData[ADC_CONVERTED_DATA_BUFFER_SIZE]; /* For the purpose of this example, dispatch multimode dual conversion data into array corresponding to ADC slave conversion data. */

/* Variable to report status of DMA transfer of ADC group regular conversions */
/*  0: DMA transfer is not completed                                          */
/*  1: DMA transfer is completed                                              */
/*  2: DMA transfer has not been started yet (initial state)                  */
__IO uint8_t ubDmaTransferStatus = 2; /* Variable set into DMA interruption callback */


/* Private function prototypes -----------------------------------------------*/
void     SystemClock_Config(void);
void     Configure_DMA(void);
void     Configure_ADC(void);
void     Configure_ADC_slave(void);
void     Activate_ADC(void);
void     Activate_ADC_slave(void);
static void CPU_CACHE_Enable(void);

/* Private functions ---------------------------------------------------------*/

/**
  * @brief  Main program
  * @param  None
  * @retval None
  */
int main(void)
{
    /* Enable the CPU Cache */
    CPU_CACHE_Enable();

    /* Configure the system clock to 216 MHz */
    SystemClock_Config();

    /* Initialize button in EXTI mode */
    /* UserButton_Init(); */

    /* Configure DMA for data transfer from ADC */
    Configure_DMA();

    /* Configure ADC */
    /* Note: This function configures the ADC but does not enable it.           */
    /*       To enable it, use function "Activate_ADC()".                       */
    /*       This is intended to optimize power consumption:                    */
    /*       1. ADC configuration can be done once at the beginning             */
    /*          (ADC disabled, minimal power consumption)                       */
    /*       2. ADC enable (higher power consumption) can be done just before   */
    /*          ADC conversions needed.                                         */
    /*          Then, possible to perform successive "Activate_ADC()",          */
    /*          "Deactivate_ADC()", ..., without having to set again            */
    /*          ADC configuration.                                              */
    Configure_ADC();
    /* For multimode, configure ADC slave */
    Configure_ADC_slave();

    /* Activate ADC */
    /* Perform ADC activation procedure to make it ready to convert. */
    Activate_ADC();
    Activate_ADC_slave();

    LL_ADC_REG_StartConversionSWStart(ADC1);

    /* Infinite loop */
    while (1)
    {
        /* Note: ADC group regular conversion start is done into push button      */
        /*       IRQ handler, refer to function "UserButton_Callback()".          */

        /* Note: LED state depending on DMA transfer status is set into DMA       */
        /*       IRQ handler, refer to functions "DmaTransferComplete()"          */
        /*       and "DmaTransferHalfComplete()".                                 */

        /* Note: ADC conversion data are stored into array                        */
        /*       "aADCxADCyMultimodeDualConvertedData".                           */
        /*       For this example purpose, ADC conversion data of ADC master and  */
        /*       ADC slave are dispatched into arrays */
        /*       "aADCxMultimodeDualMasterConvertedData"                          */
        /*       and "aADCyMultimodeDualSlaveConvertedData", refer to comments    */
        /*       into function "DmaTransferComplete()".                           */
        /*       (for debug: see variable content into watch window).             */

        /* Note: ADC conversion data can be computed to physical values           */
        /*       using ADC LL driver helper macro:                                */
        /*         uhADCxConvertedData_Voltage_mVolt                              */
        /*         = __LL_ADC_CALC_DATA_TO_VOLTAGE(VDDA_APPLI,                    */
        /*                                      uhADCxConvertedData),             */
        /*                                      LL_ADC_RESOLUTION_12B)            */

    }
}

/**
  * @brief  This function configures DMA for transfer of data from ADC
  * @param  None
  * @retval None
  */
void Configure_DMA(void)
{
    /*## Configuration of NVIC #################################################*/
    /* Configure NVIC to enable DMA interruptions */
    NVIC_SetPriority(DMA2_Stream0_IRQn, 1);  /* DMA IRQ lower priority than ADC IRQ */
    NVIC_EnableIRQ(DMA2_Stream0_IRQn);

    /*## Configuration of DMA ##################################################*/
    /* Enable the peripheral clock of DMA */
    LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_DMA2);

    /* Configure the DMA transfer */
    /*  - DMA transfer in circular mode to match with ADC configuration:        */
    /*    DMA unlimited requests.                                               */
    /*  - DMA transfer from ADC without address increment.                      */
    /*  - DMA transfer to memory with address increment.                        */
    /*  - DMA transfer from ADC by word to match with ADC configuration:        */
    /*    ADC resolution 12 bits and and multimode enabled,                     */
    /*    ADC master and ADC slave conversion data are concatenated in          */
    /*    a register of 32 bits.                                                */
    /*  - DMA transfer to memory by word to match with ADC conversion data      */
    /*    buffer variable type: word.                                           */
    LL_DMA_SetChannelSelection(DMA2, LL_DMA_STREAM_0, LL_DMA_CHANNEL_0);
    LL_DMA_ConfigTransfer(DMA2,
                          LL_DMA_STREAM_0,
                          LL_DMA_DIRECTION_PERIPH_TO_MEMORY |
                          LL_DMA_MODE_CIRCULAR              |
                          LL_DMA_PERIPH_NOINCREMENT         |
                          LL_DMA_MEMORY_INCREMENT           |
                          LL_DMA_PDATAALIGN_WORD            |
                          LL_DMA_MDATAALIGN_WORD            |
                          LL_DMA_PRIORITY_HIGH               );

    /* Set DMA transfer addresses of source and destination */
    /* Note: On this STM32 device, in multimode, ADC conversion data with       */
    /*       ADC master and ADC slave conversion data concatenated are located  */
    /*       in a specific multimode data register.                             */
    LL_DMA_ConfigAddresses(DMA2,
                           LL_DMA_STREAM_0,
                           LL_ADC_DMA_GetRegAddr(ADC1, LL_ADC_DMA_REG_REGULAR_DATA_MULTI),
                           (uint32_t)&aADCxADCyMultimodeDualConvertedData,
                           LL_DMA_DIRECTION_PERIPH_TO_MEMORY);

    /* Set DMA transfer size */
    LL_DMA_SetDataLength(DMA2,
                         LL_DMA_STREAM_0,
                         ADC_CONVERTED_DATA_BUFFER_SIZE);

    /* Enable DMA transfer interruption: transfer complete */
    LL_DMA_EnableIT_TC(DMA2,
                       LL_DMA_STREAM_0);

    /*## Activation of DMA #####################################################*/
    /* Enable the DMA transfer */
    LL_DMA_EnableStream(DMA2, LL_DMA_STREAM_0);
}

/**
  * @brief  Configure ADC (ADC instance: ADC1) and GPIO used by ADC channels.
  * @note   In case re-use of this function outside of this example:
  *         This function includes checks of ADC hardware constraints before
  *         executing some configuration functions.
  *         - In this example, all these checks are not necessary but are
  *           implemented anyway to show the best practice usages
  *           corresponding to reference manual procedure.
  *           (On some STM32 series, setting of ADC features are not
  *           conditioned to ADC state. However, in order to be compliant with
  *           other STM32 series and to show the best practice usages,
  *           ADC state is checked anyway with same constraints).
  *           Software can be optimized by removing some of these checks,
  *           if they are not relevant considering previous settings and actions
  *           in user application.
  *         - If ADC is not in the appropriate state to modify some parameters,
  *           the setting of these parameters is bypassed without error
  *           reporting:
  *           it can be the expected behavior in case of recall of this
  *           function to update only a few parameters (which update fullfills
  *           the ADC state).
  *           Otherwise, it is up to the user to set the appropriate error
  *           reporting in user application.
  * @note   Peripheral configuration is minimal configuration from reset values.
  *         Thus, some useless LL unitary functions calls below are provided as
  *         commented examples - setting is default configuration from reset.
  * @param  None
  * @retval None
  */
void Configure_ADC(void)
{
    /*## Configuration of GPIO used by ADC channels ############################*/

    /* Note: On this STM32 device, ADC1 channel 4 is mapped on GPIO pin PA.04 */

    /* Enable GPIO Clock */
    LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOA);

    /* Configure GPIO in analog mode to be used as ADC input */
    LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_0, LL_GPIO_MODE_ANALOG);

    /*## Configuration of ADC ##################################################*/

    /*## Configuration of ADC hierarchical scope: common to several ADC ########*/

    /* Enable ADC clock (core clock) */
    LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_ADC1);

    /* Note: Hardware constraint (refer to description of the functions         */
    /*       below):                                                            */
    /*       On this STM32 serie, setting of these features are not             */
    /*       conditioned to ADC state.                                          */
    /*       However, in order to be compliant with other STM32 series          */
    /*       and to show the best practice usages, ADC state is checked.        */
    /*       Software can be optimized by removing some of these checks, if     */
    /*       they are not relevant considering previous settings and actions    */
    /*       in user application.                                               */
    if(__LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE() == 0)
    {
        /* Note: Call of the functions below are commented because they are       */
        /*       useless in this example:                                         */
        /*       setting corresponding to default configuration from reset state. */

        /* Set ADC clock (conversion clock) common to several ADC instances */
        LL_ADC_SetCommonClock(__LL_ADC_COMMON_INSTANCE(ADC1), LL_ADC_CLOCK_SYNC_PCLK_DIV2);

        /* Set ADC measurement path to internal channels */
        // LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(ADC1), LL_ADC_PATH_INTERNAL_NONE);


        /*## Configuration of ADC hierarchical scope: multimode ####################*/

        /* Set ADC multimode configuration */
        LL_ADC_SetMultimode(__LL_ADC_COMMON_INSTANCE(ADC1), LL_ADC_MULTI_TRIPLE_REG_INTERL);
        /* Set ADC multimode DMA transfer */
        LL_ADC_SetMultiDMATransfer(__LL_ADC_COMMON_INSTANCE(ADC1), LL_ADC_MULTI_REG_DMA_UNLMT_3);
        /* Set ADC multimode: delay between 2 sampling phases */
        /* Note: Delay has been chosen to have ADC2 conversion start in the       */
        /*       mid-delay between ADC1 conversions.                              */
        LL_ADC_SetMultiTwoSamplingDelay(__LL_ADC_COMMON_INSTANCE(ADC1), LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES);


    }


    /*## Configuration of ADC hierarchical scope: ADC instance #################*/

    /* Note: Hardware constraint (refer to description of the functions         */
    /*       below):                                                            */
    /*       On this STM32 serie, setting of these features are not             */
    /*       conditioned to ADC state.                                          */
    /*       However, ADC state is checked anyway with standard requirements    */
    /*       (refer to description of this function).                           */
    if (LL_ADC_IsEnabled(ADC1) == 0)
    {
        /* Note: Call of the functions below are commented because they are       */
        /*       useless in this example:                                         */
        /*       setting corresponding to default configuration from reset state. */

        /* Set ADC data resolution */
        // LL_ADC_SetResolution(ADC1, LL_ADC_RESOLUTION_12B);

        /* Set ADC conversion data alignment */
        // LL_ADC_SetResolution(ADC1, LL_ADC_DATA_ALIGN_RIGHT);

        /* Set Set ADC sequencers scan mode, for all ADC groups                   */
        /* (group regular, group injected).                                       */
        // LL_ADC_SetSequencersScanMode(ADC1, LL_ADC_SEQ_SCAN_DISABLE);

    }


    /*## Configuration of ADC hierarchical scope: ADC group regular ############*/

    /* Note: Hardware constraint (refer to description of the functions         */
    /*       below):                                                            */
    /*       On this STM32 serie, setting of these features are not             */
    /*       conditioned to ADC state.                                          */
    /*       However, ADC state is checked anyway with standard requirements    */
    /*       (refer to description of this function).                           */
    if (LL_ADC_IsEnabled(ADC1) == 0)
    {
        /* Set ADC group regular trigger source */
        LL_ADC_REG_SetTriggerSource(ADC1, LL_ADC_REG_TRIG_SOFTWARE);

        /* Set ADC group regular trigger polarity */
        // LL_ADC_REG_SetTriggerEdge(ADC1, LL_ADC_REG_TRIG_EXT_RISING);

        /* Set ADC group regular continuous mode */
        LL_ADC_REG_SetContinuousMode(ADC1, LL_ADC_REG_CONV_CONTINUOUS);

        /* Set ADC group regular conversion data transfer */
        /* Note: Both ADC master and ADC slave have multimode setting             */
        /*       to use 1 DMA channel for all ADC instances.                      */
        /*       In this case, each ADC instance must have setting of             */
        /*       ADC DMA request set to default value (no DMA transfer).          */
        /*       and ADC DMA transfer is managed by ADC common instance.          */
        /*       Refer to function "LL_ADC_SetMultiDMATransfer()".                */
        LL_ADC_REG_SetDMATransfer(ADC1, LL_ADC_REG_DMA_TRANSFER_NONE);
        /* Set ADC group regular sequencer */
        /* Note: On this STM32 serie, ADC group regular sequencer is              */
        /*       fully configurable: sequencer length and each rank               */
        /*       affectation to a channel are configurable.                       */
        /*       Refer to description of function                                 */
        /*       "LL_ADC_REG_SetSequencerLength()".                               */

        /* Set ADC group regular sequencer length and scan direction */
        LL_ADC_REG_SetSequencerLength(ADC1, LL_ADC_REG_SEQ_SCAN_DISABLE);

        /* Set ADC group regular sequencer discontinuous mode */
        // LL_ADC_REG_SetSequencerDiscont(ADC1, LL_ADC_REG_SEQ_DISCONT_DISABLE);

        /* Set ADC group regular sequence: channel on the selected sequence rank. */
        LL_ADC_REG_SetSequencerRanks(ADC1, LL_ADC_REG_RANK_1, LL_ADC_CHANNEL_0);
    }


    /*## Configuration of ADC hierarchical scope: ADC group injected ###########*/

    /* Note: Hardware constraint (refer to description of the functions         */
    /*       below):                                                            */
    /*       On this STM32 serie, setting of these features are not             */
    /*       conditioned to ADC state.                                          */
    /*       However, ADC state is checked anyway with standard requirements    */
    /*       (refer to description of this function).                           */
    if (LL_ADC_IsEnabled(ADC1) == 0)
    {
        /* Note: Call of the functions below are commented because they are       */
        /*       useless in this example:                                         */
        /*       setting corresponding to default configuration from reset state. */

        /* Set ADC group injected trigger source */
        // LL_ADC_INJ_SetTriggerSource(ADC1, LL_ADC_INJ_TRIG_SOFTWARE);

        /* Set ADC group injected trigger polarity */
        // LL_ADC_INJ_SetTriggerEdge(ADC1, LL_ADC_INJ_TRIG_EXT_RISING);

        /* Set ADC group injected conversion trigger  */
        // LL_ADC_INJ_SetTrigAuto(ADC1, LL_ADC_INJ_TRIG_INDEPENDENT);

        /* Set ADC group injected sequencer */
        /* Note: On this STM32 serie, ADC group injected sequencer is             */
        /*       fully configurable: sequencer length and each rank               */
        /*       affectation to a channel are configurable.                       */
        /*       Refer to description of function                                 */
        /*       "LL_ADC_INJ_SetSequencerLength()".                               */

        /* Set ADC group injected sequencer length and scan direction */
        // LL_ADC_INJ_SetSequencerLength(ADC1, LL_ADC_INJ_SEQ_SCAN_DISABLE);

        /* Set ADC group injected sequencer discontinuous mode */
        // LL_ADC_INJ_SetSequencerDiscont(ADC1, LL_ADC_INJ_SEQ_DISCONT_DISABLE);

        /* Set ADC group injected sequence: channel on the selected sequence rank. */
        // LL_ADC_INJ_SetSequencerRanks(ADC1, LL_ADC_INJ_RANK_1, LL_ADC_CHANNEL_0);
    }


    /*## Configuration of ADC hierarchical scope: channels #####################*/

    /* Note: Hardware constraint (refer to description of the functions         */
    /*       below):                                                            */
    /*       On this STM32 serie, setting of these features are not             */
    /*       conditioned to ADC state.                                          */
    /*       However, in order to be compliant with other STM32 series          */
    /*       and to show the best practice usages, ADC state is checked.        */
    /*       Software can be optimized by removing some of these checks, if     */
    /*       they are not relevant considering previous settings and actions    */
    /*       in user application.                                               */
    if (LL_ADC_IsEnabled(ADC1) == 0)
    {
        /* Set ADC channels sampling time */
        /* Note: Considering interruption occurring after each number of          */
        /*       "ADC_CONVERTED_DATA_BUFFER_SIZE" ADC conversions                 */
        /*       (IT from DMA transfer complete),                                 */
        /*       select sampling time and ADC clock with sufficient               */
        /*       duration to not create an overhead situation in IRQHandler.      */
        LL_ADC_SetChannelSamplingTime(ADC1, LL_ADC_CHANNEL_0, LL_ADC_SAMPLINGTIME_3CYCLES);

    }


    /*## Configuration of ADC transversal scope: analog watchdog ###############*/

    /* Note: On this STM32 serie, there is only 1 analog watchdog available.    */

    /* Set ADC analog watchdog: channels to be monitored */
    // LL_ADC_SetAnalogWDMonitChannels(ADC1, LL_ADC_AWD_DISABLE);

    /* Set ADC analog watchdog: thresholds */
    // LL_ADC_SetAnalogWDThresholds(ADC1, LL_ADC_AWD_THRESHOLD_HIGH, __LL_ADC_DIGITAL_SCALE(LL_ADC_RESOLUTION_12B));
    // LL_ADC_SetAnalogWDThresholds(ADC1, LL_ADC_AWD_THRESHOLD_LOW, 0x000);


    /*## Configuration of ADC transversal scope: oversampling ##################*/

    /* Note: Feature not available on this STM32 serie */


    /* Note: in this example, ADC group regular end of conversions              */
    /*       (number of ADC conversions defined by DMA buffer size)             */
    /*       are notified by DMA transfer interruptions).                       */

}

/**
  * @brief  For multimode, configure ADC slave (ADC instance: ADC2)
  *         and GPIO used by ADC channels.
  * @note   Configuration of GPIO:
  *           Not configured: same as ADC master (ADC slave shares the common configuration of ADC master)
  *         Configuration of ADC:
  *         - Common to several ADC:
  *           Not configured: same as ADC master (ADC slave shares the common configuration of ADC master)
  *         - Multimode
  *           Not configured: same as ADC master (ADC slave shares the common configuration of ADC master)
  * @note   In case re-use of this function outside of this example:
  *         This function includes checks of ADC hardware constraints before
  *         executing some configuration functions.
  *         - In this example, all these checks are not necessary but are
  *           implemented anyway to show the best practice usages
  *           corresponding to reference manual procedure.
  *           (On some STM32 series, setting of ADC features are not
  *           conditioned to ADC state. However, in order to be compliant with
  *           other STM32 series and to show the best practice usages,
  *           ADC state is checked anyway with same constraints).
  *           Software can be optimized by removing some of these checks,
  *           if they are not relevant considering previous settings and actions
  *           in user application.
  *         - If ADC is not in the appropriate state to modify some parameters,
  *           the setting of these parameters is bypassed without error
  *           reporting:
  *           it can be the expected behavior in case of recall of this
  *           function to update only a few parameters (which update fullfills
  *           the ADC state).
  *           Otherwise, it is up to the user to set the appropriate error
  *           reporting in user application.
  * @note   Peripheral configuration is minimal configuration from reset values.
  *         Thus, some useless LL unitary functions calls below are provided as
  *         commented examples - setting is default configuration from reset.
  * @param  None
  * @retval None
  */
void Configure_ADC_slave(void)
{
    /*## Configuration of GPIO used by ADC channels ############################*/
    /* Note: not configured: In this example, ADC slave group regular converts  */
    /*       the same channel as ADC master group regular.                      */
    /*       Channel configuration same as ADC master.                          */


    /*## Configuration of ADC ##################################################*/
    /* Enable ADC clock (core clock) */
    LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_ADC2);
    LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_ADC3);
    /*## Configuration of ADC hierarchical scope: common to several ADC ########*/
    /* Note: ADC clock (core clock) not configured: same as ADC master          */
    /*       (ADC slave shares the common clock of ADC master).                 */
    /* Note: not configured: same as ADC master (ADC slave shares the common    */
    /*       configuration of ADC master).                                      */

    /*## Configuration of ADC hierarchical scope: multimode ####################*/
    /* Note: not configured: same as ADC master (ADC slave shares the common    */
    /*       configuration of ADC master).                                      */


    /*## Configuration of ADC hierarchical scope: ADC instance #################*/

    /* Note: Hardware constraint (refer to description of the functions         */
    /*       below):                                                            */
    /*       On this STM32 serie, setting of these features are not             */
    /*       conditioned to ADC state.                                          */
    /*       However, ADC state is checked anyway with standard requirements    */
    /*       (refer to description of this function).                           */
    if (LL_ADC_IsEnabled(ADC2) == 0)
    {
        /* Note: Call of the functions below are commented because they are       */
        /*       useless in this example:                                         */
        /*       setting corresponding to default configuration from reset state. */

        /* Set ADC data resolution */
        // LL_ADC_SetResolution(ADC2, LL_ADC_RESOLUTION_12B);

        /* Set ADC conversion data alignment */
        // LL_ADC_SetResolution(ADC2, LL_ADC_DATA_ALIGN_RIGHT);

        /* Set Set ADC sequencers scan mode, for all ADC groups                   */
        /* (group regular, group injected).                                       */
        LL_ADC_SetSequencersScanMode(ADC2, LL_ADC_SEQ_SCAN_ENABLE);
        LL_ADC_SetSequencersScanMode(ADC3, LL_ADC_SEQ_SCAN_ENABLE);

    }


    /*## Configuration of ADC hierarchical scope: ADC group regular ############*/

    /* Note: Hardware constraint (refer to description of the functions         */
    /*       below):                                                            */
    /*       On this STM32 serie, setting of these features are not             */
    /*       conditioned to ADC state.                                          */
    /*       However, ADC state is checked anyway with standard requirements    */
    /*       (refer to description of this function).                           */
    if (LL_ADC_IsEnabled(ADC2) == 0)
    {
        /* Set ADC group regular trigger source */
        /* Note: On this STM32 device, in multimode, ADC slave trigger source     */
        /*       setting is mandatory: SW start.                                  */
        LL_ADC_REG_SetTriggerSource(ADC2, LL_ADC_REG_TRIG_SOFTWARE);
        LL_ADC_REG_SetTriggerSource(ADC3, LL_ADC_REG_TRIG_SOFTWARE);

        /* Set ADC group regular continuous mode */
        /* Note: On this STM32 device, in multimode, ADC slave continuous         */
        /*       conversions mode must be the same as ADC master.                 */
        LL_ADC_REG_SetContinuousMode(ADC2, LL_ADC_REG_CONV_CONTINUOUS);
        LL_ADC_REG_SetContinuousMode(ADC3, LL_ADC_REG_CONV_CONTINUOUS);

        /* Set ADC group regular conversion data transfer */
        /* Note: Both ADC master and ADC slave have multimode setting             */
        /*       to use 1 DMA channel for all ADC instances.                      */
        /*       In this case, each ADC instance must have setting of             */
        /*       ADC DMA request set to default value (no DMA transfer).          */
        /*       and ADC DMA transfer is managed by ADC common instance.          */
        /*       Refer to function "LL_ADC_SetMultiDMATransfer()".                */
        LL_ADC_REG_SetDMATransfer(ADC2, LL_ADC_REG_DMA_TRANSFER_NONE);
        LL_ADC_REG_SetDMATransfer(ADC3, LL_ADC_REG_DMA_TRANSFER_NONE);

        /* Specify which ADC flag between EOC (end of unitary conversion)         */
        /* or EOS (end of sequence conversions) is used to indicate               */
        /* the end of conversion.                                                 */
        // LL_ADC_REG_SetFlagEndOfConversion(ADC2, LL_ADC_REG_FLAG_EOC_SEQUENCE_CONV);

        /* Set ADC group regular sequencer */
        /* Note: On this STM32 serie, ADC group regular sequencer is              */
        /*       fully configurable: sequencer length and each rank               */
        /*       affectation to a channel are configurable.                       */
        /*       Refer to description of function                                 */
        /*       "LL_ADC_REG_SetSequencerLength()".                               */

        /* Set ADC group regular sequencer length and scan direction */
        LL_ADC_REG_SetSequencerLength(ADC2, LL_ADC_REG_SEQ_SCAN_DISABLE);
        LL_ADC_REG_SetSequencerLength(ADC3, LL_ADC_REG_SEQ_SCAN_DISABLE);

        /* Set ADC group regular sequencer discontinuous mode */
        // LL_ADC_REG_SetSequencerDiscont(ADC2, LL_ADC_REG_SEQ_DISCONT_DISABLE);

        /* Set ADC group regular sequence: channel on the selected sequence rank. */
        LL_ADC_REG_SetSequencerRanks(ADC2, LL_ADC_REG_RANK_1, LL_ADC_CHANNEL_0);
        LL_ADC_REG_SetSequencerRanks(ADC3, LL_ADC_REG_RANK_1, LL_ADC_CHANNEL_0);
    }


    /*## Configuration of ADC hierarchical scope: ADC group injected ###########*/

    /* Note: Hardware constraint (refer to description of the functions         */
    /*       below):                                                            */
    /*       On this STM32 serie, setting of these features are not             */
    /*       conditioned to ADC state.                                          */
    /*       However, ADC state is checked anyway with standard requirements    */
    /*       (refer to description of this function).                           */
    if (LL_ADC_IsEnabled(ADC2) == 0)
    {
        /* Note: Call of the functions below are commented because they are       */
        /*       useless in this example:                                         */
        /*       setting corresponding to default configuration from reset state. */

        /* Set ADC group injected trigger source */
        // LL_ADC_INJ_SetTriggerSource(ADC2, LL_ADC_INJ_TRIG_SOFTWARE);

        /* Set ADC group injected trigger polarity */
        // LL_ADC_INJ_SetTriggerEdge(ADC2, LL_ADC_INJ_TRIG_EXT_RISING);

        /* Set ADC group injected conversion trigger  */
        // LL_ADC_INJ_SetTrigAuto(ADC2, LL_ADC_INJ_TRIG_INDEPENDENT);

        /* Set ADC group injected sequencer */
        /* Note: On this STM32 serie, ADC group injected sequencer is             */
        /*       fully configurable: sequencer length and each rank               */
        /*       affectation to a channel are configurable.                       */
        /*       Refer to description of function                                 */
        /*       "LL_ADC_INJ_SetSequencerLength()".                               */

        /* Set ADC group injected sequencer length and scan direction */
        // LL_ADC_INJ_SetSequencerLength(ADC2, LL_ADC_INJ_SEQ_SCAN_DISABLE);

        /* Set ADC group injected sequencer discontinuous mode */
        // LL_ADC_INJ_SetSequencerDiscont(ADC2, LL_ADC_INJ_SEQ_DISCONT_DISABLE);

        /* Set ADC group injected sequence: channel on the selected sequence rank. */
        // LL_ADC_INJ_SetSequencerRanks(ADC2, LL_ADC_INJ_RANK_1, LL_ADC_CHANNEL_0);
    }


    /*## Configuration of ADC hierarchical scope: channels #####################*/
    /* Note: not configured: In this example, ADC slave group regular converts  */
    /*       the same channel as ADC master group regular.                      */
    /*       Channel configuration same as ADC master.                          */


    /*## Configuration of ADC transversal scope: analog watchdog ###############*/

    /* Note: On this STM32 serie, there is only 1 analog watchdog available.    */

    /* Set ADC analog watchdog: channels to be monitored */
    // LL_ADC_SetAnalogWDMonitChannels(ADC2, LL_ADC_AWD_DISABLE);

    /* Set ADC analog watchdog: thresholds */
    // LL_ADC_SetAnalogWDThresholds(ADC2, LL_ADC_AWD_THRESHOLD_HIGH, __LL_ADC_DIGITAL_SCALE(LL_ADC_RESOLUTION_12B));
    // LL_ADC_SetAnalogWDThresholds(ADC2, LL_ADC_AWD_THRESHOLD_LOW, 0x000);


    /*## Configuration of ADC transversal scope: oversampling ##################*/

    /* Note: Feature not available on this STM32 serie */


    /* Note: in this example, ADC group regular end of conversions              */
    /*       (number of ADC conversions defined by DMA buffer size)             */
    /*       are notified by DMA transfer interruptions).                       */

}


/**
  * @brief  Perform ADC activation procedure to make it ready to convert
  *         (ADC instance: ADC1).
  * @note   Operations:
  *         - ADC instance
  *           - Enable ADC
  *         - ADC group regular
  *           none: ADC conversion start-stop to be performed
  *                 after this function
  *         - ADC group injected
  *           none: ADC conversion start-stop to be performed
  *                 after this function
  * @param  None
  * @retval None
  */
void Activate_ADC(void)
{
#if (USE_TIMEOUT == 1)
    uint32_t Timeout = 0; /* Variable used for timeout management */
#endif /* USE_TIMEOUT */

    /*## Operation on ADC hierarchical scope: ADC instance #####################*/

    /* Note: Hardware constraint (refer to description of the functions         */
    /*       below):                                                            */
    /*       On this STM32 serie, setting of these features are not             */
    /*       conditioned to ADC state.                                          */
    /*       However, in order to be compliant with other STM32 series          */
    /*       and to show the best practice usages, ADC state is checked.        */
    /*       Software can be optimized by removing some of these checks, if     */
    /*       they are not relevant considering previous settings and actions    */
    /*       in user application.                                               */
    if (LL_ADC_IsEnabled(ADC1) == 0)
    {
        /* Enable ADC */
        LL_ADC_Enable(ADC1);

    }

    /*## Operation on ADC hierarchical scope: ADC group regular ################*/
    /* Note: No operation on ADC group regular performed here.                  */
    /*       ADC group regular conversions to be performed after this function  */
    /*       using function:                                                    */
    /*       "LL_ADC_REG_StartConversion();"                                    */

    /*## Operation on ADC hierarchical scope: ADC group injected ###############*/
    /* Note: No operation on ADC group injected performed here.                 */
    /*       ADC group injected conversions to be performed after this function */
    /*       using function:                                                    */
    /*       "LL_ADC_INJ_StartConversion();"                                    */

}

/**
  * @brief  Perform ADC activation procedure to make it ready to convert
  *         (ADC instance: ADC2, used as ADC slave in multimode configuration).
  * @note   Operations:
  *         - ADC instance
  *           - Enable ADC
  *         - ADC group regular
  *           none: ADC conversion start-stop to be performed
  *                 after this function
  *         - ADC group injected
  *           none: ADC conversion start-stop to be performed
  *                 after this function
  * @param  None
  * @retval None
  */
void Activate_ADC_slave(void)
{
#if (USE_TIMEOUT == 1)
    uint32_t Timeout = 0; /* Variable used for timeout management */
#endif /* USE_TIMEOUT */

    /*## Operation on ADC hierarchical scope: ADC instance #####################*/

    /* Note: Hardware constraint (refer to description of the functions         */
    /*       below):                                                            */
    /*       On this STM32 serie, setting of these features are not             */
    /*       conditioned to ADC state.                                          */
    /*       However, in order to be compliant with other STM32 series          */
    /*       and to show the best practice usages, ADC state is checked.        */
    /*       Software can be optimized by removing some of these checks, if     */
    /*       they are not relevant considering previous settings and actions    */
    /*       in user application.                                               */
    if (LL_ADC_IsEnabled(ADC2) == 0)
    {
        /* Enable ADC */
        LL_ADC_Enable(ADC2);
        LL_ADC_Enable(ADC3);

    }

    /*## Operation on ADC hierarchical scope: ADC group regular ################*/
    /* Note: No operation on ADC group regular performed here.                  */
    /*       In ADC multimode group regular interleaved, ADC slave conversions  */
    /*       start and stop are controlled by ADC master.                       */

    /*## Operation on ADC hierarchical scope: ADC group injected ###############*/
    /* Note: No operation on ADC group injected performed here.                 */
    /*       ADC group injected conversions to be performed after this function */
    /*       using function:                                                    */
    /*       "LL_ADC_INJ_StartConversion();"                                    */

}



/**
  * @brief  System Clock Configuration
  *         The system Clock is configured as follow :
  *            System Clock source            = PLL (HSE)
  *            SYSCLK(Hz)                     = 216000000
  *            HCLK(Hz)                       = 216000000
  *            AHB Prescaler                  = 1
  *            APB1 Prescaler                 = 4
  *            APB2 Prescaler                 = 2
  *            HSI Frequency(Hz)              = 8000000
  *            PLL_M                          = 8
  *            PLL_N                          = 432
  *            PLL_P                          = 2
  *            VDD(V)                         = 3.3
  *            Main regulator output voltage  = Scale1 mode
  *            Flash Latency(WS)              = 7
  * @param  None
  * @retval None
  */
void SystemClock_Config(void)
{
    /* Enable HSE clock */
    LL_RCC_HSE_EnableBypass();
    LL_RCC_HSE_Enable();
    while(LL_RCC_HSE_IsReady() != 1)
    {
    };

    /* Set FLASH latency */
    LL_FLASH_SetLatency(LL_FLASH_LATENCY_7);

    /* Enable PWR clock */
    LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_PWR);

    /* Activation OverDrive Mode */
    LL_PWR_EnableOverDriveMode();
    while(LL_PWR_IsActiveFlag_OD() != 1)
    {
    };

    /* Activation OverDrive Switching */
    LL_PWR_EnableOverDriveSwitching();
    while(LL_PWR_IsActiveFlag_ODSW() != 1)
    {
    };

    /* Main PLL configuration and activation */
    LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSE, LL_RCC_PLLM_DIV_8, 432, LL_RCC_PLLP_DIV_2);
    LL_RCC_PLL_Enable();
    while(LL_RCC_PLL_IsReady() != 1)
    {
    };

    /* Sysclk activation on the main PLL */
    LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);
    LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);
    while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
    {
    };

    /* Set APB1 & APB2 prescaler */
    LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_4);
    LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_2);

    /* Set systick to 1ms */
    SysTick_Config(216000000 / 1000);

    /* Update CMSIS variable (which can be updated also through SystemCoreClockUpdate function) */
    SystemCoreClock = 216000000;
}

/**
  * @brief  CPU L1-Cache enable.
  * @param  None
  * @retval None
  */
static void CPU_CACHE_Enable(void)
{
    /* Enable I-Cache */
    SCB_EnableICache();

    /* Enable D-Cache */
    SCB_EnableDCache();
}

/******************************************************************************/
/*   USER IRQ HANDLER TREATMENT                                               */
/******************************************************************************/


/**
  * @brief  DMA transfer complete callback
  * @note   This function is executed when the transfer complete interrupt
  *         is generated
  * @retval None
  */
void AdcDmaTransferComplete_Callback()
{
    uint32_t tmp_index = 0;

    /* For the purpose of this example, dispatch multimode dual conversion data */
    /* into arrays corresponding to ADC master and ADC slave conversion data.   */
    /* Note: In a real application, this processing is useless and can be       */
    /*       avoided by setting multimode DMA transfer to one DMA channel       */
    /*       for each of ADC master and ADC slave.                              */
    /*       Refer to function "LL_ADC_SetMultiDMATransfer()".                  */
    /* Management of the 2nd half of the buffer */
    for (tmp_index = (ADC_CONVERTED_DATA_BUFFER_SIZE / 3); tmp_index < ADC_CONVERTED_DATA_BUFFER_SIZE; tmp_index++)
    {
        aADCxMultimodeDualMasterConvertedData[tmp_index] = (uint16_t) __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(LL_ADC_MULTI_MASTER, aADCxADCyMultimodeDualConvertedData[tmp_index]);
        aADCyMultimodeDualSlaveConvertedData[tmp_index]  = (uint16_t) __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE(LL_ADC_MULTI_SLAVE, aADCxADCyMultimodeDualConvertedData[tmp_index]);
    }

    /* Update status variable of DMA transfer */
    ubDmaTransferStatus = 1;
}

#ifdef  USE_FULL_ASSERT

/**
  * @brief  Reports the name of the source file and the source line number
  *         where the assert_param error has occurred.
  * @param  file: pointer to the source file name
  * @param  line: assert_param error line source number
  * @retval None
  */
void assert_failed(uint8_t *file, uint32_t line)
{
    /* User can add his own implementation to report the file name and line number,
       ex: printf("Wrong parameters value: file %s on line %d", file, line) */

    /* Infinite loop */
    while (1)
    {
    }
}
#endif

/**
  * @}
  */

/**
  * @}
  */

/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
 

攻破ST-LINK V2-1

$
0
0
就是攻破板载的带mbed + VCP + STLink的家伙.使用带jar的升级程序,升级我的ST-Link是没问题的.那么解压他.

记得装上JDK,然后解压:

这个就是目标固件,但是AES加密的.

根据IDA反汇编资料,这应该是这样的.
  • f1_x.bin: ST-Link v1.
  • f2_1.bin: “STM32 only”. DISCO STM32 板载
  • f2_2.bin: “STM8 only”. DISCO STM8 板载
  • f2_3.bin: “STM32+STM8”. 标准
  • f2_4.bin: “STM32+MSD+VCP”. Mbed + VCP + STLink
  • f2_5.bin: “STM32+Audio”. 无资料
看来f2_4应该是最高端的.这个固件是AES加密的,这里有人做了个简单程序(其实是反汇编jar出来的部分内容,可读性很差.) https://github.com/lujji/st-decrypt 既然是对称加密,那肯定有KEY,这个KEY目前是best performance.

然后打开解密后的bin,看到熟悉东西了吧. 我改成别的看看等下会不会被我刷掉.

重新加密生成一个新的bin.

然后重新打包一下.

用新程序Upgrade一下固件.再检查新mbed.htm,果然变了.

也就是把STLink的固件给刷了,他的数据根据前段Bootloader给出的.我们现在可以改第二阶段,也就是我们有办法把ST-LINK固件整个备份出来的.先配置下STM32CubeMX.

时钟.

速率低一些,减少出错率.

生成的工程后加入一行,打印全部Flash内容.

当然这个编译出来千万不要接触到任何和中断有关的函数,因为具体向量表是不可预知的.所以中断有关代码都不能有,屏蔽.然后HEX转BIN.自己想办法.

替换文件后再来生成一次JAR.

 冒险来了,是STLINK挂了还是DUMP出整个STLINK了.然后整片都被我读出来了.随后得到Bootloader(从0x4000开始找到自己原始程序数据,截取不要.),修改WP(访问WriteProtect的语句屏蔽)数据. bootloader 然后用烧写器烧写一个Bootloader.然后升级,升级可以选择升级到任意,非常任性.(因为全片擦除缘故,具体不知道哪里记录.)

然后全部升级还原,解密整个固件打包. full 当然,实际测试过,最高级的还是VCP+MSD了.U盘悲剧了.

UPDATE:给下面的主芯片做一次ERASE ALL,U盘的空间就回来了.

然后,我的Mbed呢?好吧,真的不见了.

使用STM32CubeMX编写USB复合设备

$
0
0
其实很简单搞了好久,怪ST呗,既没做到可读性增强,又搞到复杂了.目的先做一个CDC+MSC复合,就像STLink V2-1一样. 首先生成一个CDC工程并测试.

再用同样方法生成MSC,但是不要覆盖当前工程.因为木有分区和很多逻辑没实现,所以借助工具看看.

开始合并了,把CDC内容挪过来.

新建两个文件.

添加文件到Keil.

Keil的Include还要设置.然后编译测试,当然这个时候是不能用的.

修改CDC所用EP.

修改MSC所用EP.

编辑我们的复合头文件.复合用IAD.大概都是写在一起.
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __USBD_COMPOSITE_H
#define __USBD_COMPOSITE_H

#ifdef __cplusplus
 extern "C" {
#endif

/* Includes ------------------------------------------------------------------*/
#include  "usbd_msc.h"
#include  "usbd_cdc.h"
#include "usbd_storage_if.h"
#include "usbd_cdc_if.h"

#define WBVAL(x) (x & 0xFF),((x >> 8) & 0xFF)
#define DBVAL(x) (x & 0xFF),((x >> 8) & 0xFF),((x >> 16) & 0xFF),((x >> 24) & 0xFF)

#define USBD_IAD_DESC_SIZE           0x08
#define USBD_IAD_DESCRIPTOR_TYPE     0x0B

#define USBD_CDC_FIRST_INTERFACE     0          /* CDC FirstInterface */
#define USBD_CDC_INTERFACE_NUM       2          /* CDC Interface NUM */

#define USBD_CDC_CMD_INTERFACE       0
#define USBD_CDC_DATA_INTERFACE      1

#define USBD_MSC_FIRST_INTERFACE     2          /* MSC FirstInterface */
#define USBD_MSC_INTERFACE_NUM       1          /* MSC Interface NUM */

#define USBD_MSC_INTERFACE           2


#define MSC_INDATA_NUM              (MSC_EPIN_ADDR & 0x0F)
#define MSC_OUTDATA_NUM             (MSC_EPOUT_ADDR & 0x0F)

#define CDC_INDATA_NUM              (CDC_IN_EP & 0x0F)
#define CDC_OUTDATA_NUM             (CDC_OUT_EP & 0x0F)
#define CDC_OUTCMD_NUM              (CDC_CMD_EP & 0x0F)

#define USBD_COMPOSITE_DESC_SIZE    (9  + 58 + 8 +  32 + 8)


extern USBD_ClassTypeDef    USBD_COMPOSITE;

/**
  * @}
  */

/**
  * @}
  */

#ifdef __cplusplus
}
#endif

#endif  /* __USBD_MSC_H */
/**
  * @}
  */

/*****************************END OF FILE****/
然后写对应C文件,分别初始化各种.
#include "usbd_composite.h"
#include "usbd_cdc.h"
#include "usbd_msc.h"

static USBD_CDC_HandleTypeDef *pCDCData;
static USBD_MSC_BOT_HandleTypeDef *pMSCData;


static uint8_t  USBD_Composite_Init (USBD_HandleTypeDef *pdev,
                            uint8_t cfgidx);

static uint8_t  USBD_Composite_DeInit (USBD_HandleTypeDef *pdev,
                              uint8_t cfgidx);

static uint8_t  USBD_Composite_EP0_RxReady(USBD_HandleTypeDef *pdev);

static uint8_t  USBD_Composite_Setup (USBD_HandleTypeDef *pdev,
                             USBD_SetupReqTypedef *req);

static uint8_t  USBD_Composite_DataIn (USBD_HandleTypeDef *pdev,
                              uint8_t epnum);

static uint8_t  USBD_Composite_DataOut (USBD_HandleTypeDef *pdev,
                               uint8_t epnum);

static uint8_t  *USBD_Composite_GetFSCfgDesc (uint16_t *length);

static uint8_t  *USBD_Composite_GetDeviceQualifierDescriptor (uint16_t *length);

USBD_ClassTypeDef  USBD_COMPOSITE =
{
  USBD_Composite_Init,
  USBD_Composite_DeInit,
  USBD_Composite_Setup,
  NULL, /*EP0_TxSent*/
  USBD_Composite_EP0_RxReady,
  USBD_Composite_DataIn,
  USBD_Composite_DataOut,
  NULL,
  NULL,
  NULL,
  NULL,
  USBD_Composite_GetFSCfgDesc,
  NULL,
  USBD_Composite_GetDeviceQualifierDescriptor,
};

/* USB composite device Configuration Descriptor */
/*   All Descriptors (Configuration, Interface, Endpoint, Class, Vendor */
__ALIGN_BEGIN uint8_t USBD_Composite_CfgFSDesc[USBD_COMPOSITE_DESC_SIZE]  __ALIGN_END =
{
  0x09,   /* bLength: Configuation Descriptor size */
  USB_DESC_TYPE_CONFIGURATION,   /* bDescriptorType: Configuration */
  WBVAL(USBD_COMPOSITE_DESC_SIZE),
  USBD_MAX_NUM_INTERFACES ,  /* bNumInterfaces: */
  0x01,   /* bConfigurationValue: */
  0x04,   /* iConfiguration: */
  0xC0,   /* bmAttributes: */
  0x96,   /* MaxPower 300 mA */


  /****************************CDC************************************/
  /* Interface Association Descriptor */
  USBD_IAD_DESC_SIZE,               // bLength
  USBD_IAD_DESCRIPTOR_TYPE,         // bDescriptorType
  USBD_CDC_FIRST_INTERFACE,         // bFirstInterface
  USBD_CDC_INTERFACE_NUM,           // bInterfaceCount
  0x02,                             // bFunctionClass
  0x02,                             // bFunctionSubClass
  0x01,                             // bInterfaceProtocol
  0x04,                             // iFunction

  /*Interface Descriptor */
  0x09,   /* bLength: Interface Descriptor size */
  USB_DESC_TYPE_INTERFACE,  /* bDescriptorType: Interface */
  /* Interface descriptor type */
  USBD_CDC_CMD_INTERFACE,   /* bInterfaceNumber: Number of Interface */
  0x00,   /* bAlternateSetting: Alternate setting */
  0x01,   /* bNumEndpoints: One endpoints used */
  0x02,   /* bInterfaceClass: Communication Interface Class */
  0x02,   /* bInterfaceSubClass: Abstract Control Model */
  0x01,   /* bInterfaceProtocol: Common AT commands */
  0x01,   /* iInterface: */

  /*Header Functional Descriptor*/
  0x05,   /* bLength: Endpoint Descriptor size */
  0x24,   /* bDescriptorType: CS_INTERFACE */
  0x00,   /* bDescriptorSubtype: Header Func Desc */
  0x10,   /* bcdCDC: spec release number */
  0x01,

  /*Call Management Functional Descriptor*/
  0x05,   /* bFunctionLength */
  0x24,   /* bDescriptorType: CS_INTERFACE */
  0x01,   /* bDescriptorSubtype: Call Management Func Desc */
  0x00,   /* bmCapabilities: D0+D1 */
  0x01,   /* bDataInterface: 1 */

  /*ACM Functional Descriptor*/
  0x04,   /* bFunctionLength */
  0x24,   /* bDescriptorType: CS_INTERFACE */
  0x02,   /* bDescriptorSubtype: Abstract Control Management desc */
  0x02,   /* bmCapabilities */

  /*Union Functional Descriptor*/
  0x05,   /* bFunctionLength */
  0x24,   /* bDescriptorType: CS_INTERFACE */
  0x06,   /* bDescriptorSubtype: Union func desc */
  USBD_CDC_CMD_INTERFACE,   /* bMasterInterface: Communication class interface */
  USBD_CDC_DATA_INTERFACE,   /* bSlaveInterface0: Data Class Interface */

  /*Endpoint 2 Descriptor*/
  0x07,                           /* bLength: Endpoint Descriptor size */
  USB_DESC_TYPE_ENDPOINT,   /* bDescriptorType: Endpoint */
  CDC_CMD_EP,                     /* bEndpointAddress */
  0x03,                           /* bmAttributes: Interrupt */
  LOBYTE(CDC_CMD_PACKET_SIZE),     /* wMaxPacketSize: */
  HIBYTE(CDC_CMD_PACKET_SIZE),
  0x01,                           /* bInterval: */


  /*Data class interface descriptor*/
  0x09,   /* bLength: Endpoint Descriptor size */
  USB_DESC_TYPE_INTERFACE,  /* bDescriptorType: */
  USBD_CDC_DATA_INTERFACE,   /* bInterfaceNumber: Number of Interface */
  0x00,   /* bAlternateSetting: Alternate setting */
  0x02,   /* bNumEndpoints: Two endpoints used */
  0x0A,   /* bInterfaceClass: CDC */
  0x02,   /* bInterfaceSubClass: */
  0x00,   /* bInterfaceProtocol: */
  0x01,   /* iInterface: */

  /*Endpoint OUT Descriptor*/
  0x07,   /* bLength: Endpoint Descriptor size */
  USB_DESC_TYPE_ENDPOINT,      /* bDescriptorType: Endpoint */
  CDC_OUT_EP,                        /* bEndpointAddress */
  0x02,                              /* bmAttributes: Bulk */
  LOBYTE(CDC_DATA_FS_MAX_PACKET_SIZE),  /* wMaxPacketSize: */
  HIBYTE(CDC_DATA_FS_MAX_PACKET_SIZE),
  0x01,                              /* bInterval: ignore for Bulk transfer */

  /*Endpoint IN Descriptor*/
  0x07,   /* bLength: Endpoint Descriptor size */
  USB_DESC_TYPE_ENDPOINT,      /* bDescriptorType: Endpoint */
  CDC_IN_EP,                         /* bEndpointAddress */
  0x02,                              /* bmAttributes: Bulk */
  LOBYTE(CDC_DATA_FS_MAX_PACKET_SIZE),  /* wMaxPacketSize: */
  HIBYTE(CDC_DATA_FS_MAX_PACKET_SIZE),
  0x01,                               /* bInterval: ignore for Bulk transfer */


 /****************************MSC************************************/
  /* Interface Association Descriptor */
  USBD_IAD_DESC_SIZE,                        // bLength
  USBD_IAD_DESCRIPTOR_TYPE,                  // bDescriptorType
  USBD_MSC_FIRST_INTERFACE,                  // bFirstInterface
  USBD_MSC_INTERFACE_NUM,                    // bInterfaceCount
  0x08,                                      // bFunctionClass
  0x06,                                      // bFunctionSubClass
  0x50,                                      // bInterfaceProtocol
  0x05,

  /********************  Mass Storage interface ********************/
  0x09,   /* bLength: Interface Descriptor size */
  USB_DESC_TYPE_INTERFACE,   /* bDescriptorType: */
  USBD_MSC_INTERFACE,   /* bInterfaceNumber: Number of Interface */
  0x00,   /* bAlternateSetting: Alternate setting */
  0x02,   /* bNumEndpoints*/
  0x08,   /* bInterfaceClass: MSC Class */
  0x06,   /* bInterfaceSubClass : SCSI transparent*/
  0x50,   /* nInterfaceProtocol */
  0x05,          /* iInterface: */

  /********************  Mass Storage Endpoints ********************/
  0x07,   /*Endpoint descriptor length = 7*/
  0x05,   /*Endpoint descriptor type */
  MSC_EPIN_ADDR,   /*Endpoint address (IN, address 1) */
  0x02,   /*Bulk endpoint type */
  LOBYTE(MSC_MAX_FS_PACKET),
  HIBYTE(MSC_MAX_FS_PACKET),
  0x01,   /*Polling interval in milliseconds */

  0x07,   /*Endpoint descriptor length = 7 */
  0x05,   /*Endpoint descriptor type */
  MSC_EPOUT_ADDR,   /*Endpoint address (OUT, address 1) */
  0x02,   /*Bulk endpoint type */
  LOBYTE(MSC_MAX_FS_PACKET),
  HIBYTE(MSC_MAX_FS_PACKET),
  0x01,     /*Polling interval in milliseconds*/

};


/* USB Standard Device Descriptor */
__ALIGN_BEGIN  uint8_t USBD_Composite_DeviceQualifierDesc[USB_LEN_DEV_QUALIFIER_DESC]  __ALIGN_END =
{
  USB_LEN_DEV_QUALIFIER_DESC,
  USB_DESC_TYPE_DEVICE_QUALIFIER,
  0x00,
  0x02,
  0x00,
  0x00,
  0x00,
  0x40,
  0x01,
  0x00,
};


/**
  * @brief  USBD_Composite_Init
  *         Initialize the Composite interface
  * @param  pdev: device instance
  * @param  cfgidx: Configuration index
  * @retval status
  */
static uint8_t  USBD_Composite_Init (USBD_HandleTypeDef *pdev,
                            uint8_t cfgidx)
{
  uint8_t res = 0;

  pdev->pUserData =  &USBD_CDC_Interface_fops_FS;
  res +=  USBD_CDC.Init(pdev,cfgidx);
  pCDCData = pdev->pClassData;
  pdev->pUserData = &USBD_Storage_Interface_fops_FS;
  res +=  USBD_MSC.Init(pdev,cfgidx);
  pMSCData = pdev->pClassData;
  return res;
}

/**
  * @brief  USBD_Composite_DeInit
  *         DeInitilaize  the Composite configuration
  * @param  pdev: device instance
  * @param  cfgidx: configuration index
  * @retval status
  */
static uint8_t  USBD_Composite_DeInit (USBD_HandleTypeDef *pdev,
                              uint8_t cfgidx)
{
    uint8_t res = 0;
    pdev->pClassData = pCDCData;
    pdev->pUserData = &USBD_CDC_Interface_fops_FS;
    res +=  USBD_CDC.DeInit(pdev,cfgidx);

    pdev->pClassData = pMSCData;
    pdev->pUserData = &USBD_Storage_Interface_fops_FS;
    res +=  USBD_MSC.DeInit(pdev,cfgidx);

    return res;
}


static uint8_t  USBD_Composite_EP0_RxReady(USBD_HandleTypeDef *pdev)
{
    return USBD_CDC.EP0_RxReady(pdev);
}



/**
* @brief  USBD_Composite_Setup
*         Handle the Composite requests
* @param  pdev: device instance
* @param  req: USB request
* @retval status
*/
static uint8_t  USBD_Composite_Setup (USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req)
{
  switch (req->bmRequest & USB_REQ_RECIPIENT_MASK)
  {
   case USB_REQ_RECIPIENT_INTERFACE:
     switch(req->wIndex)
      {
         case USBD_CDC_DATA_INTERFACE:
         case USBD_CDC_CMD_INTERFACE:
             pdev->pClassData = pCDCData;
             pdev->pUserData =  &USBD_CDC_Interface_fops_FS;
           return(USBD_CDC.Setup(pdev, req));

         case USBD_MSC_INTERFACE:
             pdev->pClassData = pMSCData;
             pdev->pUserData =  &USBD_Storage_Interface_fops_FS;
           return(USBD_MSC.Setup (pdev, req));

         default:
            break;
     }
     break;

   case USB_REQ_RECIPIENT_ENDPOINT:
     switch(req->wIndex)
     {

         case CDC_IN_EP:
         case CDC_OUT_EP:
         case CDC_CMD_EP:
             pdev->pClassData = pCDCData;
             pdev->pUserData =  &USBD_CDC_Interface_fops_FS;
           return(USBD_CDC.Setup(pdev, req));

         case MSC_EPIN_ADDR:
         case MSC_EPOUT_ADDR:
             pdev->pClassData = pMSCData;
             pdev->pUserData =  &USBD_Storage_Interface_fops_FS;
           return(USBD_MSC.Setup (pdev, req));

         default:
            break;
     }
     break;
  }
  return USBD_OK;
}




/**
* @brief  USBD_Composite_DataIn
*         handle data IN Stage
* @param  pdev: device instance
* @param  epnum: endpoint index
* @retval status
*/
uint8_t  USBD_Composite_DataIn (USBD_HandleTypeDef *pdev,
                              uint8_t epnum)
{
  switch(epnum)
  {
      case CDC_INDATA_NUM:
        pdev->pClassData = pCDCData;
        pdev->pUserData =  &USBD_CDC_Interface_fops_FS;
         return(USBD_CDC.DataIn(pdev,epnum));

      case MSC_INDATA_NUM:
             pdev->pClassData = pMSCData;
             pdev->pUserData =  &USBD_Storage_Interface_fops_FS;
         return(USBD_MSC.DataIn(pdev,epnum));

      default:
         break;

  }
  return USBD_FAIL;
}


/**
* @brief  USBD_Composite_DataOut
*         handle data OUT Stage
* @param  pdev: device instance
* @param  epnum: endpoint index
* @retval status
*/
uint8_t  USBD_Composite_DataOut (USBD_HandleTypeDef *pdev,
                               uint8_t epnum)
{
  switch(epnum)
  {
      case CDC_OUTDATA_NUM:
      case CDC_OUTCMD_NUM:
        pdev->pClassData = pCDCData;
        pdev->pUserData =  &USBD_CDC_Interface_fops_FS;
         return(USBD_CDC.DataOut(pdev,epnum));

      case MSC_OUTDATA_NUM:
             pdev->pClassData = pMSCData;
             pdev->pUserData =  &USBD_Storage_Interface_fops_FS;
         return(USBD_MSC.DataOut(pdev,epnum));

      default:
         break;

  }
  return USBD_FAIL;
}



/**
* @brief  USBD_Composite_GetHSCfgDesc
*         return configuration descriptor
* @param  length : pointer data length
* @retval pointer to descriptor buffer
*/
uint8_t  *USBD_Composite_GetFSCfgDesc (uint16_t *length)
{
   *length = sizeof (USBD_Composite_CfgFSDesc);
   return USBD_Composite_CfgFSDesc;
}

/**
* @brief  DeviceQualifierDescriptor
*         return Device Qualifier descriptor
* @param  length : pointer data length
* @retval pointer to descriptor buffer
*/
uint8_t  *USBD_Composite_GetDeviceQualifierDescriptor (uint16_t *length)
{
  *length = sizeof (USBD_Composite_DeviceQualifierDesc);
  return USBD_Composite_DeviceQualifierDesc;
}


/**
  * @}
  */


/**
  * @}
  */


/**
  * @}
  */
然后CDC的描述太任性了,改.

不然看文件吗根本不知道是什么玩意.接着修改usb_device.c

修改最大接口数.

因为是CDC 2个 + MSC 1个.然后如果还没有识别,修改Stack Size.

修改为IAD兼容.

复合成功:

程序: USB 复合 后话: 如果电脑没驱动,请求助官网:http://www.st.com/en/development-tools/stsw-stm32102.html 思考: 如何复合多重HID呢?复合只是为了增加功能,并不能增加带宽.  

程序员VS普通人

$
0
0
1.塞班&IOS&安卓 程序猿:塞班=诺基亚     IOS=苹果   安卓=安卓 普通人:塞班=不知道什么鬼     IOS=高端    安卓=LOW  B 2.你有几任女朋友 资深程序员:什么是女朋友? 一般程序员:3个啊    0 1 2 3 普通人:4个呀 3.关于修电脑 程序员:我不是修电脑的,请尊重我的职业,谢谢。 普通人:程序员?不就是修电脑的吗? 4.关于华为伪基站识别技术 程序员:属于不正当竞争,但是喜闻乐见 普通人:黑科技  

STM32L0 ADC采样参数速查(硬件过采样)

$
0
0
STM32L0 ADC 采样参数速查
采样时间 1.5
ADC时钟 ADC分频系数 禁止过采样(sps) 256x 过采样(sps)
16000000 1 1000000 3906
16000000 2 500000 1953
16000000 4 250000 977
16000000 6 166667 651
16000000 8 125000 488
16000000 10 100000 391
16000000 12 83333 326
16000000 16 62500 244
16000000 32 31250 122
16000000 64 15625 61
采样时间 3.5
ADC时钟 ADC分频系数 禁止过采样(sps) 256x 过采样(sps)
16000000 1 888889 3472
16000000 2 444444 1736
16000000 4 222222 868
16000000 6 148148 579
16000000 8 111111 434
16000000 10 88889 347
16000000 12 74074 289
16000000 16 55556 217
16000000 32 27778 109
16000000 64 13889 54
采样时间 7.5
ADC时钟 ADC分频系数 禁止过采样(sps) 256x 过采样(sps)
16000000 1 727273 2841
16000000 2 363636 1420
16000000 4 181818 710
16000000 6 121212 473
16000000 8 90909 355
16000000 10 72727 284
16000000 12 60606 237
16000000 16 45455 178
16000000 32 22727 89
16000000 64 11364 44
采样时间 12.5
ADC时钟 ADC分频系数 禁止过采样(sps) 256x 过采样(sps)
16000000 1 592593 2315
16000000 2 296296 1157
16000000 4 148148 579
16000000 6 98765 386
16000000 8 74074 289
16000000 10 59259 231
16000000 12 49383 193
16000000 16 37037 145
16000000 32 18519 72
16000000 64 9259 36
采样时间 19.5
ADC时钟 ADC分频系数 禁止过采样(sps) 256x 过采样(sps)
16000000 1 470588 1838
16000000 2 235294 919
16000000 4 117647 460
16000000 6 78431 306
16000000 8 58824 230
16000000 10 47059 184
16000000 12 39216 153
16000000 16 29412 115
16000000 32 14706 57
16000000 64 7353 29
采样时间 39.5
ADC时钟 ADC分频系数 禁止过采样(sps) 256x 过采样(sps)
16000000 1 296296 1157
16000000 2 148148 579
16000000 4 74074 289
16000000 6 49383 193
16000000 8 37037 145
16000000 10 29630 116
16000000 12 24691 96
16000000 16 18519 72
16000000 32 9259 36
16000000 64 4630 18
采样时间 79.5
ADC时钟 ADC分频系数 禁止过采样(sps) 256x 过采样(sps)
16000000 1 170213 665
16000000 2 85106 332
16000000 4 42553 166
16000000 6 28369 111
16000000 8 21277 83
16000000 10 17021 66
16000000 12 14184 55
16000000 16 10638 42
16000000 32 5319 21
16000000 64 2660 10
采样时间 160.5
ADC时钟 ADC分频系数 禁止过采样(sps) 256x 过采样(sps)
16000000 1 91429 357
16000000 2 45714 179
16000000 4 22857 89
16000000 6 15238 60
16000000 8 11429 45
16000000 10 9143 36
16000000 12 7619 30
16000000 16 5714 22
16000000 32 2857 11
16000000 64 1429 6
最慢时候如果还开过采样,那么就只有6个采样每秒.虽然精度和时间达到了极高,但是速度也是醉了.

树莓派作为MCU的调试器(无线远程调试)

$
0
0
首先有一个树莓派,然后烧写一个系统,已经在2017-03-03和52Pi的64位系统上测试通过.性能差不多,估计受限于MCU端.下面截图来自2017-03-03镜像.(这次实现的功能呢得益于一些系统和openocd的更新,不要使用旧镜像) 远程调试有两种方法,第一个是远程的通过JLink等工具,第二种是树莓派GPIO做一个JTAG调试. 首先刷新一下软件列表:

安装一些必要软件.
sudo apt-get install git autoconf libtool make pkg-config libusb-1.0-0 libusb-1.0-0-dev
然后到这里是源码镜像,把代码clone下来.
git clone https://github.com/ntfreak/openocd

然后cd进去后执行bootstrap.途中还会下载东西,这时候你可以去做点不可描述.

配置让他支持GPIO调试,具体为什么可以实现,因为有驱动(相关代码src/jtag/drivers/bcm2835gpio.c)
./configure --enable-sysfsgpio --enable-bcm2835gpio
执行后如图.(失败情况可能是你系统太老,环境不全,没有update都查一下.)

然后执行make,sudo make install两步曲.当然编译画的时间比较多,刚开始特别快都来不及截图,到后面就大概卡这个位置,然后慢慢下去.

具体JTAG技术细节可以参考我之前文章.JTAG实现 我们关心PI3/PI2应该接在什么地方(文件统一是PI2)

可见SWCLK = 25 SWDIO = 24,RST = 18这里指的是BCM号.少部分MCU RST可不接,一般都要接.

然后我用GPIO连接了一下F4.并在任意位置执行了.
  sudo openocd -f interface/raspberrypi2-native.cfg -c "transport select swd; set WORKAREASIZE 0; adapter_nsrst_delay 100; adapter_nsrst_assert_width 100; source [find target/stm32f4x.cfg]" -c "init"

远程机器telnet 4444端口连接上去. 现在是2002kHz频率.

支持4061kHz频率.(然而知道JTAG原理这都是浮云.)

然后dump一下镜像.(这个dump在Pi上的.)

还可以重新烧写回去.不过速度就堪忧了.

通过JLink什么方法其实也大同小异.

如何选购一个STM32 Nucleo

$
0
0
我记得我很早接触到Nucleo的时候,价格都在一百多,虽然现在也没什么变化.算是最保值的板子了.截止到现在为止,官方已经有这么多板子了.

究竟买哪一个回去比较划算靠谱呢.这个我以前还真没算过. 当然不同板子价格不尽相同,但是差别不大,要知道差价都在MCU身上,而对于我们玩玩来说,当然是选更好的.(评估产品时候又选最便宜的,我真是个双标啊.) 今晚突然心血来潮,也是因为最近在选型芯片,顺手就搞点对比的东西吧.怎么对比,最简单应该就是画表格了.一般我们不关心工作温度.供电电压和低功耗(L系列就低功耗,说那么多干嘛.要实现低功耗还要断开103才行.),而且Nucleo全线不带加密功能和16位AD.不带加密不代表不能做加密算法,只要我们C模拟就是.而且全线配备两只看门狗,RTC和SysTick.

大图可以点开再看,按照ST的尿性,你不可能一个板子体验所有功能.那么最划算组合是怎样体验所有的. 首先,买一个NUCLEO-F767ZI,然后你还不能体验EEPROM,模拟比较器,段式液晶,内置运放,所以你可以再买一个NUCLEO-L152RE,为什么选他,这是最大EEPROM啊.最后可选一个NUCLEO-F334R8,这样高精度定时器也有了,全齐了.而且低功耗,高性能什么都体验了.平时就拿767出来吹风.有些时候用334,极少时候用152,我目前是这样的.当然我还有个L011,新鲜的.

最后,最后,超级大图,如果上面对比图看不清. Nucleo 对比高分辨率大图

得到一个蒲公英X6,爆破准备工作.

$
0
0
进这个肯定没压力。比较忙就先简单X一下。

dropbear明显有改装,不能启动的,上串口发现GND焊盘散热太好,不过最后还是搞定了。把mtd备份出来慢慢研究。

然后通过浏览器拉下来。

好像跟以前没什么区别,只开了Telnet,但是那个要登录费点功夫。

日志: [ 0.000000] Linux version 3.10.49 (cr@oray) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 1.0_160915-161517_unknown) ) #69 SMP Wed Mar 22 15:57:38 CST 2017 [ 0.000000] [ 0.000000] The CPU feqenuce set to 880 MHz [ 0.000000] GCMP present [ 0.000000] CPU0 revision is: 0001992f (MIPS 1004Kc) [ 0.000000] Software DMA cache coherency [ 0.000000] Determined physical RAM map: [ 0.000000] memory: 1c000000 @ 00000000 (usable) [ 0.000000] memory: 04000000 @ 20000000 (usable) [ 0.000000] Initrd not found or empty - disabling initrd [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x00000000-0x1fffffff] [ 0.000000] HighMem [mem 0x20000000-0x23ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x00000000-0x1bffffff] [ 0.000000] node 0: [mem 0x20000000-0x23ffffff] [ 0.000000] On node 0 totalpages: 131072 [ 0.000000] free_area_init_node: node 0, pgdat 80396000, node_mem_map 81000000 [ 0.000000] Normal zone: 1024 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 114688 pages, LIFO batch:31 [ 0.000000] HighMem zone: 128 pages used for memmap [ 0.000000] HighMem zone: 16384 pages, LIFO batch:3 [ 0.000000] Detected 3 available secondary CPU(s) [ 0.000000] Primary instruction cache 32kB, 4-way, VIPT, linesize 32 bytes. [ 0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes [ 0.000000] MIPS secondary cache 256kB, 8-way, linesize 32 bytes. [ 0.000000] PERCPU: Embedded 7 pages/cpu @81484000 s6720 r8192 d13760 u32768 [ 0.000000] pcpu-alloc: s6720 r8192 d13760 u32768 alloc=8*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048 [ 0.000000] Kernel command line: board=HCMT7621-S512 console=ttyS1,115200 rootfstype=squashfs,jffs2 [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) [ 0.000000] Writing ErrCtl register=00004822 [ 0.000000] Readback ErrCtl register=00004822 [ 0.000000] Memory: 514860k/458752k available (3047k kernel code, 9428k reserved, 704k data, 212k init, 65536k highmem) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] Hierarchical RCU implementation. [ 0.000000] NR_IRQS:128 [ 0.000000] console [ttyS1] enabled [ 0.130000] Calibrating delay loop... 577.53 BogoMIPS (lpj=2887680) [ 0.190000] pid_max: default: 32768 minimum: 301 [ 0.190000] Mount-cache hash table entries: 512 [ 0.200000] launch: starting cpu1 [ 0.200000] launch: cpu1 gone! [ 0.200000] Primary instruction cache 32kB, 4-way, VIPT, linesize 32 bytes. [ 0.200000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes [ 0.200000] MIPS secondary cache 256kB, 8-way, linesize 32 bytes. [ 0.200000] CPU1 revision is: 0001992f (MIPS 1004Kc) [ 0.260000] Synchronize counters for CPU 1: done. [ 0.270000] launch: starting cpu2 [ 0.270000] launch: cpu2 gone! [ 0.270000] Primary instruction cache 32kB, 4-way, VIPT, linesize 32 bytes. [ 0.270000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes [ 0.270000] MIPS secondary cache 256kB, 8-way, linesize 32 bytes. [ 0.270000] CPU2 revision is: 0001992f (MIPS 1004Kc) [ 0.330000] Synchronize counters for CPU 2: done. [ 0.340000] launch: starting cpu3 [ 0.340000] launch: cpu3 gone! [ 0.340000] Primary instruction cache 32kB, 4-way, VIPT, linesize 32 bytes. [ 0.340000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes [ 0.340000] MIPS secondary cache 256kB, 8-way, linesize 32 bytes. [ 0.340000] CPU3 revision is: 0001992f (MIPS 1004Kc) [ 0.400000] Synchronize counters for CPU 3: done. [ 0.410000] Brought up 4 CPUs [ 0.410000] NET: Registered protocol family 16 [ 0.420000] MIPS: machine is OrayBox X6-1293P [ 0.720000] release PCIe RST: RALINK_RSTCTRL = 7000000 [ 0.720000] PCIE PHY initialize [ 0.730000] ***** Xtal 40MHz ***** [ 0.730000] start MT7621 PCIe register access [ 1.320000] RALINK_RSTCTRL = 7000000 [ 1.330000] RALINK_CLKCFG1 = 77ffeff8 [ 1.330000] [ 1.330000] *************** MT7621 PCIe RC mode ************* [ 1.830000] PCIE2 no card, disable it(RST&CLK) [ 1.830000] pcie_link status = 0x3 [ 1.840000] RALINK_RSTCTRL= 3000000 [ 1.840000] *** Configure Device number setting of Virtual PCI-PCI bridge *** [ 1.850000] RALINK_PCI_PCICFG_ADDR = 21007f2 -> 21007f2 [ 1.850000] PCIE0 enabled [ 1.850000] PCIE1 enabled [ 1.860000] interrupt enable status: 300000 [ 1.860000] Port 1 N_FTS = 1b105000 [ 1.860000] Port 0 N_FTS = 1b105000 [ 1.870000] config reg done [ 1.870000] init_rt2880pci done [ 1.870000] FPU Affinity set after 11720 emulations [ 1.880000] bio: create slab <bio-0> at 0 [ 1.880000] i2c-gpio i2c-gpio.0: using pins 3 (SDA) and 4 (SCL) [ 1.890000] PCI host bridge to bus 0000:00 [ 1.890000] pci_bus 0000:00: root bus resource [mem 0x60000000-0x6fffffff] [ 1.900000] pci_bus 0000:00: root bus resource [io 0x1e160000-0x1e16ffff] [ 1.900000] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff] [ 1.910000] pci 0000:00:00.0: [0e8d:0801] type 01 class 0x060400 [ 1.910000] pci 0000:00:00.0: reg 10: [mem 0x00000000-0x7fffffff] [ 1.910000] pci 0000:00:00.0: reg 14: [mem 0x00000000-0x0000ffff] [ 1.910000] pci 0000:00:00.0: supports D1 [ 1.910000] pci 0000:00:00.0: PME# supported from D0 D1 D3hot [ 1.910000] pci 0000:00:01.0: [0e8d:0801] type 01 class 0x060400 [ 1.910000] pci 0000:00:01.0: reg 10: [mem 0x00000000-0x7fffffff] [ 1.910000] pci 0000:00:01.0: reg 14: [mem 0x00000000-0x0000ffff] [ 1.910000] pci 0000:00:01.0: supports D1 [ 1.910000] pci 0000:00:01.0: PME# supported from D0 D1 D3hot [ 1.910000] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring [ 1.910000] pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring [ 1.920000] pci 0000:01:00.0: [14c3:7603] type 00 class 0x028000 [ 1.920000] pci 0000:01:00.0: reg 10: [mem 0x00000000-0x000fffff] [ 1.920000] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold [ 1.920000] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01 [ 1.920000] pci 0000:02:00.0: [14c3:7662] type 00 class 0x028000 [ 1.920000] pci 0000:02:00.0: reg 10: [mem 0x00000000-0x000fffff 64bit] [ 1.920000] pci 0000:02:00.0: reg 30: [mem 0x00000000-0x0000ffff pref] [ 1.920000] pci 0000:02:00.0: PME# supported from D0 D3hot D3cold [ 1.920000] pci_bus 0000:02: busn_res: [bus 02-ff] end is updated to 02 [ 1.920000] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 02 [ 1.920000] pci 0000:00:00.0: BAR 0: can't assign mem (size 0x80000000) [ 1.920000] pci 0000:00:01.0: BAR 0: can't assign mem (size 0x80000000) [ 1.930000] pci 0000:00:00.0: BAR 8: assigned [mem 0x60000000-0x600fffff] [ 1.930000] pci 0000:00:01.0: BAR 8: assigned [mem 0x60100000-0x601fffff] [ 1.940000] pci 0000:00:01.0: BAR 9: assigned [mem 0x60200000-0x602fffff pref] [ 1.940000] pci 0000:00:00.0: BAR 1: assigned [mem 0x60300000-0x6030ffff] [ 1.950000] pci 0000:00:01.0: BAR 1: assigned [mem 0x60310000-0x6031ffff] [ 1.950000] pci 0000:01:00.0: BAR 0: assigned [mem 0x60000000-0x600fffff] [ 1.960000] pci 0000:00:00.0: PCI bridge to [bus 01] [ 1.960000] pci 0000:00:00.0: bridge window [mem 0x60000000-0x600fffff] [ 1.970000] pci 0000:02:00.0: BAR 0: assigned [mem 0x60100000-0x601fffff 64bit] [ 1.970000] pci 0000:02:00.0: BAR 6: assigned [mem 0x60200000-0x6020ffff pref] [ 1.980000] pci 0000:00:01.0: PCI bridge to [bus 02] [ 1.980000] pci 0000:00:01.0: bridge window [mem 0x60100000-0x601fffff] [ 1.990000] pci 0000:00:01.0: bridge window [mem 0x60200000-0x602fffff pref] [ 1.990000] PCI: Enabling device 0000:00:00.0 (0004 -> 0006) [ 2.000000] PCI: Enabling device 0000:00:01.0 (0004 -> 0006) [ 2.000000] BAR0 at slot 0 = 0 [ 2.000000] bus=0x0, slot = 0x0 [ 2.010000] BAR0 at slot 1 = 0 [ 2.010000] bus=0x0, slot = 0x1 [ 2.010000] bus=0x1, slot = 0x0, irq=0x4 [ 2.020000] bus=0x2, slot = 0x1, irq=0x18 [ 2.020000] Switching to clocksource MIPS [ 2.030000] NET: Registered protocol family 2 [ 2.030000] TCP established hash table entries: 4096 (order: 3, 32768 bytes) [ 2.040000] TCP bind hash table entries: 4096 (order: 3, 32768 bytes) [ 2.050000] TCP: Hash tables configured (established 4096 bind 4096) [ 2.050000] TCP: reno registered [ 2.060000] UDP hash table entries: 256 (order: 1, 8192 bytes) [ 2.060000] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes) [ 2.070000] NET: Registered protocol family 1 [ 2.070000] PCI: CLS 80 bytes, default 32 [ 2.300000] 4 CPUs re-calibrate udelay(lpj = 2924544) [ 2.310000] bounce pool size: 64 pages [ 2.320000] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 2.330000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 2.340000] msgmni has been set to 877 [ 2.340000] io scheduler noop registered [ 2.350000] io scheduler deadline registered (default) [ 2.350000] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled [ 2.360000] serial8250: ttyS0 at MMIO 0x1e000d00 (irq = 27) is a 16550A [ 2.370000] serial8250: ttyS1 at MMIO 0x1e000c00 (irq = 26) is a 16550A [ 2.380000] brd: module loaded [ 2.390000] flash manufacture id: c8, device id 40 18 [ 2.390000] chip info: gd25q128b(c8 4018c840) [ 2.400000] mtd name = raspi, size = 0x01000000 (16M) erasesize = 0x00010000 (64K) [ 2.440000] Creating 6 MTD partitions on "raspi": [ 2.440000] 0x000000000000-0x000000030000 : "u-boot" [ 2.450000] 0x000000030000-0x000000040000 : "kpanic" [ 2.450000] mtdoops: MTD partition 1 not big enough for mtdoops [ 2.460000] 0x000000040000-0x000000050000 : "factory" [ 2.460000] 0x000000fe0000-0x000000ff0000 : "bdinfo" [ 2.470000] 0x000000ff0000-0x000001000000 : "reserve" [ 2.480000] 0x000000050000-0x000000fe0000 : "firmware" [ 2.480000] 2 uimage-fw partitions found on MTD device firmware [ 2.490000] 0x000000050000-0x0000001b0000 : "kernel" [ 2.490000] 0x0000001b0000-0x000000fe0000 : "rootfs" [ 2.500000] mtd: device 7 (rootfs) set to be root filesystem [ 2.510000] mtd: partition "rootfs_data" created automatically, ofs=0xb00000, len=0x4e0000 [ 2.510000] 0x000000b00000-0x000000fe0000 : "rootfs_data" [ 2.520000] PROC INIT OK! [ 3.410000] rtc-pt7c4338 0-0068: rtc core: registered pt7c4338 as rtc0 [ 3.410000] i2c /dev entries driver [ 3.420000] Stopped WatchDog Timer. [ 3.420000] Ralink APSoC Hardware Watchdog Timer [ 3.420000] TCP: cubic registered [ 3.430000] NET: Registered protocol family 17 [ 3.430000] 8021q: 802.1Q VLAN Support v1.8 [ 4.320000] rtc-pt7c4338 0-0068: hctosys: unable to read the hardware clock [ 4.320000] UBIFS error (pid 1): ubifs_mount: cannot open "ubi0:rootfs", error -19 [ 4.330000] VFS: Mounted root (squashfs filesystem) readonly on device 31:7. [ 4.340000] Freeing unused kernel memory: 212K (803ab000 - 803e0000) [ 5.010000] Started WatchDog Timer. [ 6.680000] usbcore: registered new interface driver usbfs [ 6.690000] usbcore: registered new interface driver hub [ 6.690000] usbcore: registered new device driver usb [ 6.730000] SCSI subsystem initialized [ 6.740000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 6.750000] ehci-platform: EHCI generic platform driver [ 6.760000] libata version 3.00 loaded. [ 6.770000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [ 6.780000] *****run project phy. [ 6.810000] FM_OUT value: u4FmOut = 0(0x00000000) [ 6.830000] FM_OUT value: u4FmOut = 0(0x00000000) [ 6.850000] FM_OUT value: u4FmOut = 0(0x00000000) [ 6.870000] FM_OUT value: u4FmOut = 0(0x00000000) [ 6.890000] FM_OUT value: u4FmOut = 0(0x00000000) [ 6.910000] FM_OUT value: u4FmOut = 0(0x00000000) [ 6.930000] FM_OUT value: u4FmOut = 0(0x00000000) [ 6.950000] FM_OUT value: u4FmOut = 0(0x00000000) [ 6.970000] FM_OUT value: u4FmOut = 0(0x00000000) [ 6.990000] FM_OUT value: u4FmOut = 0(0x00000000) [ 7.050000] FM_OUT value: u4FmOut = 0(0x00000000) [ 7.070000] FM_OUT value: u4FmOut = 0(0x00000000) [ 7.090000] FM_OUT value: u4FmOut = 0(0x00000000) [ 7.110000] FM_OUT value: u4FmOut = 0(0x00000000) [ 7.130000] FM_OUT value: u4FmOut = 0(0x00000000) [ 7.150000] FM_OUT value: u4FmOut = 0(0x00000000) [ 7.170000] FM_OUT value: u4FmOut = 0(0x00000000) [ 7.190000] FM_OUT value: u4FmOut = 0(0x00000000) [ 7.210000] FM_OUT value: u4FmOut = 0(0x00000000) [ 7.230000] FM_OUT value: u4FmOut = 0(0x00000000) [ 7.380000] xhci-hcd xhci-hcd: xHCI Host Controller [ 7.380000] xhci-hcd xhci-hcd: new USB bus registered, assigned bus number 1 [ 7.390000] xhci-hcd xhci-hcd: irq 22, io mem 0x1e1c0000 [ 7.400000] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 7.400000] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 7.410000] usb usb1: Product: xHCI Host Controller [ 7.410000] usb usb1: Manufacturer: Linux 3.10.49 xhci-hcd [ 7.420000] usb usb1: SerialNumber: xhci-hcd [ 7.420000] xHCI xhci_add_endpoint called for root hub [ 7.420000] xHCI xhci_check_bandwidth called for root hub [ 7.420000] hub 1-0:1.0: USB hub found [ 7.430000] hub 1-0:1.0: 2 ports detected [ 7.430000] xhci-hcd xhci-hcd: xHCI Host Controller [ 7.440000] xhci-hcd xhci-hcd: new USB bus registered, assigned bus number 2 [ 7.440000] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003 [ 7.450000] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 7.460000] usb usb2: Product: xHCI Host Controller [ 7.460000] usb usb2: Manufacturer: Linux 3.10.49 xhci-hcd [ 7.470000] usb usb2: SerialNumber: xhci-hcd [ 7.470000] xHCI xhci_add_endpoint called for root hub [ 7.470000] xHCI xhci_check_bandwidth called for root hub [ 7.470000] hub 2-0:1.0: USB hub found [ 7.480000] hub 2-0:1.0: 1 port detected [ 7.490000] sdhci: Secure Digital Host Controller Interface driver [ 7.500000] sdhci: Copyright(c) Pierre Ossman [ 7.500000] sdhci-pltfm: SDHCI platform and OF driver helper [ 7.510000] usbcore: registered new interface driver usb-storage [ 7.870000] jffs2: notice: (372) jffs2_build_xattr_subsystem: complete building xattr subsystem, 25 of xdatum (0 unchecked, 24 orphan) and 40 of xref (0 dead, 25 orphan) found. [ 9.770000] NET: Registered protocol family 10 [ 9.790000] tun: Universal TUN/TAP device driver, 1.6 [ 9.790000] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com> [ 9.800000] l2tp_core: L2TP core driver, V2.0 [ 9.810000] l2tp_netlink: L2TP netlink interface [ 9.820000] exFAT: Version 1.2.9 [ 9.830000] gre: GRE over IPv4 demultiplexor driver [ 9.830000] ip_gre: GRE over IPv4 tunneling driver [ 9.860000] nf_conntrack version 0.5.0 (8048 buckets, 32192 max) [ 9.870000] ip6_tables: (C) 2000-2006 Netfilter Core Team [ 9.880000] Netfilter messages via NETLINK v0.30. [ 9.890000] ip_set: protocol 6 [ 9.920000] u32 classifier [ 9.930000] input device check on [ 9.930000] Actions configured [ 9.930000] Mirror/redirect action on [ 9.950000] fuse init (API version 7.22) [ 10.310000] MT7603E module init [ 10.320000] MT7603E AP Driver version-4.0.1.0 [ 10.940000] MT7612E module init [ 10.960000] MT76x2 AP Driver version-3.0.4.0.P1.20150909 [ 11.550000] MTK MSDC device init. [ 11.580000] msdc0 -> ================ <- msdc_set_mclk() : L<686> PID<kmodloader><0x38e> [ 11.580000] msdc0 -> !!! Set<400KHz> Source<50000KHz> -> sclk<390KHz> <- msdc_set_mclk() : L<687> PID<kmodloader><0x38e> [ 11.590000] msdc0 -> ================ <- msdc_set_mclk() : L<688> PID<kmodloader><0x38e> [ 11.620000] msdc0 -> ops_get_cd return<1> <- msdc_ops_get_cd() : L<2343> PID<kworker/u8:0><0x6> [ 11.620000] mtk-sd: MediaTek MT6575 MSDC Driver [ 11.620000] usbcore: registered new interface driver cdc_acm [ 11.620000] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters [ 11.620000] ip_tables: (C) 2000-2006 Netfilter Core Team [ 11.650000] msdc0 -> XXX MSDC_INT_SDIOIRQ <- msdc_irq() : L<2419> [ 11.650000] msdc0 -> XXX CMD<52> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.660000] msdc0 -> XXX CMD<52> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.670000] msdc0 -> XXX CMD<8> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.680000] msdc0 -> XXX CMD<5> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.690000] msdc0 -> XXX CMD<5> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.690000] msdc0 -> XXX CMD<5> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.690000] ctnetlink v0.93: registering with nfnetlink. [ 11.690000] nf_conntrack_rtsp v0.6.21 loading [ 11.710000] msdc0 -> XXX CMD<5> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.720000] msdc0 -> XXX CMD<55> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.720000] msdc0 -> XXX CMD<55> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.730000] msdc0 -> XXX CMD<55> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.740000] msdc0 -> XXX CMD<55> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.750000] msdc0 -> XXX CMD<1> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.750000] msdc0 -> set mclk to 0!!! <- msdc_set_mclk() : L<634> PID<kworker/u8:0><0x6> [ 11.760000] msdc0 -> set mclk to 0!!! <- msdc_set_mclk() : L<634> PID<kworker/u8:0><0x6> [ 11.800000] msdc0 -> ================ <- msdc_set_mclk() : L<686> PID<kworker/u8:0><0x6> [ 11.800000] msdc0 -> !!! Set<300KHz> Source<50000KHz> -> sclk<297KHz> <- msdc_set_mclk() : L<687> PID<kworker/u8:0><0x6> [ 11.810000] msdc0 -> ================ <- msdc_set_mclk() : L<688> PID<kworker/u8:0><0x6> [ 11.830000] nf_nat_rtsp v0.6.21 loading [ 11.840000] msdc0 -> XXX CMD<52> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.840000] usbcore: registered new interface driver usbserial [ 11.840000] msdc0 -> XXX CMD<52> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.850000] msdc0 -> XXX CMD<8> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.850000] msdc0 -> XXX CMD<5> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.850000] msdc0 -> XXX CMD<5> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.850000] msdc0 -> XXX CMD<5> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.850000] msdc0 -> XXX CMD<5> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.850000] msdc0 -> XXX CMD<55> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.850000] msdc0 -> XXX CMD<55> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.850000] msdc0 -> XXX CMD<55> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.850000] msdc0 -> XXX CMD<55> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.850000] msdc0 -> XXX CMD<1> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.850000] msdc0 -> set mclk to 0!!! <- msdc_set_mclk() : L<634> PID<kworker/u8:0><0x6> [ 11.850000] msdc0 -> set mclk to 0!!! <- msdc_set_mclk() : L<634> PID<kworker/u8:0><0x6> [ 11.870000] msdc0 -> ================ <- msdc_set_mclk() : L<686> PID<kworker/u8:0><0x6> [ 11.870000] msdc0 -> !!! Set<260KHz> Source<50000KHz> -> sclk<255KHz> <- msdc_set_mclk() : L<687> PID<kworker/u8:0><0x6> [ 11.870000] msdc0 -> ================ <- msdc_set_mclk() : L<688> PID<kworker/u8:0><0x6> [ 11.890000] msdc0 -> XXX CMD<52> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.890000] msdc0 -> XXX CMD<52> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.890000] msdc0 -> XXX CMD<8> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.890000] msdc0 -> XXX CMD<5> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.890000] msdc0 -> XXX CMD<5> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.890000] msdc0 -> XXX CMD<5> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.890000] msdc0 -> XXX CMD<5> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.890000] msdc0 -> XXX CMD<55> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.890000] msdc0 -> XXX CMD<55> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.890000] msdc0 -> XXX CMD<55> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.900000] msdc0 -> XXX CMD<55> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.900000] msdc0 -> XXX CMD<1> MSDC_INT_CMDTMO <- msdc_irq() : L<2487> [ 11.900000] msdc0 -> set mclk to 0!!! <- msdc_set_mclk() : L<634> PID<kworker/u8:0><0x6> [ 12.050000] usbcore: registered new interface driver usbserial_generic [ 12.060000] usbserial: USB Serial support registered for generic [ 12.090000] xt_time: kernel timezone is -0000 [ 12.110000] PPP generic driver version 2.4.2 [ 12.120000] PPP MPPE Compression module registered [ 12.120000] NET: Registered protocol family 24 [ 12.130000] PPTP driver version 0.8.5 [ 12.140000] l2tp_ppp: PPPoL2TP kernel driver, V2.0 [ 12.150000] usbcore: registered new interface driver option [ 12.150000] usbserial: USB Serial support registered for GSM modem (1-port) [ 15.200000] phy_free_head is 0x1ad42000!!! [ 15.200000] phy_free_tail_phy is 0x1ad43ff0!!! [ 15.200000] txd_pool=bad44000 phy_txd_pool=1AD44000 [ 15.210000] ei_local->skb_free start address is 0x9bd654c4. [ 15.220000] free_txd: bad44010, ei_local->cpu_ptr: 1AD44000 [ 15.220000] POOL HEAD_PTR | DMA_PTR | CPU_PTR [ 15.230000] ----------------+---------+-------- [ 15.230000] 0xbad44000 0x1AD44000 0x1AD44000 [ 15.230000] [ 15.230000] phy_qrx_ring = 0x1b5fa000, qrx_ring = 0xbb5fa000 [ 15.240000] [ 15.240000] phy_rx_ring0 = 0x1ad56000, rx_ring0 = 0xbad56000 [ 16.370000] ra2880stop()...Done [ 16.380000] Free TX/RX Ring Memory! [ 16.390000] phy_free_head is 0x1aee0000!!! [ 16.400000] phy_free_tail_phy is 0x1aee1ff0!!! [ 16.400000] txd_pool=ba854000 phy_txd_pool=1A854000 [ 16.410000] ei_local->skb_free start address is 0x9bd654c4. [ 16.410000] free_txd: ba854010, ei_local->cpu_ptr: 1A854000 [ 16.420000] POOL HEAD_PTR | DMA_PTR | CPU_PTR [ 16.420000] ----------------+---------+-------- [ 16.430000] 0xba854000 0x1A854000 0x1A854000 [ 16.430000] [ 16.430000] phy_qrx_ring = 0x1b3b5000, qrx_ring = 0xbb3b5000 [ 16.440000] [ 16.440000] phy_rx_ring0 = 0x1aed8000, rx_ring0 = 0xbaed8000 [ 16.470000] device eth0.1 entered promiscuous mode [ 16.470000] device eth0 entered promiscuous mode [ 16.480000] br-lan: port 1(eth0.1) entered forwarding state [ 16.480000] br-lan: port 1(eth0.1) entered forwarding state [ 18.480000] br-lan: port 1(eth0.1) entered forwarding state [ 19.430000] ethernet: port0 linkup(interrupt) [ 75.140000] ethernet: port2 linkup(interrupt) [ 84.290000] MT7621 GE2 link rate to 1G [ 84.290000] ethernet: port4 linkup(interrupt) [ 98.290000] nf_conntrack: automatic helper assignment is deprecated and it will be removed soon. Use the iptables CT target to attach helpers instead.

测试蒲公英X6千兆能力

$
0
0
刚拿到手,看到好多个千兆口表示超级震撼,然后拆机发现只是一个桥接芯片,主要是MT7621 CPU.而我的newifi 2也是MT7621 CPU,性能非常不错,千兆性能基本能到965Mbps内网传输.因为用的是安普的万兆网线,另外有万兆的两台服务器,刚好对测一下. 因为各种原因我就没插在相邻的口上.

一边启动服务器.

远程服务器不方便截图,但是可以在本机看得到.

表示这千兆性能很堪忧啊.

路由器文件宿主机解压

$
0
0
从蒲公英路由器上备份了好些文件下来,但是都不知道什么用途.因为他的ssh已经封了,每次从串口获取又不实际,所以想想别的办法吧.涉及底层操作用Windows自带的Bash是不行的.
root@tater-VirtualBox:~/tmp# ls
mtd0.bin  mtd2.bin  mtd4.bin  mtd6.bin  mtd8.bin
mtd1.bin  mtd3.bin  mtd5.bin  mtd7.bin
root@tater-VirtualBox:~/tmp# file mtd*
mtd0.bin: data
mtd1.bin: ISO-8859 text, with very long lines, with overstriking
mtd2.bin: data
mtd3.bin: data
mtd4.bin: ISO-8859 text, with very long lines, with no line terminators
mtd5.bin: u-boot legacy uImage, HCMT7621-S512, Linux/MIPS, OS Kernel Image (lzma), 1376964 bytes, Wed Mar 22 07:58:06 2017, Load Address: 0x80001000, Entry Point: 0x80001000, Header CRC: 0xC81EFC92, Data CRC: 0x698FC067
mtd6.bin: u-boot legacy uImage, HCMT7621-S512, Linux/MIPS, OS Kernel Image (lzma), 1376964 bytes, Wed Mar 22 07:58:06 2017, Load Address: 0x80001000, Entry Point: 0x80001000, Header CRC: 0xC81EFC92, Data CRC: 0x698FC067
mtd7.bin: Squashfs filesystem, little endian, version 4.0, 9720204 bytes, 1886 inodes, blocksize: 262144 bytes, created: Wed Mar 22 07:58:00 2017
mtd8.bin: Linux jffs2 filesystem data little endian
root@tater-VirtualBox:~/tmp#
可见系统只出现在mtd7.bin和mtd8.bin,而根据大小mtd7大于mtd8,所以mtd7才是路由的系统.

那mtd8是什么呢,挂载看看.
root@tater-VirtualBox:~/tmp# cat /proc/filesystems | grep jffs2
root@tater-VirtualBox:~/tmp# modprobe jffs2
root@tater-VirtualBox:~/tmp# modprobe mtdblock
root@tater-VirtualBox:~/tmp# modprobe mtdram total_size=122880
root@tater-VirtualBox:~/tmp# ls /dev/mtdblock?
/dev/mtdblock0
root@tater-VirtualBox:~/tmp# dd if=mtd8.bin of=/dev/mtdblock0
9984+0 records in
9984+0 records out
5111808 bytes (5.1 MB, 4.9 MiB) copied, 0.0123768 s, 413 MB/s
root@tater-VirtualBox:~/tmp# mkdir mtd8_mnt
root@tater-VirtualBox:~/tmp# mount -t jffs2 /dev/mtdblock0 mtd8_mnt/
root@tater-VirtualBox:~/tmp# ls mtd8_mnt/
etc  www
root@tater-VirtualBox:~/tmp#
看来只是一些配置.

内部文件列表:tree

树莓派体验DietPi

$
0
0
树莓派这个板子支持的东西可真多,比如DietPi是我最新发现的,非常流畅,很多老外不知道RPI怎么上手,用了他都说好.下面这个就是说我是个菜鸟,但是竟然会用这个东西.

我就试试,刚开始他提示这样.

然而有个BUG就是NTP竟然连接不上,看来得人工动刀.

系统最主要有个Launcher,有所有功能.

里面配置分割RAM也很明白,一下子就清楚.

想调整性能也是非常容易.

这竟然能超频,官方的都不行,奇怪吧.

让CPU 30%开始就睿频.

一些高级功能小白很难找到的,他都开发了.比如突破USB口到1.2A,I2C启动和串口启动.

而且非常智能根据我地区设置了语言.还可以轻松关闭WIFI,我就要这么节能.

IPV6使能.

特别为China还设计了,贴心.知道我们连接英国服务器慢,真是贴心.如果源也是开机选择就好了.

autostart的地方也比raspi-config多很多.

还有一些用户难题,比如如何备份系统,这里都给了很完善的答案.

运行久了可能产生垃圾,也给了解决方法.

小白以前都不懂.越用越卡,越卡越多东西,反正现在清理东西方便多了.

dietPi还有后台程序,所以还可以制定什么时候跑.

这是磁盘管理器?

简单任务管理器?

软件管理器,再也不担心如何安装,怎么配置了.

Web服务器可切换.默认是轻量的.

默认日志是丢掉的.对于一般用户,日志没什么用,SBC都是用来玩的而已,并不是用来做什么.

同样SSH,SAMBA OR FTP也是可选的.而且退出来发现也装了htop这些漂亮的工具.还写了个叫CPU的东西.

运行看看.

htop我一直用,很赞.

用户选配软件方面,有两种,一种是经过dietpi优化的,一种是自己的.我想先装个桌面环境,我比较喜欢MATE,就选它吧.

然后提示我会附带安装其他东西.没问题的.

然后现在还没安装,等全部选好了,选择下面GO就是.

安装过程就不用看了,小白看不懂,大师懒得看.我这种就随便看,当做没看到.(天朝网络问题,树莓派官方总是连不上.所以卡了卡),安装过程很漂亮的动画,可惜截图不下来啊.

安装一个桌面环境总体来说花了我大概60分钟,毕竟是个桌面环境啊(足足1.4G).但是天朝网络有时候就给你个ERROR.

然后提示用代理,很智能.

设置代理很方便,参数填进去,Apply一下,系统就走代理了.设置后会继续安装的.这次再失败,就不能自动重试了,当然可以人工再来.

LAMP无忧愁,还能连带配置HTTPS.

安装过程比较顺利,速度比较快,常规一些组件貌似也安装上了.福音啊.也提示我用户名是root,密码是dietpi.还有一些管理页面. http://dietpi.com/phpbb/viewtopic.php?f=8&t=5&start=10 默认还做好phpinfo页面.

还有APC页面.

OPCache:

但是phpMyAdmin不行,原来只支持LightHttpd,试着换过去.

更换OK并打开PMA

  总体来说:默认已经给配置好很好的选项,分辨率配置一步一步引导,适合小白.没多余工具,需要什么加什么,不冗余,所以性能就很好了.再高级一些,从上面修改处我们需要的样子.就非常棒了.另外软件很全,也不用怎么配置,非常方便.美中不足,NTP服务器竟然默认是错的.虽然自动选择时区后没问题了,但是第一次很慢啊.开机足足用了1分钟多.不过好像只是China才这样的?安装有些大软件时候没什么提示,也比较不爽.因为他安装过程加入了一个参数(-qq),不知道为什么,为了整洁吗?因为我这里获取archive.raspberry.org非常慢.什么都看不到我会以为他死机的.对我这种喜欢Mate但是不喜欢Ubuntu的也是很好的选择.另外安装软件的无脑重启呢,比较不爽,虽然这样肯定能保证没错,至少提示一下,我马上要重启,现在还是等下.有些安装根本不用重启啊.

最新树莓派镜像无论如何也不能校准触摸的解决办法

$
0
0
标题好长,可就是这样.因为新的RPI系统用了别的INPUT接管方式,没办法,回退呗. 原贴:https://www.raspberrypi.org/forums/viewtopic.php?t=179706&p=1143284
  • Install evdev package.
$ sudo apt-get install xserver-xorg-input-evdev
  • Make sure that /etc/X11/xorg.conf.d is empty.
  • Just be sure that evdev.conf has a higher number than 40-libinput.conf. For example, rename 10-evdev.conf to 45-evdev.conf. this forces evdev to load after libinput.
  • Finally, /usr/share/X11/xorg.conf.d should contain something like:
    10-quirks.conf 40-libinput.conf 45-evdev.conf 70-synaptics.conf 99-fbturbo.conf
  • Calibrate touchscreen.

撸蓝牙5 –开始玩NRF板子

$
0
0
没文档,没资料,一切思密达,第一个吃螃蟹肯定是这样的了.把能装的都装上.

最后只剩下个softdevice和SDK,估计跟TI CC3200的协议栈和程序一样,分开的.最重要应该是这里的东西了.

svd就是keil的寄存器信息表.我都用最新的keil,集成的,没卵用.

external就是第三方的中间件,我常用的FreeRTOS,FatFs,RTT都在这里,版本还挺新的.

documentation难道不是文档吗,看了想打人,原来文档都在这里. http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v13.0.0%2Findex.html

config里面就一个文件,就是SDK的配置,看来这里的文件重复利用率很高啊.(然而我并不喜欢,拷贝给别人时候还要好好看看依赖.)

components应该就是各个功能部件了,

example就是各种例子,例子太多了.

上手方法也有. https://www.nordicsemi.com/eng/Products/Getting-started-with-the-nRF52840-Preview-Development-Kit 基本没有难度.而且还额外提供了两个例子.

HRM演示.

NRF的文档虽然英文但是写的也还算简单. 万事开头难,点灯都难到我了.

原来没用到softdevice时候就不要存在softdevice的信息啊.到NRF STUDIO一刀搞定.

终于可以顺利点灯了.具体怎么实现,用BSP直接X就好了.

当然直接怒X P0寄存器也是可以的.

改了个寄存器怒X的四灯齐亮齐灭.

到后面玩要两个板子. 然后在列举目录时候讲到一个config的头文件,那个可读性虽然还可以,但其实真的不是人写的. CMSIS_Configuration_Wizard_v0.0.6

     

ODROID XU4 入坑体验报告(夜用超长版)

$
0
0
关于内核源码,官方WIKI就两个地址了.

一个是XU3,一个是XU4内核,根据官方描述,XU3-XU4是软件兼容的.

内核是软件吧.我拿了好多代码,分别是这些.看压缩包也知道哪个源来的.

其中linux-odroidxu3-3.10.y.zip,也是最老的,也是唯一一个默认配置下编译能运行的源.唯一一个.能运行还一大堆报错!我的FUCK!然后SPIDEV不知道哪里申请了,看不到,I2C也打不开,奇怪了.源码里面没申请掉啊. 然后镜像分官方和非官方,写在一起了,我都分不清哪个是官方的.

怪我自己,以为这么贵的板子系统肯定每个都好用,那其实不是啊.下面逐个测试.连接进本靠翻墙,国内是基本下载不来了.虽然部分是直链,但是迅雷没资源,还好迅雷支持代理服务器下载.最终也没造成太大影响.整个下载过程大概花了13个小时!我当初为什么觉得用这个板子都是基础不错,我手贱看了看谷歌..

对比下人家RPI.

XU4说的都是各种问题,RPI说的都是各种功能,这就是差别啊.怎么这么贵的东西还这么多BUG,难道我买的是NOTE 7不成?怪我当初没这么搜索过,我知在wiki看过.亚马逊也是一堆问题的.

说好的基本也是玩软件的.

观摩连接:https://www.amazon.com/ODROID-XU4-Single-Board-Computer-Heatsink/dp/B01ITXNCOU/ 当然肯定有可以Boot的系统,不然没法玩了,而且这个板子应该都是玩软件的,我猜.不然我也不知道这么坑的板子是如何活下去的.

我的测试环境:
电源:5V 4A电源 路由:newifi 2,MTK7621双核路由 千兆有线 PC:Windows 10 x64 TF卡:Lexar U1 蓝卡 网线:山泽CAT7 HDMI:索尼的不知道什么型号了.插电脑能显示.同时也使用52Pi 800*480 5寸屏测试. 串口调试:因为IO是1.8V的,暂无调试工具. 显示器:普通电脑监视器,1024*768的,贴牌.
第一个体验的系统是android-4.4.4-alpha-4.6-sd_installer-odroidxu3-20170413.img.

板子没有failsafe boot选项,所以默认bootmode也是不能自动切换的. HDMI不显示,为了证明没问题,这是个绝对的监视器,不是什么创客产品之类的.有EDID信息的. 网口灯常亮,IP没有获取成功.路由上也没任何DHCP请求信息.

测试失败,换用android-LineageOS-14.1-alpha-0.4-sd_installer-odroidxu3-20170207.img

显示同样失败,跟上一个效果是一样的.网络测试失败,一样是网口灯亮了而已.绿色灯从来没亮过.测试失败. 现在继续测试android-LineageOS-ATV-14.1-alpha-0.4-sd_installer-odroidxu3-2017-05-03.img 这么新的系统,还不行,我岂不是要吐血.

测试一样没显示,网卡没反应,只常亮一个灯,不过这次没显示有点差别了,其实是有信号上去的,就是不知道为什么这样.

测试依然失败告终.然后烧写Armbian_5.27_Odroidxu4_Debian_jessie_next_4.9.23.img armbian一直是很好的镜像,这个armbian是ODROID官网链接来的.以前测试各种OPI什么不好用,用armbian就可以解决.何况这个是odroid官网收录的,说不准更好呢.

armbian启动,HDMI显示更奇怪了.

此时路由也知道设备IP了.

根据我使用armbian的经验,应该是用户名root,密码1234啊,怎么会不对.

原来文件名是armbian而已,实际上不是啊,是OMV.是什么东西.还好我扫描了一下端口发现80是开的,一看发现了.

官方的下载链接有描述,太隐秘了好吗? https://sourceforge.net/projects/openmediavault/files/Odroid-XU3_XU4/ 竟然也是错的.

但是网页可以上.

瞎蒙到正确密码是openmediavault,用户名确实是root,wiki也害死人.

好像是个家用服务器.

在这系统上面肯定跑的就是纯软件了,但是我还是习惯查一下硬件资源.

可见CS1的SPI被注册成触摸屏,但是哪里触摸啊,我晕,这样一个结果导致我不能好好的使用TFT,因为我自己也要注册触摸屏,冲突驱动啊,I2C竟然还是从机来的.不知道其他I2C硬件资源有没有引出.硬件资源后面再说,我们知道系统识别到I2C1 I2C2 I2C4 I2C5. 既然是armbian的,我就比较放心了.应该有armbian-config,但是为什么这个配置进不去,死机了!

庆幸的是第一个可以进系统的.经过多种方法依然不明白为什么进入armbian-config会死机,先放弃了.进入会死机还用armbian干什么.如果这个也进入不了,resize rootfs这些功能哪里来. 接下来试试Kali系统.但是Kali官方构建系统也是说明没测试过的,只是基于官方安装了一些工具.所以我对这个还是有点怀疑.Kaili官方用测试树莓派可用来推导其他可用,不过一般也是没问题吧.

Kali系统因为比较大,所以烧写也有点长时间.反正要10分钟,先干点别的都可以. Kali网络获取到IP了.

但是显示不行.

SSH失败,估计没开.

没法测试!接着试试ubuntu-16.04-mate-odroid-xu3-20161011.img

显示不正常,就不拍图了.用户名密码也很隐秘.跟下载链接是完全分开的,而且找了好多网页才找到这个可用.http://odroid.com/dokuwiki/doku.php?id=en:xu3_ubuntu_release_note_20160708

查启动日志是3.10内核,一大堆错误啊.
[    0.000000] [c0] Booting Linux on physical CPU 0x100
[    0.000000] [c0] Initializing cgroup subsys cpuset
[    0.000000] [c0] Initializing cgroup subsys cpu
[    0.000000] [c0] Initializing cgroup subsys cpuacct
[    0.000000] [c0] Linux version 3.10.103-124 (root@1604_builder_armhf) (gcc ve                                                                                                                                                             rsion 4.9.3 (Ubuntu/Linaro 4.9.3-13ubuntu2) ) #1 SMP PREEMPT Tue Oct 11 11:51:06                                                                                                                                                              UTC 2016
[    0.000000] [c0] CPU: ARMv7 Processor [410fc073] revision 3 (ARMv7), cr=10c53                                                                                                                                                             87d
[    0.000000] [c0] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instr                                                                                                                                                             uction cache
[    0.000000] [c0] Machine: ODROID-XU3, model: Hardkernel odroid-xu3 board base                                                                                                                                                             d on EXYNOS5422
[    0.000000] [c0] ION: Contiguous 0x6650000 bytes @ 0x0 defined for 0:common
[    0.000000] [c0] ION: Contiguous 0x400000 bytes @ 0x0 defined for 2:mfc_sh
[    0.000000] [c0] ION: Contiguous 0x800000 bytes @ 0x0 defined for 10:g2d_wfd
[    0.000000] [c0] ION: Contiguous 0x6000000 bytes @ 0x0 defined for 11:video
[    0.000000] [c0] ION: Contiguous 0x1000000 bytes @ 0x0 defined for 7:mfc_inpu                                                                                                                                                             t
[    0.000000] [c0] ION: Contiguous 0x400000 bytes @ 0x0 defined for 9:sectbl
[    0.000000] [c0] ION: Contiguous 0x400000 bytes @ 0x0 defined for 8:mfc_fw
[    0.000000] [c0] ION: Contiguous 0x400000 bytes @ 0x0 defined for 12:mfc_nfw
[    0.000000] [c0] ION: Contiguous 0x400000 bytes @ 0x0 defined for 13:secdma
[    0.000000] [c0] cma: CMA: reserved 104 MiB at b8000000
[    0.000000] [c0] cma: CMA: reserved 4 MiB at b7c00000
[    0.000000] [c0] cma: CMA: reserved 8 MiB at b7400000
[    0.000000] [c0] cma: CMA: reserved 96 MiB at b1400000
[    0.000000] [c0] cma: CMA: reserved 16 MiB at b0400000
[    0.000000] [c0] cma: CMA: reserved 4 MiB at b0000000
[    0.000000] [c0] cma: CMA: reserved 4 MiB at afc00000
[    0.000000] [c0] cma: CMA: reserved 4 MiB at af800000
[    0.000000] [c0] cma: CMA: reserved 4 MiB at af400000
[    0.000000] [c0] cma: CMA: reserved 256 MiB at 5f800000
[    0.000000] [c0] Memory policy: ECC disabled, Data cache writealloc
[    0.000000] [c0] create_mapping_memory: section: 40000000 ~ 6f800000
[    0.000000] [c0] CPU EXYNOS5422 (id 0xe5422001)
[    0.000000] [c0] On node 0 totalpages: 518656
[    0.000000] [c0] free_area_init_node: node 0, pgdat c0992680, node_mem_map c0                                                                                                                                                             e03000
[    0.000000] [c0]   Normal zone: 1520 pages used for memmap
[    0.000000] [c0]   Normal zone: 0 pages reserved
[    0.000000] [c0]   Normal zone: 194560 pages, LIFO batch:31
[    0.000000] [c0]   HighMem zone: 2532 pages used for memmap
[    0.000000] [c0]   HighMem zone: 324096 pages, LIFO batch:31
[    0.000000] [c0] PERCPU: Embedded 9 pages/cpu @c1e11000 s14848 r8192 d13824 u                                                                                                                                                             36864
[    0.000000] [c0] pcpu-alloc: s14848 r8192 d13824 u36864 alloc=9*4096
[    0.000000] [c0] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [0] 4 [0] 5 [0] 6 [0] 7
[    0.000000] [c0] Built 1 zonelists in Zone order, mobility grouping on.  Tota                                                                                                                                                             l pages: 517136
[    0.000000] [c0] Kernel command line: console=tty1 console=ttySAC2,115200n8 r                                                                                                                                                             oot=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro fsck.repair=yes net.if                                                                                                                                                             names=0 smsc95xx.macaddr=00:1e:06:61:7a:39 governor=performance hdmi_tx_amp_lvl=                                                                                                                                                             31 hdmi_tx_lvl_ch0=3 hdmi_tx_lvl_ch1=3 hdmi_tx_lvl_ch2=3 hdmi_tx_emp_lvl=6 hdmi_                                                                                                                                                             clk_amp_lvl=31 hdmi_tx_res=0 HPD=true vout=hdmi
[    0.000000] [c0] hdmi: using HDMI Mode
[    0.000000] [c0] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] [c0] Dentry cache hash table entries: 131072 (order: 7, 524288 by                                                                                                                                                             tes)
[    0.000000] [c0] Inode-cache hash table entries: 65536 (order: 6, 262144 byte                                                                                                                                                             s)
[    0.000000] [c0] allocated 4149248 bytes of page_cgroup
[    0.000000] [c0] please try 'cgroup_disable=memory' option if you don't want                                                                                                                                                              memory cgroups
[    0.000000] [c0] Memory: 2026MB = 2026MB total
[    0.000000] [c0] Memory: 1516868k/1516868k available, 557756k reserved, 10465                                                                                                                                                             28K highmem
[    0.000000] [c0] Virtual kernel memory layout:
                   vector  : 0xffff0000 - 0xffff1000   (   4 kB)
                   fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
                   vmalloc : 0xf0000000 - 0xff000000   ( 240 MB)
                   lowmem  : 0xc0000000 - 0xef800000   ( 760 MB)
                   pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
                   modules : 0xbf000000 - 0xbfe00000   (  14 MB)
                     .text : 0xc0008000 - 0xc08b5ffc   (8888 kB)
                     .init : 0xc08b6000 - 0xc0920a00   ( 427 kB)
                     .data : 0xc0922000 - 0xc0998f10   ( 476 kB)
                      .bss : 0xc0998f10 - 0xc0e026b8   (4518 kB)
[    0.000000] [c0] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[    0.000000] [c0] Preemptible hierarchical RCU implementation.
[    0.000000] [c0] NR_IRQS:16 nr_irqs:16 16
[    0.000000] [c0] apll 800000000
[    0.000000] [c0] bpll 825000000
[    0.000000] [c0] cpll 666000000
[    0.000000] [c0] dpll 600000000
[    0.000000] [c0] epll 180633609
[    0.000000] [c0] rpll 66000000
[    0.000000] [c0] ipll 432000000
[    0.000000] [c0] spll 800000000
[    0.000000] [c0] dout_spll_ctrl_div2 400000000
[    0.000000] [c0] vpll 400000000
[    0.000000] [c0] mpll 532000000
[    0.000000] [c0] Clock enables : TOP, MIF
[    0.000000] [c0] mmc0: dout_mmc0 666000000
[    0.000000] [c0] mmc1: dout_mmc1 800000000
[    0.000000] [c0] mmc2: dout_mmc2 666000000
[    0.000000] [c0] scaler: dout_aclk_400_mscl 333000000 aclk_400_mscl 333000000
[    0.000000] [c0] [g2d_init_clock:319] aclk_333_g2d:333000000
[    0.000000] [c0] gscaler: dout_aclk_300_gscl 300000000 aclk_300_gscl 30000000                                                                                                                                                             0
[    0.000000] [c0] [jpeg_clock_init:374]jpeg: dout_aclk_300_jpeg 300000000 aclk                                                                                                                                                             _300_jpeg 300000000
[    0.000000] [c0] mfc: aclk_333 400000000
[    0.000000] [c0] Exynos5422: clock setup completed
[    0.000000] [c0] Exynos: pwm: clock setup completed
[    0.000000] [c0] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every                                                                                                                                                              178956ms
[    0.000000] [c0] Switching to timer-based delay loop
[    0.000000] [c0] EXYNOS5422 PMU Initialize
[    0.000000] [c0] Console: colour dummy device 80x30
[    0.000000] [c0] console [tty1] enabled
[    0.000000] [c0] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc.,                                                                                                                                                              Ingo Molnar
[    0.000000] [c0] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.000000] [c0] ... MAX_LOCK_DEPTH:          48
[    0.000000] [c0] ... MAX_LOCKDEP_KEYS:        8191
[    0.000000] [c0] ... CLASSHASH_SIZE:          4096
[    0.000000] [c0] ... MAX_LOCKDEP_ENTRIES:     16384
[    0.000000] [c0] ... MAX_LOCKDEP_CHAINS:      32768
[    0.000000] [c0] ... CHAINHASH_SIZE:          16384
[    0.000000] [c0]  memory used by lock dependency info: 3679 kB
[    0.000000] [c0]  per task-struct memory footprint: 1152 bytes
[    0.006837] [c0] Calibrating delay loop (skipped), value calculated using tim                                                                                                                                                             er frequency.. 48.00 BogoMIPS (lpj=120000)
[    0.006927] [c0] pid_max: default: 32768 minimum: 301
[    0.007402] [c0] Mount-cache hash table entries: 512
[    0.043489] [c0] Initializing cgroup subsys debug
[    0.043561] [c0] Initializing cgroup subsys memory
[    0.043671] [c0] Initializing cgroup subsys devices
[    0.043731] [c0] Initializing cgroup subsys freezer
[    0.043789] [c0] Initializing cgroup subsys blkio
[    0.043836] [c0] Initializing cgroup subsys perf_event
[    0.044089] [c0] CPU: Testing write buffer coherency: ok
[    0.044188] [c0] ftrace: allocating 22859 entries in 68 pages
[    0.093111] [c0] /cpus/cpu@0 missing clock-frequency property
[    0.093178] [c0] /cpus/cpu@1 missing clock-frequency property
[    0.093223] [c0] /cpus/cpu@2 missing clock-frequency property
[    0.093268] [c0] /cpus/cpu@3 missing clock-frequency property
[    0.093311] [c0] /cpus/cpu@4 missing clock-frequency property
[    0.093354] [c0] /cpus/cpu@5 missing clock-frequency property
[    0.093396] [c0] /cpus/cpu@6 missing clock-frequency property
[    0.093439] [c0] /cpus/cpu@7 missing clock-frequency property
[    0.093537] [c0] CPU0: thread -1, cpu 0, socket 1, mpidr 80000100
[    0.093743] [c0] Running under secure firmware.
[    0.093814] [c0] Setting up static identity map for 0xc06316b8 - 0xc0631710
[    0.093871] [c0] Exynos-SnapShot: exynos_ss_init failed
[    0.114238] [c0] ftrace: Allocated trace_printk buffers
[    0.135929] [c0] cpu1: SWRESET
[    0.136187] [c1] CPU1: Booted secondary processor
[    0.136217] [c1] CPU1: thread -1, cpu 1, socket 1, mpidr 80000101
[    0.145864] [c0] cpu2: SWRESET
[    0.146178] [c2] CPU2: Booted secondary processor
[    0.146204] [c2] CPU2: thread -1, cpu 2, socket 1, mpidr 80000102
[    0.155842] [c0] cpu3: SWRESET
[    0.156152] [c3] CPU3: Booted secondary processor
[    0.156180] [c3] CPU3: thread -1, cpu 3, socket 1, mpidr 80000103
[    0.165002] [c4] CPU4: Booted secondary processor
[    0.165882] [c4] CPU4: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.174993] [c5] CPU5: Booted secondary processor
[    0.175872] [c5] CPU5: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.185008] [c6] CPU6: Booted secondary processor
[    0.185890] [c6] CPU6: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.195006] [c7] CPU7: Booted secondary processor
[    0.195885] [c7] CPU7: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.196156] [c0] Brought up 8 CPUs
[    0.196468] [c0] SMP: Total of 8 processors activated (384.00 BogoMIPS).
[    0.196509] [c0] CPU: All CPU(s) started in HYP mode.
[    0.196543] [c0] CPU: Virtualization extensions available.
[    0.198953] [c0] devtmpfs: initialized
[    0.237333] [c6] sched: registering cpufreq notifiers for scale-invariant loa                                                                                                                                                             ds
[    0.239768] [c6] pinctrl core: initialized pinctrl subsystem
[    0.240835] [c6] regulator-dummy: no parameters
[    0.250621] [c6] NET: Registered protocol family 16
[    0.251233] [c5] DMA: preallocated 256 KiB pool for atomic coherent allocatio                                                                                                                                                             ns
[    0.258136] [c5] gpiochip_add: registered GPIOs 0 to 7 on device: gpy7
[    0.258314] [c5] gpiochip_add: registered GPIOs 8 to 15 on device: gpx0
[    0.258482] [c5] gpiochip_add: registered GPIOs 16 to 23 on device: gpx1
[    0.258648] [c5] gpiochip_add: registered GPIOs 24 to 31 on device: gpx2
[    0.258820] [c5] gpiochip_add: registered GPIOs 32 to 39 on device: gpx3
[    0.260736] [c5] gpiochip_add: registered GPIOs 40 to 47 on device: gpc0
[    0.260910] [c5] gpiochip_add: registered GPIOs 48 to 55 on device: gpc1
[    0.261111] [c5] gpiochip_add: registered GPIOs 56 to 62 on device: gpc2
[    0.261278] [c5] gpiochip_add: registered GPIOs 63 to 66 on device: gpc3
[    0.261449] [c5] gpiochip_add: registered GPIOs 67 to 68 on device: gpc4
[    0.261615] [c5] gpiochip_add: registered GPIOs 69 to 76 on device: gpd1
[    0.261779] [c5] gpiochip_add: registered GPIOs 77 to 82 on device: gpy0
[    0.261949] [c5] gpiochip_add: registered GPIOs 83 to 86 on device: gpy1
[    0.262122] [c5] gpiochip_add: registered GPIOs 87 to 92 on device: gpy2
[    0.262294] [c5] gpiochip_add: registered GPIOs 93 to 100 on device: gpy3
[    0.262461] [c5] gpiochip_add: registered GPIOs 101 to 108 on device: gpy4
[    0.262628] [c5] gpiochip_add: registered GPIOs 109 to 116 on device: gpy5
[    0.262808] [c5] gpiochip_add: registered GPIOs 117 to 124 on device: gpy6
[    0.264441] [c5] gpiochip_add: registered GPIOs 125 to 132 on device: gpe0
[    0.264617] [c5] gpiochip_add: registered GPIOs 133 to 134 on device: gpe1
[    0.264785] [c5] gpiochip_add: registered GPIOs 135 to 140 on device: gpf0
[    0.264952] [c5] gpiochip_add: registered GPIOs 141 to 148 on device: gpf1
[    0.265123] [c5] gpiochip_add: registered GPIOs 149 to 156 on device: gpg0
[    0.265289] [c5] gpiochip_add: registered GPIOs 157 to 164 on device: gpg1
[    0.265463] [c5] gpiochip_add: registered GPIOs 165 to 166 on device: gpg2
[    0.265636] [c5] gpiochip_add: registered GPIOs 167 to 170 on device: gpj4
[    0.267081] [c5] gpiochip_add: registered GPIOs 171 to 178 on device: gpa0
[    0.267271] [c5] gpiochip_add: registered GPIOs 179 to 184 on device: gpa1
[    0.267442] [c5] gpiochip_add: registered GPIOs 185 to 192 on device: gpa2
[    0.267617] [c5] gpiochip_add: registered GPIOs 193 to 197 on device: gpb0
[    0.267815] [c5] gpiochip_add: registered GPIOs 198 to 202 on device: gpb1
[    0.268009] [c5] gpiochip_add: registered GPIOs 203 to 206 on device: gpb2
[    0.268187] [c5] gpiochip_add: registered GPIOs 207 to 214 on device: gpb3
[    0.268360] [c5] gpiochip_add: registered GPIOs 215 to 216 on device: gpb4
[    0.268533] [c5] gpiochip_add: registered GPIOs 217 to 224 on device: gph0
[    0.270466] [c5] gpiochip_add: registered GPIOs 225 to 231 on device: gpz
[    0.290017] [c5] syscon 10040000.system-controller: regmap [mem 0x10040000-0x                                                                                                                                                             10044fff] registered
[    0.290510] [c5] syscon 10050000.syscon: regmap [mem 0x10050000-0x10054fff] r                                                                                                                                                             egistered
[    0.297981] [c5] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchp                                                                                                                                                             oint registers.
[    0.298028] [c5] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.300244] [c5] S3C Power Management, Copyright 2004 Simtec Electronics
[    0.304383] [c5] PM DOMAIN: pd-cam has a new child pd-isp.
[    0.305230] [c5] PM DOMAIN: pd-gscl has a new child pd-cam.
[    0.305277] [c5] EXYNOS5: PM Domain Initialize
[    0.305574] [c5]    pd-gscl   - on
[    0.305754] [c5]    pd-isp    - on
[    0.305932] [c5]    pd-mfc    - on
[    0.305993] [c5]    pd-g3d    - on,  always
[    0.306027] [c5]    pd-disp1  - on,  always
[    0.306212] [c5]    pd-maudio - on
[    0.306243] [c5]    pd-g2d    - on,  always
[    0.306427] [c5]    pd-mscl   - on
[    0.306460] [c5]    pd-fsys   - on,  always
[    0.306493] [c5]    pd-psgen  - on,  always
[    0.306526] [c5]    pd-peric  - on,  always
[    0.306558] [c5]    pd-wcore  - on,  always
[    0.306743] [c5]    pd-cam    - on
[    0.306781] [c5] EXYNOS: Initializing architecture
[    0.308273] [c5] exynos-sysmmu 10a60000.sysmmu: --> 10850000.fimg2d
[    0.308317] [c5] exynos-sysmmu 10a60000.sysmmu: [OK]
[    0.308660] [c5] exynos-sysmmu 10a70000.sysmmu: --> 10850000.fimg2d
[    0.308703] [c5] exynos-sysmmu 10a70000.sysmmu: [OK]
[    0.309050] [c5] exynos-sysmmu 14650000.sysmmu: --> 14450000.mixer
[    0.309091] [c5] exynos-sysmmu 14650000.sysmmu: [OK]
[    0.309414] [c5] exynos-sysmmu 13e80000.sysmmu: --> 13e00000.gsc
[    0.309454] [c5] exynos-sysmmu 13e80000.sysmmu: [OK]
[    0.309777] [c5] exynos-sysmmu 13e90000.sysmmu: --> 13e10000.gsc
[    0.309817] [c5] exynos-sysmmu 13e90000.sysmmu: [OK]
[    0.310148] [c5] exynos-sysmmu 12880000.sysmmu: --> 12800000.scaler
[    0.310189] [c5] exynos-sysmmu 12880000.sysmmu: [OK]
[    0.310525] [c5] exynos-sysmmu 12890000.sysmmu: --> 12810000.scaler
[    0.310566] [c5] exynos-sysmmu 12890000.sysmmu: [OK]
[    0.310903] [c5] exynos-sysmmu 128a0000.sysmmu: --> 12820000.scaler
[    0.310975] [c5] exynos-sysmmu 128a0000.sysmmu: [OK]
[    0.311312] [c5] exynos-sysmmu 128c0000.sysmmu: --> 12800000.scaler
[    0.311354] [c5] exynos-sysmmu 128c0000.sysmmu: [OK]
[    0.311682] [c5] exynos-sysmmu 128d0000.sysmmu: --> 12810000.scaler
[    0.311723] [c5] exynos-sysmmu 128d0000.sysmmu: [OK]
[    0.312053] [c5] exynos-sysmmu 128e0000.sysmmu: --> 12820000.scaler
[    0.312094] [c5] exynos-sysmmu 128e0000.sysmmu: [OK]
[    0.312415] [c5] exynos-sysmmu 11f10000.sysmmu: --> 11f50000.jpeg
[    0.312456] [c5] exynos-sysmmu 11f10000.sysmmu: [OK]
[    0.312789] [c5] exynos-sysmmu 11f20000.sysmmu: --> 11f60000.jpeg
[    0.312829] [c5] exynos-sysmmu 11f20000.sysmmu: [OK]
[    0.313141] [c5] exynos-sysmmu 11200000.sysmmu: --> 11000000.mfc
[    0.313180] [c5] exynos-sysmmu 11200000.sysmmu: [OK]
[    0.313489] [c5] exynos-sysmmu 11210000.sysmmu: --> 11000000.mfc
[    0.313528] [c5] exynos-sysmmu 11210000.sysmmu: [OK]
[    0.313880] [c5] exynos-sysmmu 14640000.sysmmu: --> 14400000.fimd
[    0.313920] [c5] exynos-sysmmu 14640000.sysmmu: [OK]
[    0.314269] [c5] exynos-sysmmu 14680000.sysmmu: --> 14400000.fimd
[    0.314309] [c5] exynos-sysmmu 14680000.sysmmu: [OK]
[    0.314750] [c5] CPU Info : Samsung Exynos5422 Soc is BIN1
[    0.314785] [c5] Exynos5422 ASV : Use Fusing Speed Group 4
[    0.314816] [c5] Exynos5422 ASV : invalid IDS value
[    0.314846] [c5] EXYNOS5422 ASV :  IDS : 0 HPM : 0
[    0.314908] [c5] VDD_ARM ASV group is 4
[    0.314939] [c5] VDD_KFC ASV group is 4
[    0.314969] [c5] VDD_INT ASV group is 4
[    0.314999] [c5] VDD_MIF ASV group is 4
[    0.315029] [c5] VDD_G3D ASV group is 4
[    0.315058] [c5] VDD_ISP ASV group is 4
[    0.328992] [c6] bio: create slab <bio-0> at 0
[    0.330756] [c6] of_get_named_gpio_flags exited with status 119
[    0.331035] [c6] VUSB_BOOST_5V: 5000 mV
[    0.331339] [c6] of_get_named_gpio_flags: can't parse gpios property
[    0.331562] [c6] MAIN_DC: no parameters
[    0.331827] [c6] of_get_named_gpio_flags: can't parse gpios property
[    0.332044] [c6] hdmi-en: no parameters
[    0.333186] [c6] SCSI subsystem initialized
[    0.333609] [c6] usbcore: registered new interface driver usbfs
[    0.333737] [c6] usbcore: registered new interface driver hub
[    0.333980] [c6] usbcore: registered new device driver usb
[    0.340028] [c7] vdd_mif: 700 <--> 1300 mV at 1100 mV
[    0.341300] [c7] vdd_eagle: 800 <--> 1500 mV at 1000 mV
[    0.342445] [c7] vdd_int: 800 <--> 1400 mV at 1000 mV
[    0.343592] [c7] vdd_g3d: 700 <--> 1400 mV at 1000 mV
[    0.344737] [c7] vdd_kfc: 800 <--> 1500 mV at 1025 mV
[    0.346515] [c7] vddf_2v85: 3300 mV
[    0.347805] [c7] vdd_adc: 1800 mV
[    0.349105] [c7] vdd_pll: 1800 mV
[    0.350455] [c7] vdd_ldo6: 1000 mV
[    0.351783] [c7] vdd_ldo7: 1800 mV
[    0.353072] [c7] vdd_ldo8: 1800 mV
[    0.354487] [c7] vdd_ldo9: 3300 mV
[    0.355782] [c7] vdd_ldo10: 1800 mV
[    0.357141] [c7] vdd_ldo11: 1000 mV
[    0.358243] [c7] vdd_ldo13: 1800 <--> 3300 mV at 3300 mV
[    0.359669] [c7] vdd_ldo15: 3300 mV
[    0.361158] [c7] vdd_eth: 3300 mV
[    0.362455] [c7] vdd_ldo18: 1850 mV
[    0.363558] [c7] vdd_ldo19: 2800 <--> 3300 mV at 3300 mV
[    0.364561] [c7] vdd_mifs: 800 <--> 1100 mV at 925 mV
[    0.365854] [c7] vdd_ldo26: 3000 mV
[    0.366879] [c7] vdd_g3ds: 800 <--> 1100 mV at 950 mV
[    0.368180] [c7] vdd_ldo28: 3300 mV
[    0.369472] [c7] vdd_ldo30: 3300 mV
[    0.372447] [c7] of_get_named_gpio_flags exited with status 177
[    0.372477] [c7] of_get_named_gpio_flags exited with status 178
[    0.373377] [c4] i2c-gpio i2c_gpio.8: using pins 177 (SDA) and 178 (SCL)
[    0.373535] [c4] media: Linux media interface: v0.10
[    0.373648] [c4] Linux video capture interface: v2.00
[    0.375682] [c5] IOVMMU: Created debugfs entry at debugfs/iovmm
[    0.376286] [c5] Advanced Linux Sound Architecture Driver Initialized.
[    0.376923] [c5] PM DOMAIN: pd-maudio, Device : 3810000.lpass Registered
[    0.376982] [c5] Samsung Low Power Audio Subsystem driver, (c)2013 Samsung El                                                                                                                                                             ectronics
[    0.378942] [c5] Loading modules backported from Linux version next-20150222-                                                                                                                                                             0-g53e418f1
[    0.378986] [c5] Backport integrated by backports.git backports-20150222-0-g2                                                                                                                                                             745ccd
[    0.380755] [c5] Switching to clocksource mct-frc
[    0.457404] [c5] NET: Registered protocol family 2
[    0.459225] [c5] TCP established hash table entries: 8192 (order: 4, 65536 by                                                                                                                                                             tes)
[    0.459726] [c5] TCP bind hash table entries: 8192 (order: 6, 294912 bytes)
[    0.461778] [c5] TCP: Hash tables configured (established 8192 bind 8192)
[    0.461916] [c5] TCP: reno registered
[    0.461963] [c5] UDP hash table entries: 512 (order: 3, 40960 bytes)
[    0.462261] [c5] UDP-Lite hash table entries: 512 (order: 3, 40960 bytes)
[    0.463320] [c5] NET: Registered protocol family 1
[    0.463851] [c5] Unpacking initramfs...
[    1.066499] [c5] Freeing initrd memory: 9216K (c2001000 - c2901000)
[    1.080143] [c5] bounce pool size: 64 pages
[    1.088882] [c5] VFS: Disk quotas dquot_6.5.2
[    1.089248] [c5] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    1.092192] [c5] ROMFS MTD (C) 2007 Red Hat, Inc.
[    1.092735] [c5] msgmni has been set to 1448
[    1.096954] [c5] Block layer SCSI generic (bsg) driver version 0.4 loaded (ma                                                                                                                                                             jor 250)
[    1.097409] [c6] io scheduler noop registered
[    1.097446] [c6] io scheduler deadline registered
[    1.097704] [c6] io scheduler cfq registered (default)
[    1.108992] [c6] dma-pl330 10800000.mdma: Loaded driver for PL330 DMAC-241330
[    1.109040] [c6] dma-pl330 10800000.mdma:    DBUFF-64x8bytes Num_Chans-8 Num_                                                                                                                                                             Peri-1 Num_Events-32
[    1.114892] [c6] dma-pl330 121a0000.pdma: Loaded driver for PL330 DMAC-241330
[    1.114939] [c6] dma-pl330 121a0000.pdma:    DBUFF-32x4bytes Num_Chans-8 Num_                                                                                                                                                             Peri-32 Num_Events-32
[    1.120687] [c6] dma-pl330 121b0000.pdma: Loaded driver for PL330 DMAC-241330
[    1.120733] [c6] dma-pl330 121b0000.pdma:    DBUFF-32x4bytes Num_Chans-8 Num_                                                                                                                                                             Peri-32 Num_Events-32
[    1.123839] [c6] dma-pl330 3880000.adma: Loaded driver for PL330 DMAC-241330
[    1.123884] [c6] dma-pl330 3880000.adma:     DBUFF-4x8bytes Num_Chans-6 Num_P                                                                                                                                                             eri-16 Num_Events-6
[    1.266588] [c6] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    1.269398] [c6] 12c00000.serial: ttySAC0 at MMIO 0x12c00000 (irq = 83) is a                                                                                                                                                              S3C6400/10
[    1.270239] [c6] 12c10000.serial: ttySAC1 at MMIO 0x12c10000 (irq = 84) is a                                                                                                                                                              S3C6400/10
[    1.271053] [c6] 12c20000.serial: ttySAC2 at MMIO 0x12c20000 (irq = 85) is a                                                                                                                                                              S3C6400/10
[    2.810134] [c6] console [ttySAC2] enabled
[    2.814888] [c6] 12c30000.serial: ttySAC3 at MMIO 0x12c30000 (irq = 86) is a                                                                                                                                                              S3C6400/10
[    2.824290] [c6] [drm] Initialized drm 1.1.0 20060810
[    2.831194] [c6] of_get_named_gpio_flags exited with status 39
[    2.835316] [c6] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    2.840963] [c6] [drm] No driver support for vblank timestamp query.
[    2.847299] [c6] exynos-mixer 14450000.mixer: probe start
[    2.852919] [c6] exynos-drm exynos-drm: bound 14450000.mixer (ops mixer_compo                                                                                                                                                             nent_ops)
[    2.860876] [c6] exynos-drm exynos-drm: bound 14530000.hdmi (ops hdmi_compone                                                                                                                                                             nt_ops)
[    2.937402] [c6] exynos-drm exynos-drm: No connectors reported connected with                                                                                                                                                              modes
[    2.943657] [c6] [drm] Cannot find any crtc or sizes - going 1024x768
[    2.960724] [c6] Console: switching to colour frame buffer device 128x48
[    2.973149] [c6] exynos-drm exynos-drm: fb0:  frame buffer device
[    2.979164] [c6] exynos-drm exynos-drm: registered panic notifier
[    2.985244] [c6] [drm] Initialized exynos 1.0.0 20110530 on minor 0
[    2.992083] [c6] mali 11800000.mali: Continuing without Mali clock control
[    3.001950] [c6] hrtimer: interrupt took 122250 ns
[    3.005861] [c6] mali 11800000.mali: GPU identified as 0x0620 r0p1 status 0
[    3.016199] mali 11800000.mali: Probed as mali0
[    3.027906] [c7] loop: module loaded
[    3.035075] [c7] of_get_named_gpio_flags exited with status 48
[    3.035102] [c7] of_get_named_gpio_flags exited with status 37
[    3.237711] [c7] of_get_named_gpio_flags exited with status 17
[    3.237737] [c7] of_get_named_gpio_flags exited with status 36
[    3.439246] [c7] dwc3 12400000.dwc3: dwc3_otg address space is not supported
[    3.446044] [c7] dwc3 12400000.dwc3: Binding gadget dwc3-gadget
[    3.451660] [c7] dwc3 12400000.dwc3: Turn on host
[    3.656584] [c7] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    3.662233] [c7] ehci-s5p: EHCI s5p driver
[    3.669808] [c7] of_get_named_gpio_flags exited with status 121
[    3.670076] [c7] s5p-ehci 12110000.usb: EHCI Host Controller
[    3.677733] [c7] s5p-ehci 12110000.usb: new USB bus registered, assigned bus                                                                                                                                                              number 1
[    3.687626] [c7] s5p-ehci 12110000.usb: irq 103, io mem 0x12110000
[    3.701014] [c7] s5p-ehci 12110000.usb: USB 2.0 started, EHCI 1.00
[    3.710450] [c7] hub 1-0:1.0: USB hub found
[    3.716401] [c7] hub 1-0:1.0: 3 ports detected
[    3.723901] [c7] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    3.732627] [c7] exynos-ohci 12120000.usb: EXYNOS OHCI Host Controller
[    3.740899] [c7] exynos-ohci 12120000.usb: new USB bus registered, assigned b                                                                                                                                                             us number 2
[    3.750755] [c7] exynos-ohci 12120000.usb: irq 103, io mem 0x12120000
[    3.816324] [c7] hub 2-0:1.0: USB hub found
[    3.822343] [c7] hub 2-0:1.0: 3 ports detected
[    3.829924] [c7] xhci-hcd xhci-hcd.2.auto: xHCI Host Controller
[    3.837419] [c7] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned b                                                                                                                                                             us number 3
[    3.847301] [c7] xhci-hcd xhci-hcd.2.auto: irq 104, io mem 0x12000000
[    3.856212] [c7] xHCI xhci_add_endpoint called for root hub
[    3.856229] [c7] xHCI xhci_check_bandwidth called for root hub
[    3.856506] [c7] hub 3-0:1.0: USB hub found
[    3.862242] [c7] hub 3-0:1.0: 1 port detected
[    3.868582] [c7] xhci-hcd xhci-hcd.2.auto: xHCI Host Controller
[    3.875989] [c7] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned b                                                                                                                                                             us number 4
[    3.886585] [c7] xHCI xhci_add_endpoint called for root hub
[    3.886602] [c7] xHCI xhci_check_bandwidth called for root hub
[    3.886888] [c7] hub 4-0:1.0: USB hub found
[    3.892518] [c7] hub 4-0:1.0: 1 port detected
[    3.898917] [c7] xhci-hcd xhci-hcd.5.auto: xHCI Host Controller
[    3.906269] [c7] xhci-hcd xhci-hcd.5.auto: new USB bus registered, assigned b                                                                                                                                                             us number 5
[    3.916053] [c7] xhci-hcd xhci-hcd.5.auto: irq 105, io mem 0x12400000
[    3.924728] [c7] xHCI xhci_add_endpoint called for root hub
[    3.924745] [c7] xHCI xhci_check_bandwidth called for root hub
[    3.925018] [c7] hub 5-0:1.0: USB hub found
[    3.930642] [c7] hub 5-0:1.0: 1 port detected
[    3.936780] [c7] xhci-hcd xhci-hcd.5.auto: xHCI Host Controller
[    3.943946] [c7] xhci-hcd xhci-hcd.5.auto: new USB bus registered, assigned b                                                                                                                                                             us number 6
[    3.954190] [c7] xHCI xhci_add_endpoint called for root hub
[    3.954206] [c7] xHCI xhci_check_bandwidth called for root hub
[    3.954501] [c7] hub 6-0:1.0: USB hub found
[    3.959884] [c7] hub 6-0:1.0: 1 port detected
[    3.966380] [c7] usbcore: registered new interface driver usb-storage
[    3.974235] [c7] usbcore: registered new interface driver usbserial
[    3.981761] [c7] usbcore: registered new interface driver usbserial_generic
[    3.989938] [c7] usbserial: USB Serial support registered for generic
[    3.998381] [c7] of_get_named_gpio_flags: can't parse gpios property
[    3.998402] [c7] exynos-usb-switch usb-switch.10: host detect gpio is not ava                                                                                                                                                             ilable
[    4.007212] [c7] of_get_named_gpio_flags: can't parse gpios property
[    4.007231] [c7] exynos-usb-switch usb-switch.10: device detect gpio is not a                                                                                                                                                             vailable
[    4.016176] [c7] of_get_named_gpio_flags: can't parse gpios property
[    4.016194] [c7] exynos-usb-switch usb-switch.10: vbus control gpio is not av                                                                                                                                                             ailable
[    4.025074] [c7] exynos-usb-switch usb-switch.10: failed to configure pins
[    4.033217] [c7] exynos-usb-switch usb-switch.10: udc device is not available
[    4.041554] [c7] exynos-usb-switch usb-switch.10: Disable device detect IRQ
[    4.071142] [c7] usb cable = 1
[    4.076215] [c7] mousedev: PS/2 mouse device common for all mice
[    4.086929] [c7] s2m-rtc s2m-rtc: s2m_rtc_enable_wtsr: enable WTSR
[    4.094463] [c7] s2m-rtc s2m-rtc: s2m_rtc_enable_smpl: enable SMPL
[    4.102112] [c7] s2m_rtc_enable_smpl: WTSR_SMPL(0xc7)
[    4.112535] [c7] s2m-rtc s2m-rtc: rtc core: registered s2m-rtc as rtc0
[    4.121057] [c7] i2c /dev entries driver
[    4.127339] [c7] IR NEC protocol handler initialized
[    4.133355] [c7] IR RC5(x) protocol handler initialized
[    4.139743] [c7] IR RC6 protocol handler initialized
[    4.145761] [c7] IR JVC protocol handler initialized
[    4.151682] [c7] IR Sony protocol handler initialized
[    4.157665] [c7] IR RC5 (streamzap) protocol handler initialized
[    4.164612] [c7] IR SANYO protocol handler initialized
[    4.170698] [c7] IR MCE Keyboard/mouse protocol handler initialized
[    4.176058] [c6] usb 3-1: new high-speed USB device number 2 using xhci-hcd
[    4.186393] [c7] PM DOMAIN: pd-mfc, Device : 11000000.mfc Registered
[    4.193785] [c7] s5p-mfc 11000000.mfc: exynos-iommu gpd_dev_ops inserted!
[    4.201671] [c7] s5p-mfc 11000000.mfc: s5p_mfc_probe()
[    4.201704] [c7] s5p-mfc 11000000.mfc: of alias get id : mfc-0
[    4.202491] [c7] s5p-mfc 11000000.mfc: decoder registered as /dev/video6
[    4.206612] [c6] hub 3-1:1.0: USB hub found
[    4.206956] [c6] hub 3-1:1.0: 2 ports detected
[    4.221180] [c7] s5p-mfc 11000000.mfc: encoder registered as /dev/video7
[    4.229327] [c7] s5p-mfc 11000000.mfc: IOVMM: IOVM SIZE = 0x40000000 B, IOVMM                                                                                                                                                              from 0x10000000.
[    4.239049] [c7] s5p-mfc 11000000.mfc: IOVMM: IOVM SIZE = 0x20000000 B, IOVMM                                                                                                                                                              from 0x50000000.
[    4.248715] [c7] s5p-mfc 11000000.mfc: IOVMM: IOVM SIZE = 0x10000000 B, IOVMM                                                                                                                                                              from 0x70000000.
[    4.258339] [c7] s5p-mfc 11000000.mfc: IOVMM: IOVM SIZE = 0x30000000 B, IOVMM                                                                                                                                                              from 0x80000000.
[    4.267916] [c7] s5p-mfc 11000000.mfc: IOVMM: IOVM SIZE = 0x20000000 B, IOVMM                                                                                                                                                              from 0xb0000000.
[    4.277422] [c7] s5p-mfc 11000000.mfc: IOVMM: IOVM SIZE = 0x10000000 B, IOVMM                                                                                                                                                              from 0xd0000000.
[    4.287869] [c7] ion_cma ion_mfc_nfw: Alread isolated!
[    4.293872] [c7] s5p_mfc_probe--
[    4.294197] [c7] S5P CEC for Exynos4 Driver, (c) 2009 Samsung Electronics
[    4.303658] [c7] TRIMINFO[0] = 0x806a31
[    4.308336] [c7] TMU_CONTROL[0] = 0x10609803
[    4.313458] [c7] CURRENT_TEMP[0] = 0x3e
[    4.318108] [c7] THRESHOLD_TEMP_RISE[0] = 0x86817c77
[    4.323932] [c7] THRESHOLD_TEMP_FALL[0] = 0x847f7a75
[    4.329757] [c7] INTEN[0] = 0x11111111
[    4.334356] [c7] INTCLEAR[0] = 0x0
[    4.338554] [c7] TRIMINFO[1] = 0x806b31
[    4.343141] [c7] TMU_CONTROL[1] = 0x10609803
[    4.348149] [c7] CURRENT_TEMP[1] = 0x40
[    4.352708] [c7] THRESHOLD_TEMP_RISE[1] = 0x86817c77
[    4.358423] [c7] THRESHOLD_TEMP_FALL[1] = 0x847f7a75
[    4.364114] [c7] INTEN[1] = 0x11111111
[    4.368552] [c7] INTCLEAR[1] = 0x0
[    4.372643] [c7] TRIMINFO[2] = 0x806c33
[    4.377103] [c7] TMU_CONTROL[2] = 0x10609803
[    4.382016] [c7] CURRENT_TEMP[2] = 0x3e
[    4.386475] [c7] THRESHOLD_TEMP_RISE[2] = 0x827d7873
[    4.392067] [c7] THRESHOLD_TEMP_FALL[2] = 0x807b7671
[    4.397605] [c7] INTEN[2] = 0x11111111
[    4.401907] [c7] INTCLEAR[2] = 0x0
[    4.405833] [c7] TRIMINFO[3] = 0x80682d
[    4.410189] [c7] TMU_CONTROL[3] = 0x10609803
[    4.415019] [c7] CURRENT_TEMP[3] = 0x34
[    4.419394] [c7] THRESHOLD_TEMP_RISE[3] = 0x7a75706b
[    4.424901] [c7] THRESHOLD_TEMP_FALL[3] = 0x78736e69
[    4.430374] [c7] INTEN[3] = 0x11111111
[    4.434604] [c7] INTCLEAR[3] = 0x0
[    4.438462] [c7] TRIMINFO[4] = 0x806125
[    4.442776] [c7] TMU_CONTROL[4] = 0x10609803
[    4.447405] [c7] CURRENT_TEMP[4] = 0x40
[    4.451582] [c7] THRESHOLD_TEMP_RISE[4] = 0x88837e79
[    4.456871] [c7] THRESHOLD_TEMP_FALL[4] = 0x86817c77
[    4.462166] [c7] INTEN[4] = 0x11111111
[    4.466199] [c7] INTCLEAR[4] = 0x0
[    4.471277] [c7] s3c2410-wdt 101d0000.watchdog: watchdog inactive, reset disa                                                                                                                                                             bled, irq disabled
[    4.481245] [c7] device-mapper: uevent: version 1.0.3
[    4.487392] [c7] device-mapper: ioctl: 4.24.0-ioctl (2013-01-15) initialised:                                                                                                                                                              dm-devel@redhat.com
[    4.497747] [c7] cpuidle: using governor ladder
[    4.504565] [c7] cpuidle: using governor menu
[    4.509568] [c7] Synopsys Designware Multimedia Card Interface Driver
[    4.517659] [c7] dwmmc_exynos 12200000.dwmmc0: Clock pin control Pin:gpc0-0 A                                                                                                                                                             ddr:13410000.pinctrl Val:3 Num:4
[    4.528360] of_get_named_gpio_flags exited with status 69
[    4.528406] [c7] dwmmc_exynos 12200000.dwmmc0: dw_mci_parse_dt : emmc h/w res                                                                                                                                                             et gpio[69] notifier registered.
[    4.539107] [c7] dwmmc_exynos 12200000.dwmmc0: Using internal DMA controller.
[    4.546940] [c7] dwmmc_exynos 12200000.dwmmc0: FIFOTH: 0x 300f0030
[    4.553786] dwmmc_exynos 12200000.dwmmc0: Version ID is 250a
[    4.560573] [c7] dwmmc_exynos 12200000.dwmmc0: DW MMC controller at irq 107,                                                                                                                                                              64 bit host data width, 64 deep fifo
[    4.591045] [c7] mmc_host mmc0: Bus speed (slot 0) = 20812500Hz (slot req 400                                                                                                                                                             000Hz, actual 385416HZ div = 27)
[    4.616191] [c7] dwmmc_exynos 12200000.dwmmc0: 1 slots initialized
[    4.621230] [c4] usb 6-1: new SuperSpeed USB device number 2 using xhci-hcd
[    4.631491] [c0] 12200000.dwmmc0: no interrupts handled, pending 00000000 000                                                                                                                                                             00000
[    4.631868] [c7] dwmmc_exynos 12220000.dwmmc2: Clock pin control Pin:gpc2-0 A                                                                                                                                                             ddr:13410000.pinctrl Val:3 Num:3
[    4.631949] of_get_named_gpio_flags: can't parse gpios property
[    4.632048] [c7] dwmmc_exynos 12220000.dwmmc2: Using internal DMA controller.
[    4.632061] [c7] dwmmc_exynos 12220000.dwmmc2: FIFOTH: 0x 300f0030
[    4.632071] dwmmc_exynos 12220000.dwmmc2: Version ID is 250a
[    4.632471] [c7] dwmmc_exynos 12220000.dwmmc2: DW MMC controller at irq 109,                                                                                                                                                              64 bit host data width, 64 deep fifo
[    4.632832] [c7] mmc1: vmmc regulator found
[    4.632983] [c7] mmc1: vqmmc regulator found
[    4.651023] [c7] mmc_host mmc1: Bus speed (slot 0) = 20812500Hz (slot req 400                                                                                                                                                             000Hz, actual 385416HZ div = 27)
[    4.666241] [c7] dwmmc_exynos 12220000.dwmmc2: 1 slots initialized
[    4.667344] [c7] leds-gpio leds.15: pins are not configured from the driver
[    4.667376] [c7] of_get_named_gpio_flags exited with status 205
[    4.667393] [c7] of_get_named_gpio_flags exited with status 204
[    4.667408] [c7] of_get_named_gpio_flags exited with status 27
[    4.667429] [c7] of_get_named_gpio_flags exited with status 205
[    4.667742] [c7] of_get_named_gpio_flags exited with status 204
[    4.667977] [c7] of_get_named_gpio_flags exited with status 27
[    4.668585] [c7] ledtrig-cpu: registered to indicate activity on CPUs
[    4.668641] [c7] S5P ACE Driver(SLIMSSS), (c) 2013 Samsung Electronics
[    4.669412] [c7] ACE: ecb-aes-s5p-ace
[    4.669731] [c7] ACE: cbc-aes-s5p-ace
[    4.670042] [c7] ACE: ctr-aes-s5p-ace
[    4.670331] [c7] ACE: xts-aes-s5p-ace
[    4.670642] [c7] ACE: sha1-s5p-ace
[    4.670974] [c7] ACE: sha256-s5p-ace
[    4.670980] [c7] ACE driver is initialized
[    4.671278] [c7] hidraw: raw HID events driver (C) Jiri Kosina
[    4.671692] [c7] usbcore: registered new interface driver usbhid
[    4.671697] [c7] usbhid: USB HID core driver
[    4.672579] [c7] exynos-adc 12d10000.adc: operating without regulator vdd[-19                                                                                                                                                             ]
[    4.673149] [c7] exynos-adc 12d10000.adc: Probed successfully driver.
[    4.674025] [c7] odroid-fan odroid_fan.14: unable to request PWM, trying lega                                                                                                                                                             cy API
[    4.674175] [c7] pwm-samsung: tin parent at 66600000
[    4.676431] [c7] of_get_named_gpio_flags exited with status 34
[    4.678288] [c7] lpass_register_subip: i2s(de365010) registered
[    4.917431] [c4] usb 6-1: Parent hub missing LPM exit latency info.  Power ma                                                                                                                                                             nagement will be impacted.
[    4.941082] [c6] mmc_host mmc0: Bus speed (slot 0) = 20812500Hz (slot req 300                                                                                                                                                             000Hz, actual 297321HZ div = 35)
[    5.011025] [c6] mmc_host mmc0: Bus speed (slot 0) = 20812500Hz (slot req 200                                                                                                                                                             000Hz, actual 196344HZ div = 53)
[    5.086037] [c6] mmc_host mmc0: Bus speed (slot 0) = 20812500Hz (slot req 100                                                                                                                                                             000Hz, actual 99107HZ div = 105)
[    5.259477] [c6] mmc_host mmc1: Bus speed (slot 0) = 83250000Hz (slot req 400                                                                                                                                                             000Hz, actual 396428HZ div = 105)
[    5.271281] [c6] mmc_host mmc1: Bus speed (slot 0) = 83250000Hz (slot req 832                                                                                                                                                             50000Hz, actual 83250000HZ div = 0)
[    5.285145] [c0] dwmmc_exynos 12220000.dwmmc2: data CRC error
[    5.295660] [c6] mmc_host mmc1: Tuning error: cmd.error:0, data.error:-84
[    5.305269] [c6] dwmmc_exynos 12220000.dwmmc2: divratio: 3 map: 0x 0000fdff
[    5.313925] [c6] dwmmc_exynos 12220000.dwmmc2: sample_good: 0x fdff best_samp                                                                                                                                                             le: 0x 00
[    5.323609] [c6] mmc1: new ultra high speed SDR50 SDHC card at address aaaa
[    5.333415] [c6] mmcblk0: mmc1:aaaa SL08G 7.40 GiB
[    5.342378] [c6]  mmcblk0: p1 p2
[    5.366011] [c6] mmc_host mmc0: Bus speed (slot 0) = 20812500Hz (slot req 400                                                                                                                                                             000Hz, actual 385416HZ div = 27)
[    5.431038] [c6] mmc_host mmc0: Bus speed (slot 0) = 20812500Hz (slot req 300                                                                                                                                                             000Hz, actual 297321HZ div = 35)
[    5.501061] [c5] mmc_host mmc0: Bus speed (slot 0) = 20812500Hz (slot req 200                                                                                                                                                             000Hz, actual 196344HZ div = 53)
[    5.576035] [c5] mmc_host mmc0: Bus speed (slot 0) = 20812500Hz (slot req 100                                                                                                                                                             000Hz, actual 99107HZ div = 105)
[    5.675996] [c7] exynos5-hsi2c 12cb0000.hsi2c: Register dump(suspended : 0)
               : CTL          0x00000089
               : FIFO_CTL     0x00200203
               : TRAILING_CTL 0x0000000f
               : CLK_CTL      0x00000000
               : CLK_SLOT     0x00000000
               : INT_EN       0x00000000
               : INT_STAT     0x00000000
               : ERR_STAT     0x00000000
               : FIFO_STAT    0x01000002
               : TXDATA       0xdeadbeaf
               : RXDATA       0x00000000
               : CONF         0xb00300ff
               : AUTO_CONF    0x00020002
               : TIMEOUT      0x000000ff
               : MANUAL_CMD   0x00000000
               : TRANS_STAT   0x00000000
               : TIMING_HS1   0x4b4b4b00
               : TIMING_HS2   0x25004b4b
               : TIMING_HS3   0x00000096
               : TIMING_FS1   0x4b4b4b00
               : TIMING_FS2   0x25004b4b
               : TIMING_FS3   0x00000096
               : TIMING_SLA   0x00000025
               : ADDR         0x00004000
[    5.819745] [c7] exynos5-hsi2c 12cb0000.hsi2c: tx timeout
[    6.820996] [c7] exynos5-hsi2c 12cb0000.hsi2c: Register dump(suspended : 0)
               : CTL          0x00000089
               : FIFO_CTL     0x00200203
               : TRAILING_CTL 0x0000000f
               : CLK_CTL      0x00000000
               : CLK_SLOT     0x00000000
               : INT_EN       0x00000000
               : INT_STAT     0x00000000
               : ERR_STAT     0x00000000
               : FIFO_STAT    0x01000002
               : TXDATA       0xdeadbeaf
               : RXDATA       0x00000000
               : CONF         0xb00300ff
               : AUTO_CONF    0x00020002
               : TIMEOUT      0x000000ff
               : MANUAL_CMD   0x00000000
               : TRANS_STAT   0x00000000
               : TIMING_HS1   0x4b4b4b00
               : TIMING_HS2   0x25004b4b
               : TIMING_HS3   0x00000096
               : TIMING_FS1   0x4b4b4b00
               : TIMING_FS2   0x25004b4b
               : TIMING_FS3   0x00000096
               : TIMING_SLA   0x00000025
               : ADDR         0x00004000
[    6.940686] [c7] exynos5-hsi2c 12cb0000.hsi2c: tx timeout
[    6.945755] [c7] exynos5-hsi2c 12cb0000.hsi2c: xfer message failed
[    6.951864] [c7] max98090 1-0010: Failed to reset codec: -5
[    6.957439] [c7] max98090 1-0010: Failed to device reset : -5
[    6.963171] [c7] max98090 1-0010: ASoC: failed to probe CODEC -5
[    6.969412] [c7] odroid-audio sound.13: ASoC: failed to instantiate card -5
[    6.976530] [c7] odroid-audio sound.13: snd_soc_register_card() failed(max980                                                                                                                                                             90): -5
[    6.985072] [c7] dummy-codec dummy-codec.11: ASoC: Failed to create Capture d                                                                                                                                                             ebugfs file
[    6.993089] [c7] dummy-codec dummy-codec.11: ASoC: Failed to create Playback                                                                                                                                                              debugfs file
[    7.001234] [c7] dummy-codec dummy-codec.11: ASoC: Failed to create Capture d                                                                                                                                                             ebugfs file
[    7.009344] [c7] dummy-codec dummy-codec.11: ASoC: Failed to create Playback                                                                                                                                                              debugfs file
[    7.017483] [c7] dummy-codec dummy-codec.11: ASoC: Failed to create Capture d                                                                                                                                                             ebugfs file
[    7.025569] [c7] dummy-codec dummy-codec.11: ASoC: Failed to create Playback                                                                                                                                                              debugfs file
[    7.034536] [c7] odroid-audio sound.13:  dummy-aif1 <-> samsung-i2s-sec mappi                                                                                                                                                             ng ok
[    7.043078] [c7] odroid-audio sound.13:  dummy-aif2 <-> 3830000.i2s mapping o                                                                                                                                                             k
[    7.053546] [c7] Netfilter messages via NETLINK v0.30.
[    7.059519] [c7] arp_tables: (C) 2002 David S. Miller
[    7.064898] [c7] TCP: cubic registered
[    7.068748] [c7] Initializing XFRM netlink socket
[    7.074342] [c7] NET: Registered protocol family 10
[    7.081087] [c7] NET: Registered protocol family 17
[    7.086101] [c7] NET: Registered protocol family 15
[    7.091100] [c7] NET: Registered protocol family 35
[    7.096493] [c7] VFP support v0.3: implementor 41 architecture 4 part 30 vari                                                                                                                                                             ant f rev 0
[    7.104771] [c7] Registering SWP/SWPB emulation handler
[    7.110223] [c7] SRAM ASV group [4] : MIF(925000), G3D(950000)
[    7.122026] [c7] registered taskstats version 1
[    7.127111] [c7] hdmi-en: disabling
[    7.130877] [c7] MAIN_DC: disabling
[    7.134705] [c7] regulator-dummy: disabling
[    7.140238] [c7] of_get_named_gpio_flags exited with status 11
[    7.140368] [c7] gpiod_set_debounce: gpio-11 status -22
[    7.140852] [c7] input: gpio_keys.7 as /devices/gpio_keys.7/input/input0
[    7.150482] [c7] s2m-rtc s2m-rtc: setting system clock to 2016-02-11 16:28:38                                                                                                                                                              UTC (1455208118)
[    7.159691] [c7] CPUFREQ of CA7  L0 : 1300000 uV
[    7.164894] [c7] CPUFREQ of CA7  L0 : ABB 8
[    7.169649] [c7] CPUFREQ of CA7  L1 : 1287500 uV
[    7.174850] [c7] CPUFREQ of CA7  L1 : ABB 4
[    7.179608] [c7] CPUFREQ of CA7  L2 : 1225000 uV
[    7.184821] [c7] CPUFREQ of CA7  L2 : ABB 4
[    7.189595] [c7] CPUFREQ of CA7  L3 : 1175000 uV
[    7.194822] [c7] CPUFREQ of CA7  L3 : ABB 4
[    7.199618] [c7] CPUFREQ of CA7  L4 : 1125000 uV
[    7.204861] [c7] CPUFREQ of CA7  L4 : ABB 4
[    7.209672] [c7] CPUFREQ of CA7  L5 : 1087500 uV
[    7.214890] [c7] CPUFREQ of CA7  L5 : ABB 4
[    7.219655] [c7] CPUFREQ of CA7  L6 : 1050000 uV
[    7.224816] [c7] CPUFREQ of CA7  L6 : ABB 4
[    7.229530] [c7] CPUFREQ of CA7  L7 : 1012500 uV
[    7.234661] [c7] CPUFREQ of CA7  L7 : ABB 4
[    7.239308] [c7] CPUFREQ of CA7  L8 : 975000 uV
[    7.244262] [c7] CPUFREQ of CA7  L8 : ABB 255
[    7.248972] [c7] CPUFREQ of CA7  L9 : 937500 uV
[    7.253847] [c7] CPUFREQ of CA7  L9 : ABB 255
[    7.258529] [c7] CPUFREQ of CA7  L10 : 900000 uV
[    7.263465] [c7] CPUFREQ of CA7  L10 : ABB 255
[    7.268211] [c7] CPUFREQ of CA7  L11 : 900000 uV
[    7.273123] [c7] CPUFREQ of CA7  L11 : ABB 255
[    7.277787] [c7] CPUFREQ of CA7  L12 : 900000 uV
[    7.282614] [c7] CPUFREQ of CA7  L12 : ABB 255
[    7.287203] [c7] CPUFREQ of CA7  L13 : 900000 uV
[    7.291942] [c7] CPUFREQ of CA7  L13 : ABB 255
[    7.296470] [c7] CPUFREQ of CA7  L14 : 900000 uV
[    7.301154] [c7] CPUFREQ of CA7  L14 : ABB 255
[    7.305909] [c7] kfc clock[800000], mx_mspll clock[666000]
[    7.311508] [c7] [SET_EMA_TEST] volt : 887500  value : 0x44
[    7.317225] [c7] [SET_EMA_TEST] volt : 937500  value : 0x44
[    7.322944] [c7] [SET_EMA_TEST] volt : 1032500  value : 0x33
[    7.328698] [c7] [SET_EMA_TEST] volt : 1142500  value : 0x11
[    7.334376] [c7] [SET_EMA_TEST] volt : 1167500  value : 0x11
[    7.340012] [c7] CPUFREQ of CA15 L0 : 1362500 uV
[    7.344594] [c7] CPUFREQ of CA15  L0 : ABB 8
[    7.348823] [c7] CPUFREQ of CA15 L1 : 1362500 uV
[    7.353432] [c7] CPUFREQ of CA15  L1 : ABB 8
[    7.357664] [c7] CPUFREQ of CA15 L2 : 1362500 uV
[    7.362226] [c7] CPUFREQ of CA15  L2 : ABB 8
[    7.366405] [c7] CPUFREQ of CA15 L3 : 1325000 uV
[    7.370879] [c7] CPUFREQ of CA15  L3 : ABB 255
[    7.375366] [c7] CPUFREQ of CA15 L4 : 1275000 uV
[    7.379974] [c7] CPUFREQ of CA15  L4 : ABB 255
[    7.384406] [c7] CPUFREQ of CA15 L5 : 1200000 uV
[    7.389006] [c7] CPUFREQ of CA15  L5 : ABB 255
[    7.393430] [c7] CPUFREQ of CA15 L6 : 1150000 uV
[    7.398039] [c7] CPUFREQ of CA15  L6 : ABB 255
[    7.402464] [c7] CPUFREQ of CA15 L7 : 1112500 uV
[    7.407072] [c7] CPUFREQ of CA15  L7 : ABB 255
[    7.411498] [c7] CPUFREQ of CA15 L8 : 1075000 uV
[    7.416103] [c7] CPUFREQ of CA15  L8 : ABB 255
[    7.420467] [c7] CPUFREQ of CA15 L9 : 1037500 uV
[    7.425130] [c7] CPUFREQ of CA15  L9 : ABB 255
[    7.429562] [c7] CPUFREQ of CA15 L10 : 1012500 uV
[    7.434255] [c7] CPUFREQ of CA15  L10 : ABB 255
[    7.438829] [c7] CPUFREQ of CA15 L11 : 1000000 uV
[    7.443472] [c7] CPUFREQ of CA15  L11 : ABB 255
[    7.447985] [c7] CPUFREQ of CA15 L12 : 975000 uV
[    7.452598] [c7] CPUFREQ of CA15  L12 : ABB 255
[    7.457110] [c7] CPUFREQ of CA15 L13 : 950000 uV
[    7.461709] [c7] CPUFREQ of CA15  L13 : ABB 255
[    7.466225] [c7] CPUFREQ of CA15 L14 : 925000 uV
[    7.470768] [c7] CPUFREQ of CA15  L14 : ABB 255
[    7.475347] [c7] CPUFREQ of CA15 L15 : 900000 uV
[    7.479951] [c7] CPUFREQ of CA15  L15 : ABB 255
[    7.484468] [c7] CPUFREQ of CA15 L16 : 900000 uV
[    7.489074] [c7] CPUFREQ of CA15  L16 : ABB 255
[    7.493590] [c7] CPUFREQ of CA15 L17 : 900000 uV
[    7.498196] [c7] CPUFREQ of CA15  L17 : ABB 255
[    7.502709] [c7] CPUFREQ of CA15 L18 : 900000 uV
[    7.507282] [c7] CPUFREQ of CA15  L18 : ABB 255
[    7.511764] [c7] CPUFREQ of CA15 L19 : 900000 uV
[    7.516377] [c7] CPUFREQ of CA15  L19 : ABB 255
[    7.520819] [c7] CPUFREQ of CA15 L20 : 900000 uV
[    7.525489] [c7] CPUFREQ of CA15  L20 : ABB 255
[    7.530019] [c7] CPUFREQ of CA15 L21 : 900000 uV
[    7.534584] [c7] CPUFREQ of CA15  L21 : ABB 255
[    7.539097] [c7] CPUFREQ of CA15 L22 : 900000 uV
[    7.543697] [c7] CPUFREQ of CA15  L22 : ABB 255
[    7.548587] [c7] eagle clock[800000], mpll clock[800000]
[    7.558172] [c7] Exynos: Kernel Thermal management registered
[    7.563588] [c7] ### dt-test ### No testcase data in device tree; not running                                                                                                                                                              tests
[    7.607287] [c7] MIF 825000Khz ASV is 950000uV
[    7.611045] [c7] DEVFREQ(MIF) : 825000Khz, ABB 14
[    7.615626] [c7] MIF 728000Khz ASV is 912500uV
[    7.620102] [c7] DEVFREQ(MIF) : 728000Khz, ABB 14
[    7.624788] [c7] MIF 633000Khz ASV is 875000uV
[    7.629231] [c7] DEVFREQ(MIF) : 633000Khz, ABB 14
[    7.633926] [c7] MIF 543000Khz ASV is 850000uV
[    7.638356] [c7] DEVFREQ(MIF) : 543000Khz, ABB 14
[    7.643048] [c7] MIF 413000Khz ASV is 812500uV
[    7.647489] [c7] DEVFREQ(MIF) : 413000Khz, ABB 14
[    7.652175] [c7] MIF 275000Khz ASV is 787500uV
[    7.656601] [c7] DEVFREQ(MIF) : 275000Khz, ABB 14
[    7.661314] [c7] MIF 206000Khz ASV is 787500uV
[    7.665709] [c7] DEVFREQ(MIF) : 206000Khz, ABB 14
[    7.670439] [c7] MIF 165000Khz ASV is 787500uV
[    7.674881] [c7] DEVFREQ(MIF) : 165000Khz, ABB 14
[    7.679562] [c7] MIF 138000Khz ASV is 787500uV
[    7.683997] [c7] DEVFREQ(MIF) : 138000Khz, ABB 14
[    7.690005] [c7] MIF: set ASV freq 825000, voltage 950000
[    7.695378] [c7] INT 600000Khz ASV is 937500uV
[    7.699253] [c7] DEVFREQ(INT) : 600000Khz, ABB 255
[    8.705948] [c7] PM DOMAIN: Power off unused power domains.
[    8.711400] [c7] ALSA device list:
[    8.714339] [c7] pd-cam: Power-off latency exceeded, new value 2963000 ns
[    8.721197] [c4]   #0: odroid-audio
[    8.725725] [c4] Freeing unused kernel memory: 424K (c08b6000 - c0920000)
[    9.735299] [c7] EXT4-fs (mmcblk0p2): mounted filesystem without journal. Opt                                                                                                                                                             s: (null)
[   10.087537] [c4] systemd[1]: systemd 229 running in system mode. (+PAM +AUDIT                                                                                                                                                              +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +                                                                                                                                                             ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN)
[   10.107372] [c4] systemd[1]: Detected architecture arm.
[   10.141984] [c4] systemd[1]: Set hostname to <odroid>.
[   10.536749] [c4] systemd[1]: Started Forward Password Requests to Wall Direct                                                                                                                                                             ory Watch.
[   10.561883] [c5] systemd[1]: Created slice User and Session Slice.
[   10.581070] [c5] systemd[1]: Reached target Swap.
[   10.596500] [c5] systemd[1]: Created slice System Slice.
[   10.616534] [c5] systemd[1]: Created slice system-systemd\x2dfsck.slice.
[   10.636267] [c5] systemd[1]: Listening on Journal Socket (/dev/log).
[   10.656526] [c5] systemd[1]: Created slice system-serial\x2dgetty.slice.
[   10.676130] [c5] systemd[1]: Listening on Syslog Socket.
[   10.691213] [c5] systemd[1]: Listening on /dev/initctl Compatibility Named Pi                                                                                                                                                             pe.
[   10.711757] [c5] systemd[1]: Set up automount Arbitrary Executable File Forma                                                                                                                                                             ts File System Automount Point.
[   10.736161] [c5] systemd[1]: Listening on fsck to fsckd communication Socket.
[   10.756200] [c5] systemd[1]: Listening on udev Control Socket.
[   10.776065] [c5] systemd[1]: Reached target Encrypted Volumes.
[   10.796074] [c5] systemd[1]: Reached target User and Group Name Lookups.
[   10.816132] [c5] systemd[1]: Listening on udev Kernel Socket.
[   10.836054] [c5] systemd[1]: Reached target Remote File Systems (Pre).
[   10.856062] [c5] systemd[1]: Reached target Remote File Systems.
[   10.876065] [c5] systemd[1]: Reached target Slices.
[   10.891224] [c5] systemd[1]: Listening on Journal Socket.
[   10.908545] [c6] systemd[1]: Starting Nameserver information manager...
[   10.928616] [c7] systemd[1]: Starting Set console keymap...
[   10.949442] [c7] systemd[1]: Starting Create list of required static device n                                                                                                                                                             odes for the current kernel...
[   10.979373] [c7] systemd[1]: Starting Journal Service...
[   10.998889] [c7] systemd[1]: Mounting POSIX Message Queue File System...
[   11.018930] [c4] systemd[1]: Started Braille Device Support.
[   11.051298] [c6] systemd[1]: Mounting Debug File System...
[   11.069458] [c4] systemd[1]: Started Read required files in advance.
[   11.096901] [c6] systemd[1]: Starting Load Kernel Modules...
[   11.119673] [c6] systemd[1]: Starting Uncomplicated firewall...
[   11.139479] [c6] systemd[1]: Starting Remount Root and Kernel File Systems...
[   11.164664] [c6] EXT4-fs (mmcblk0p2): re-mounted. Opts: errors=remount-ro
[   11.176975] [c4] systemd[1]: Mounted Debug File System.
[   11.196281] [c4] systemd[1]: Mounted POSIX Message Queue File System.
[   11.216352] [c7] systemd[1]: Started Journal Service.
[   11.638757] [c5] systemd-journald[228]: Received request to flush runtime jou                                                                                                                                                             rnal from PID 1
[   12.229332] [c6] s3c-i2c 12c60000.i2c: slave address 0x00
[   12.230155] [c7] [d:0, c:0] s5p_mfc_open:1629: NORMAL instance is opened [0:1                                                                                                                                                             ]
[   12.231807] [c7] [d:0] s5p_mfc_alloc_firmware:122: Port for DRM F/W : 0xafc00                                                                                                                                                             000
[   12.234280] [c7] [d:0] s5p_mfc_init_memctrl:304: [1] Base Address : 10000000
[   12.235006] [c7] [d:0] mfc_init_hw:426: MFC v8.0, F/W: 14yy, 01mm, 13dd (D)
[   12.235174] [c7] [d:0, c:0] s5p_mfc_open:1725: MFC open completed [0:1] dev =                                                                                                                                                              dd933010, ctx = ddb26000
[   12.235569] [c7] [d:0, c:0] s5p_mfc_release:1883: MFC driver release is calle                                                                                                                                                             d [0:1], is_drm(0)
[   12.235714] [c7] s5p_mfc_dev_release:1801: power off
[   12.236590] [c7] [d:0] s5p_mfc_release:2037: mfc driver release finished [0:0                                                                                                                                                             ], dev = dd933010
[   12.251470] [c6] [d:0, c:0] s5p_mfc_open:1629: NORMAL instance is opened [0:1                                                                                                                                                             ]
[   12.253018] [c6] [d:0] s5p_mfc_alloc_firmware:122: Port for DRM F/W : 0xafc00                                                                                                                                                             000
[   12.255620] [c6] [d:0] s5p_mfc_init_memctrl:304: [1] Base Address : 10000000
[   12.256726] [c7] [d:0] mfc_init_hw:426: MFC v8.0, F/W: 14yy, 01mm, 13dd (D)
[   12.257085] [c7] [d:0, c:0] s5p_mfc_open:1725: MFC open completed [0:1] dev =                                                                                                                                                              dd933010, ctx = de2c7800
[   12.257410] [c7] [d:0, c:0] s5p_mfc_release:1883: MFC driver release is calle                                                                                                                                                             d [0:1], is_drm(0)
[   12.257438] [c7] s5p_mfc_dev_release:1801: power off
[   12.260606] [c6] [d:0] s5p_mfc_release:2037: mfc driver release finished [0:0                                                                                                                                                             ], dev = dd933010
[   12.263023] [c6] i2c-core: driver [INA231] using legacy suspend method
[   12.263036] [c6] i2c-core: driver [INA231] using legacy resume method
[   12.265313] [c0] INA231 3-0040: I2C write error: (-6) reg: 0x0
[   12.273363] [c7] INA231 3-0040: ============= Probe INA231 Fail! : sensor_arm                                                                                                                                                              (0xFFFFFFFA) =============
[   12.306569] [c6] INA231 3-0041: I2C write error: (-6) reg: 0x0
[   12.312513] [c6] INA231 3-0041: ============= Probe INA231 Fail! : sensor_mem                                                                                                                                                              (0xFFFFFFFA) =============
[   12.350823] [c6] INA231 3-0044: I2C write error: (-6) reg: 0x0
[   12.356853] [c6] INA231 3-0044: ============= Probe INA231 Fail! : sensor_g3d                                                                                                                                                              (0xFFFFFFFA) =============
[   12.377777] [c6] INA231 3-0045: I2C write error: (-6) reg: 0x0
[   12.383734] [c6] INA231 3-0045: ============= Probe INA231 Fail! : sensor_kfc                                                                                                                                                              (0xFFFFFFFA) =============
[   12.393475] [c6] s3c-i2c 12c60000.i2c: i2c-3: S3C I2C adapter
[   12.393719] [c6] s3c-i2c 12c70000.i2c: slave address 0x00
[   12.415402] [c7] s3c-i2c 12c70000.i2c: i2c-4: S3C I2C adapter
[   13.224645] [c6] usbcore: registered new interface driver r8152
[   13.237688] [c7] usbcore: registered new interface driver cdc_ether
[   13.393517] [c6] usb 6-1: reset SuperSpeed USB device number 2 using xhci-hcd
[   13.406446] [c6] usb 6-1: Parent hub missing LPM exit latency info.  Power ma                                                                                                                                                             nagement will be impacted.
[   13.406697] [c6] xhci-hcd xhci-hcd.5.auto: xHCI xhci_drop_endpoint called wit                                                                                                                                                             h disabled ep de2990c0
[   13.406710] [c6] xhci-hcd xhci-hcd.5.auto: xHCI xhci_drop_endpoint called wit                                                                                                                                                             h disabled ep de2990ec
[   13.406721] [c6] xhci-hcd xhci-hcd.5.auto: xHCI xhci_drop_endpoint called wit                                                                                                                                                             h disabled ep de299118
[   13.480781] [c6] r8152 6-1:1.0 eth0: v2.07.0 (2016/06/14)
[   13.480795] [c6] r8152 6-1:1.0 eth0: This product is covered by one or more o                                                                                                                                                             f the following patents:
                        US6,570,884, US6,115,776, and US6,327,625.

[   17.429192] [c6] IPv6: ADDRCONF(NETDEV_UP): enx001e0631a4ef: link is not read                                                                                                                                                             y
[   17.461578] [c0] IPv6: ADDRCONF(NETDEV_CHANGE): enx001e0631a4ef: link becomes                                                                                                                                                              ready
[   23.267103] [c6] EXT4-fs (mmcblk0p2): resizing filesystem from 1066496 to 190                                                                                                                                                             7328 blocks
[   23.763202] [c7] EXT4-fs (mmcblk0p2): resized filesystem to 1907328
有fb的,就是fbset没有,先apt-get update看看.不人性化啊,看人家RPI都不用再输入了.

然后源是odroid自己的.

为了避免问题,我还是不换源,就算官方那个,我等.

ODROID给我答案是1024*768,识别OK啊,但是不显示是为什么呢.这个就SPI资源什么都没开. 难道这个板子真的只能当软件服务器吗?查很多资料发现boot.ini在windows下才能看得到的一个文件,修改一下说不准可以显示.

发现依然不显示.反正识别出问题了.

换这个试试ODROID-GameStation-Turbo-3.9-20170313-XU3-Jessie.img 一样没显示可以SSH登录.这可是个游戏机啊,没显示玩什么.没有任何地方告诉我用户名密码,最后我尝试到了是odroid:odroid.

也没samba,ftp,web服务,所以不知道怎么玩.内核日志差不多,错的地方都差不多.版本还是3.10,难怪只有这个版本能boot,大家还是踩过坑啊.插入我们的游戏手柄,没反应.插入我鼠标也没反应,没内核日志和识别到设备,所以测试失败.

接下来测试batocera-20170419.img.

结果一样不显示.batocera是第三方打包的,密码并不是odroid,当然这个网站我是几乎连接不上,千辛万苦才上去了.https://batocera-linux.xorhub.com/wiki/doku.php?id=en:access_the_batocera_via_ssh 默认用户名root,密码recalboxroot.

这难道是嵌入式busybox,跟其他所有系统一样,分区没resize,不过这个占用很小.当然也没包管理.确实是busybox构建的.

BusyBox is copyrighted by many authors between 1998-2015. Licensed under GPLv2. See source distribution for detailed copyright notices. Usage: busybox [function [arguments]...] or: busybox --list[-full] or: busybox --install [-s] [DIR] or: function [arguments]... BusyBox is a multi-call binary that combines many common Unix utilities into a single executable. Most people will create a link to busybox for each function they wish to use and BusyBox will act like whatever it was invoked as. Currently defined functions: [, [[, addgroup, adduser, ar, arp, arping, ash, awk, basename, blkid, bunzip2, bzcat, cat, catv, chattr, chgrp, chmod, chown, chroot, chrt, chvt, cksum, clear, cmp, cp, cpio, crond, crontab, cut, date, dc, dd, deallocvt, delgroup, deluser, devmem, df, diff, dirname, dmesg, dnsd, dnsdomainname, dos2unix, du, dumpkmap, echo, egrep, eject, env, ether-wake, expr, false, fbset, fdflush, fdformat, fdisk, fgrep, find, flock, fold, free, freeramdisk, fsck, fstrim, fuser, getopt, getty, grep, gunzip, gzip, halt, hdparm, head, hexdump, hostid, hostname, hwclock, i2cdetect, i2cdump, i2cget, i2cset, id, ifconfig, ifdown, ifup, inetd, init, insmod, install, ip, ipaddr, ipcrm, ipcs, iplink, iproute, iprule, iptunnel, kill, killall, killall5, klogd, last, less, linux32, linux64, linuxrc, ln, loadfont, loadkmap, logger, login, logname, losetup, ls, lsattr, lsmod, lsof, lspci, lsusb, lzcat, lzma, makedevs, md5sum, mdev, mesg, microcom, mkdir, mkfifo, mknod, mkpasswd, mkswap, mktemp, modprobe, more, mount, mountpoint, mt, mv, nameif, netstat, nice, nohup, nslookup, od, openvt, passwd, patch, pgrep, pidof, ping, pipe_progress, pivot_root, poweroff, printenv, printf, ps, pwd, rdate, rdev, readlink, readprofile, realpath, reboot, renice, reset, resize, rm, rmdir, rmmod, route, run-parts, runlevel, sed, seq, setarch, setconsole, setkeycodes, setlogcons, setserial, setsid, sh, sha1sum, sha256sum, sha3sum, sha512sum, sleep, sort, start-stop-daemon, stat, strings, stty, su, sulogin, swapoff, swapon, switch_root, sync, sysctl, syslogd, tail, tar, tee, telnet, test, tftp, time, top, touch, tr, traceroute, true, truncate, tty, ubirename, udhcpc, uevent, umount, uname, uniq, unix2dos, unlink, unlzma, unxz, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, vlock, watch, watchdog, wc, wget, which, who, whoami, xargs, xz, xzcat, yes, zcat
我哭了,小白也哭了,这系统干什么啊,什么都做不了啊.嵌入式系统啊,嵌入式平台为什么不选个资料完善更多的.然而我差点不会关机了. PS:后来了解到这是个高效游戏机,尽量节约任何系统开销.

下一个是ubuntu-14.04lts-server-odroidxu4-20150802.img.

显示信号没有(不是没显示,是信号都没.),网络也是只亮了个橙色的灯.没获取到IP,风扇偶尔转动. 接着试试wheezy-7-server-odroidxu4-20150802.img

跟上面那个一样下场,显示信号没有(不是没显示,是信号都没.),网络也是只亮了个橙色的灯.没获取到IP,风扇偶尔转动.既然作为server,没显示我也觉得没所谓,但是竟然没任何能连接的方法!官方也不说! 试试Lakka-OdroidXU3.arm-2.0.img 这其实也是一个游戏机系统.

因为我在树莓派用过,密码用户名都是root,有SSH的,但是这里竟然.

官方文档说:http://www.lakka.tv/doc/Accessing-Lakka-command-line-interface/
Accessing Lakka command line interface is useful if you want to debug the system, or if you need to edit the configuration file manually. It is for advanced users only. For begginners, using the graphical interface should be enough. There are 3 ways to access the command line interface:
  • SSH
  • Direct access with a keyboard
  • Serial
但是,我根本没显示啊!串口电压也不对.这个系统不显示,但是有信号,跟之前的一样,显示的画面比较乱.放弃,失败. 继续尝试Debian-Jessie-1.0~RC2-20151123-XU3.img

不显示,有信号,能获取IP,但是我没找到密码.作者说的密码是错的,我自己猜的密码也没有对的.

作者连接:https://forum.odroid.com/viewtopic.php?f=96&t=17542 当然,作者说默认ssh不能root登陆,我用宿主机Ubuntu改了sshd_config,依然是提示密码错误,并不是禁止root登陆这么简单,所以,我也不知道实际是多少,无法使用. 接下来该测试armbian全家桶,首先是Armbian_5.27_Odroidxu4_Ubuntu_xenial_next_4.9.13_desktop.img armbian一般独立维护着系统,应该不坑吧.熟悉的armbian

然后设置一段后...

这是一个能自动resize分区的系统,跟dietpi是另一个,其他所有系统都不能自动resize.其他有些虽然是基于armbian但是却不知道为什么不要了这个功能.可能是打包方法问题.

竟然原来默认没armbian config啊.

分辨率也识别了,就是不显示.

armbian的启动日志,他用的4.9内核.
[    0.000000] Booting Linux on physical CPU 0x100
[    0.000000] Linux version 4.9.13-odroidxu4 (root@devel) (gcc version 5.4.0 20                                                                                                                                                             160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) ) #5 SMP PREEMPT Mon Mar 6 14:25:3                                                                                                                                                             5 CET 2017
[    0.000000] CPU: ARMv7 Processor [410fc073] revision 3 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instructio                                                                                                                                                             n cache
[    0.000000] OF: fdt:Machine model: Hardkernel Odroid XU4
[    0.000000] Reserved memory: created DMA memory pool at 0xbe200000, size 8 Mi                                                                                                                                                             B
[    0.000000] OF: reserved mem: initialized node region_mfc_right, compatible i                                                                                                                                                             d shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0xbbe00000, size 36 M                                                                                                                                                             iB
[    0.000000] OF: reserved mem: initialized node region_mfc_left, compatible id                                                                                                                                                              shared-dma-pool
[    0.000000] cma: Reserved 256 MiB at 0xabc00000
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Samsung CPU ID: 0xe5422001
[    0.000000] On node 0 totalpages: 507392
[    0.000000] free_area_init_node: node 0, pgdat c0e56dc0, node_mem_map eee8800                                                                                                                                                             0
[    0.000000]   Normal zone: 1728 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 196608 pages, LIFO batch:31
[    0.000000]   HighMem zone: 310784 pages, LIFO batch:31
[    0.000000] Running under secure firmware.
[    0.000000] percpu: Embedded 14 pages/cpu @eede2000 s26828 r8192 d22324 u5734                                                                                                                                                             4
[    0.000000] pcpu-alloc: s26828 r8192 d22324 u57344 alloc=14*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [0] 4 [0] 5 [0] 6 [0] 7
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pag                                                                                                                                                             es: 505664
[    0.000000] Kernel command line: console=tty1 console=ttySAC2,115200n8 root=U                                                                                                                                                             UID=30c9d58d-993d-4bdb-8bad-99e95938fae5 rootfstype=ext4 rootwait panic=10 conso                                                                                                                                                             leblank=0 loglevel=1
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 1729184K/2029568K available (9216K kernel code, 350K rwda                                                                                                                                                             ta, 2348K rodata, 1024K init, 316K bss, 38240K reserved, 262144K cma-reserved, 9                                                                                                                                                             80992K highmem)
[    0.000000] Virtual kernel memory layout:
                   vector  : 0xffff0000 - 0xffff1000   (   4 kB)
                   fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
                   vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
                   lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
                   pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
                   modules : 0xbf000000 - 0xbfe00000   (  14 MB)
                     .text : 0xc0008000 - 0xc0a00000   (10208 kB)
                     .init : 0xc0d00000 - 0xc0e00000   (1024 kB)
                     .data : 0xc0e00000 - 0xc0e57a20   ( 351 kB)
                      .bss : 0xc0e59000 - 0xc0ea8398   ( 317 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 32.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] Switching to timer-based delay loop, resolution 41ns
[    0.000000] clocksource: mct-frc: mask: 0xffffffff max_cycles: 0xffffffff, ma                                                                                                                                                             x_idle_ns: 79635851949 ns
[    0.000008] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478                                                                                                                                                             484971ns
[    0.001448] Console: colour dummy device 80x30
[    0.001466] console [tty1] enabled
[    0.001491] Calibrating delay loop (skipped), value calculated using timer fr                                                                                                                                                             equency.. 48.00 BogoMIPS (lpj=120000)
[    0.001506] pid_max: default: 32768 minimum: 301
[    0.001722] Security Framework initialized
[    0.001734] AppArmor: AppArmor disabled by boot time parameter
[    0.001798] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.001806] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.002771] CPU: Testing write buffer coherency: ok
[    0.003583] CPU0: update cpu_capacity 521
[    0.003592] CPU0: thread -1, cpu 0, socket 1, mpidr 80000100
[    0.003726] Setting up static identity map for 0x40100000 - 0x40100058
[    0.004375] ARM CCI driver probed
[    0.004594] Exynos MCPM support installed
[    0.085326] CPU1: update cpu_capacity 521
[    0.085334] CPU1: thread -1, cpu 1, socket 1, mpidr 80000101
[    0.120301] CPU2: update cpu_capacity 521
[    0.120309] CPU2: thread -1, cpu 2, socket 1, mpidr 80000102
[    0.155303] CPU3: update cpu_capacity 521
[    0.155310] CPU3: thread -1, cpu 3, socket 1, mpidr 80000103
[    0.190330] CPU4: update cpu_capacity 1526
[    0.190338] CPU4: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.225319] CPU5: update cpu_capacity 1526
[    0.225326] CPU5: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.260329] CPU6: update cpu_capacity 1526
[    0.260336] CPU6: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.295314] CPU7: update cpu_capacity 1526
[    0.295321] CPU7: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.295450] Brought up 8 CPUs
[    0.295464] SMP: Total of 8 processors activated (384.00 BogoMIPS).
[    0.295471] CPU: WARNING: CPU(s) started in wrong/inconsistent modes (primary                                                                                                                                                              CPU mode 0x1a)
[    0.295476] CPU: This may indicate a broken bootloader or firmware.
[    0.296768] devtmpfs: initialized
[    0.324890] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7                                                                                                                                                              rev 3
[    0.325409] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, ma                                                                                                                                                             x_idle_ns: 9556302231375000 ns
[    0.325429] futex hash table entries: 2048 (order: 5, 131072 bytes)
[    0.337874] xor: measuring software checksum speed
[    0.384988]    arm4regs  :   963.200 MB/sec
[    0.434984]    8regs     :   676.000 MB/sec
[    0.475311] random: fast init done
[    0.484984]    32regs    :   675.200 MB/sec
[    0.534982]    neon      :   975.200 MB/sec
[    0.534989] xor: using function: neon (975.200 MB/sec)
[    0.535123] pinctrl core: initialized pinctrl subsystem
[    0.537634] NET: Registered protocol family 16
[    0.539436] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.560001] cpuidle: using governor menu
[    0.581425] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint                                                                                                                                                              registers.
[    0.581434] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.592291] exynos-audss-clk 3810000.audss-clock-controller:: epll 180633609
[    0.594412] iommu: Adding device 10850000.g2d: to group 0
[    0.595611] iommu: Adding device 11000000.codec: to group 1
[    0.620588] iommu: Adding device 14450000.mixer: to group 2
[    0.621125] iommu: Adding device 11c00000.rotator: to group 3
[    0.625546] iommu: Adding device 13e00000.video-scaler: to group 4
[    0.626066] iommu: Adding device 13e10000.video-scaler: to group 5
[    0.626595] iommu: Adding device 11f50000.jpeg: to group 6
[    0.627122] iommu: Adding device 11f60000.jpeg: to group 7
[    0.627491] EXYNOS5420 PMU initialized
[    0.755032] raid6: int32x1  gen()   147 MB/s
[    0.840156] raid6: int32x1  xor()   131 MB/s
[    0.925302] raid6: int32x2  gen()   188 MB/s
[    1.010021] raid6: int32x2  xor()   137 MB/s
[    1.095110] raid6: int32x4  gen()   180 MB/s
[    1.180182] raid6: int32x4  xor()   137 MB/s
[    1.265240] raid6: int32x8  gen()   178 MB/s
[    1.350121] raid6: int32x8  xor()   118 MB/s
[    1.435030] raid6: neonx1   gen()   401 MB/s
[    1.520035] raid6: neonx1   xor()   289 MB/s
[    1.604999] raid6: neonx2   gen()   523 MB/s
[    1.690017] raid6: neonx2   xor()   377 MB/s
[    1.775066] raid6: neonx4   gen()   577 MB/s
[    1.860029] raid6: neonx4   xor()   396 MB/s
[    1.945036] raid6: neonx8   gen()   557 MB/s
[    2.029998] raid6: neonx8   xor()   385 MB/s
[    2.030004] raid6: using algorithm neonx4 gen() 577 MB/s
[    2.030009] raid6: .... xor() 396 MB/s, rmw enabled
[    2.030015] raid6: using intx1 recovery algorithm
[    2.031867] SCSI subsystem initialized
[    2.032206] usbcore: registered new interface driver usbfs
[    2.032297] usbcore: registered new interface driver hub
[    2.032499] usbcore: registered new device driver usb
[    2.033385] s3c-i2c 12c70000.i2c:: slave address 0x00
[    2.033400] s3c-i2c 12c70000.i2c:: bus frequency set to 378 KHz
[    2.033775] s3c-i2c 12c70000.i2c:: i2c-1: S3C I2C adapter
[    2.034010] s3c-i2c 12c80000.i2c:: slave address 0x00
[    2.034023] s3c-i2c 12c80000.i2c:: bus frequency set to 65 KHz
[    2.034502] s3c-i2c 12c80000.i2c:: i2c-2: S3C I2C adapter
[    2.034997] media: Linux media interface: v0.10
[    2.035058] Linux video capture interface: v2.00
[    2.035656] Advanced Linux Sound Architecture Driver Initialized.
[    2.036933] clocksource: Switched to clocksource mct-frc
[    2.056135] NET: Registered protocol family 2
[    2.057110] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    2.057210] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    2.057388] TCP: Hash tables configured (established 8192 bind 8192)
[    2.057549] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    2.057594] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    2.057908] NET: Registered protocol family 1
[    2.058655] RPC: Registered named UNIX socket transport module.
[    2.058663] RPC: Registered udp transport module.
[    2.058668] RPC: Registered tcp transport module.
[    2.058674] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    2.058967] Trying to unpack rootfs image as initramfs...
[    2.421294] Freeing initrd memory: 4840K (cfb46000 - d0000000)
[    2.424639] audit: initializing netlink subsys (disabled)
[    2.424699] audit: type=2000 audit(2.420:1): initialized
[    2.425063] Initialise system trusted keyrings
[    2.425716] workingset: timestamp_bits=14 max_order=19 bucket_order=5
[    2.440117] NFS: Registering the id_resolver key type
[    2.440144] Key type id_resolver registered
[    2.440151] Key type id_legacy registered
[    2.440168] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    2.440175] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    2.441159] romfs: ROMFS MTD (C) 2007 Red Hat, Inc.
[    2.442477] JFS: nTxBlock = 8192, nTxLock = 65536
[    2.450079] SGI XFS with ACLs, security attributes, realtime, no debug enable                                                                                                                                                             d
[    2.464240] Key type asymmetric registered
[    2.464312] bounce: pool size: 64 pages
[    2.464610] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 2                                                                                                                                                             48)
[    2.464836] io scheduler noop registered
[    2.464843] io scheduler deadline registered
[    2.465308] io scheduler cfq registered (default)
[    2.468858] 12130000.phy: supply vbus not found, using dummy regulator
[    2.470189] 12100000.phy: supply vbus not found, using dummy regulator
[    2.470251] 12100000.phy: supply vbus-boost not found, using dummy regulator
[    2.470715] 12500000.phy: supply vbus not found, using dummy regulator
[    2.470775] 12500000.phy: supply vbus-boost not found, using dummy regulator
[    2.476727] dma-pl330 3880000.adma: Loaded driver for PL330 DMAC-241330
[    2.476740] dma-pl330 3880000.adma:  DBUFF-4x8bytes Num_Chans-6 Num_Peri-16 N                                                                                                                                                             um_Events-6
[    2.481434] dma-pl330 121a0000.pdma: Loaded driver for PL330 DMAC-241330
[    2.481446] dma-pl330 121a0000.pdma:         DBUFF-32x4bytes Num_Chans-8 Num_                                                                                                                                                             Peri-32 Num_Events-32
[    2.486362] dma-pl330 121b0000.pdma: Loaded driver for PL330 DMAC-241330
[    2.486374] dma-pl330 121b0000.pdma:         DBUFF-32x4bytes Num_Chans-8 Num_                                                                                                                                                             Peri-32 Num_Events-32
[    2.487748] dma-pl330 10800000.mdma: Loaded driver for PL330 DMAC-241330
[    2.487759] dma-pl330 10800000.mdma:         DBUFF-64x8bytes Num_Chans-8 Num_                                                                                                                                                             Peri-1 Num_Events-32
[    2.588350] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    2.591535] 12c00000.serial:: ttySAC0 at MMIO 0x12c00000 (irq = 76, base_baud                                                                                                                                                              = 0) is a S3C6400/10
[    2.592138] 12c10000.serial:: ttySAC1 at MMIO 0x12c10000 (irq = 77, base_baud                                                                                                                                                              = 0) is a S3C6400/10
[    2.592658] 12c20000.serial:: ttySAC2 at MMIO 0x12c20000 (irq = 78, base_baud                                                                                                                                                              = 0) is a S3C6400/10
[    2.592776] console [ttySAC2] enabled
[    2.593278] 12c30000.serial:: ttySAC3 at MMIO 0x12c30000 (irq = 79, base_baud                                                                                                                                                              = 0) is a S3C6400/10
[    2.594996] [drm] Initialized
[    2.596876] exynos-hdmi 14530000.hdmi:: Failed to get supply 'vdd': -517
[    2.598305] exynos-rot 11c00000.rotator:: The exynos rotator is probed succes                                                                                                                                                             sfully
[    2.599014] exynos-drm-ipp exynos-drm-ipp: drm ipp registered successfully.
[    2.603582] mali 11800000.mali:: Failed to get gpu-supply
[    2.603591] mali 11800000.mali:: Early backend initialization failed
[    2.621382] brd: module loaded
[    2.633124] loop: module loaded
[    2.634106] libphy: Fixed MDIO Bus: probed
[    2.634487] usbcore: registered new interface driver r8152
[    2.634563] usbcore: registered new interface driver ax88179_178a
[    2.634622] usbcore: registered new interface driver cdc_ether
[    2.634679] usbcore: registered new interface driver cdc_subset
[    2.635227] exynos-dwc3 soc:usb3-0:: no suspend clk specified
[    2.635336] exynos-dwc3 soc:usb3-1:: no suspend clk specified
[    2.636633] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.636639] ehci-exynos: EHCI EXYNOS driver
[    2.637122] exynos-ehci 12110000.usb:: EHCI Host Controller
[    2.637160] exynos-ehci 12110000.usb:: new USB bus registered, assigned bus n                                                                                                                                                             umber 1
[    2.637464] exynos-ehci 12110000.usb:: irq 91, io mem 0x12110000
[    2.651995] exynos-ehci 12110000.usb:: USB 2.0 started, EHCI 1.00
[    2.652244] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    2.652256] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=                                                                                                                                                             1
[    2.652264] usb usb1: Product: EHCI Host Controller
[    2.652272] usb usb1: Manufacturer: Linux 4.9.13-odroidxu4 ehci_hcd
[    2.652280] usb usb1: SerialNumber: 12110000.usb:
[    2.653185] hub 1-0:1.0: USB hub found
[    2.653231] hub 1-0:1.0: 3 ports detected
[    2.654403] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    2.654429] ohci-exynos: OHCI EXYNOS driver
[    2.654754] exynos-ohci 12120000.usb:: USB Host Controller
[    2.654787] exynos-ohci 12120000.usb:: new USB bus registered, assigned bus n                                                                                                                                                             umber 2
[    2.654937] exynos-ohci 12120000.usb:: irq 91, io mem 0x12120000
[    2.716213] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[    2.716224] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=                                                                                                                                                             1
[    2.716232] usb usb2: Product: USB Host Controller
[    2.716240] usb usb2: Manufacturer: Linux 4.9.13-odroidxu4 ohci_hcd
[    2.716248] usb usb2: SerialNumber: 12120000.usb:
[    2.717149] hub 2-0:1.0: USB hub found
[    2.717198] hub 2-0:1.0: 3 ports detected
[    2.719043] usbcore: registered new interface driver cdc_wdm
[    2.719194] usbcore: registered new interface driver usb-storage
[    2.720049] mousedev: PS/2 mouse device common for all mice
[    2.721813] i2c /dev entries driver
[    2.725646] LDO27: mapping for mode 1 not defined
[    2.725675] LDO28: mapping for mode 1 not defined
[    2.725706] LDO30: mapping for mode 1 not defined
[    2.737863] vdd_ldo9: Bringing 3300000uV into 3000000-3000000uV
[    2.749506] vdd_ldo15: Bringing 3300000uV into 3100000-3100000uV
[    2.758233] vdd_sd: Bringing 3300000uV into 2800000-2800000uV
[    2.776689] vdd_ldo30: Bringing 1800000uV into 3300000-3300000uV
[    2.817774] s5m-rtc s2mps14-rtc: rtc core: registered s5m-rtc as rtc0
[    2.821131] IR NEC protocol handler initialized
[    2.821139] IR RC5(x/sz) protocol handler initialized
[    2.821145] IR RC6 protocol handler initialized
[    2.821150] IR JVC protocol handler initialized
[    2.821155] IR Sony protocol handler initialized
[    2.821161] IR SANYO protocol handler initialized
[    2.821166] IR Sharp protocol handler initialized
[    2.821171] IR MCE Keyboard/mouse protocol handler initialized
[    2.821176] IR XMP protocol handler initialized
[    2.822420] s5p-jpeg 11f50000.jpeg:: encoder device registered as /dev/video0
[    2.822686] s5p-jpeg 11f50000.jpeg:: decoder device registered as /dev/video1
[    2.822693] s5p-jpeg 11f50000.jpeg:: Samsung S5P JPEG codec
[    2.823114] s5p-jpeg 11f60000.jpeg:: encoder device registered as /dev/video2
[    2.823358] s5p-jpeg 11f60000.jpeg:: decoder device registered as /dev/video3
[    2.823364] s5p-jpeg 11f60000.jpeg:: Samsung S5P JPEG codec
[    2.827479] s5p-mfc 11000000.codec:: decoder registered as /dev/video10
[    2.827750] s5p-mfc 11000000.codec:: encoder registered as /dev/video11
[    2.832820] exynos-tmu 10060000.tmu:: More trip points than supported by this                                                                                                                                                              TMU.
[    2.832833] exynos-tmu 10060000.tmu:: 3 trip points should be configured in p                                                                                                                                                             olling mode.
[    2.833680] exynos-tmu 10064000.tmu:: More trip points than supported by this                                                                                                                                                              TMU.
[    2.833691] exynos-tmu 10064000.tmu:: 3 trip points should be configured in p                                                                                                                                                             olling mode.
[    2.834557] exynos-tmu 10068000.tmu:: More trip points than supported by this                                                                                                                                                              TMU.
[    2.834567] exynos-tmu 10068000.tmu:: 3 trip points should be configured in p                                                                                                                                                             olling mode.
[    2.835469] exynos-tmu 1006c000.tmu:: More trip points than supported by this                                                                                                                                                              TMU.
[    2.835480] exynos-tmu 1006c000.tmu:: 3 trip points should be configured in p                                                                                                                                                             olling mode.
[    2.837622] s3c2410-wdt 101d0000.watchdog:: watchdog inactive, reset disabled                                                                                                                                                             , irq disabled
[    2.840371] core: _opp_supported_by_regulators: OPP minuV: 1135000 maxuV: 113                                                                                                                                                             5000, not supported by regulator
[    2.840383] cpu cpu0: _opp_add: OPP not supported by regulators (1100000000)
[    2.848379] sdhci: Secure Digital Host Controller Interface driver
[    2.848385] sdhci: Copyright(c) Pierre Ossman
[    2.848653] Synopsys Designware Multimedia Card Interface Driver
[    2.849426] dwmmc_exynos 12200000.mmc:: IDMAC supports 32-bit address mode.
[    2.849529] dwmmc_exynos 12200000.mmc:: Using internal DMA controller.
[    2.849541] dwmmc_exynos 12200000.mmc:: Version ID is 250a
[    2.849590] dwmmc_exynos 12200000.mmc:: DW MMC controller at irq 94,64 bit ho                                                                                                                                                             st data width,64 deep fifo
[    2.849817] dwmmc_exynos 12200000.mmc:: Got CD GPIO
[    2.849898] dwmmc_exynos 12200000.mmc:: allocated mmc-pwrseq
[    2.872627] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz                                                                                                                                                             , actual 396825HZ div = 63)
[    2.892596] dwmmc_exynos 12200000.mmc:: 1 slots initialized
[    2.893563] dwmmc_exynos 12220000.mmc:: IDMAC supports 32-bit address mode.
[    2.893665] dwmmc_exynos 12220000.mmc:: Using internal DMA controller.
[    2.893678] dwmmc_exynos 12220000.mmc:: Version ID is 250a
[    2.894064] dwmmc_exynos 12220000.mmc:: DW MMC controller at irq 95,64 bit ho                                                                                                                                                             st data width,64 deep fifo
[    2.917419] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz                                                                                                                                                             , actual 396825HZ div = 63)
[    2.937072] dwmmc_exynos 12220000.mmc:: 1 slots initialized
[    2.938516] usbcore: registered new interface driver usbhid
[    2.938521] usbhid: USB HID core driver
[    2.976281] exynos-nocp: new NoC Probe device registered: 10ca1000.nocp:
[    2.976845] exynos-nocp: new NoC Probe device registered: 10ca1400.nocp:
[    2.977497] exynos-nocp: new NoC Probe device registered: 10ca1800.nocp:
[    2.978027] exynos-nocp: new NoC Probe device registered: 10ca1c00.nocp:
[    2.990088] odroid-audio sound:: dit-hifi <-> 3830000.i2s: mapping ok
[    2.992059] ip_tables: (C) 2000-2006 Netfilter Core Team
[    2.992224] arp_tables: arp_tables: (C) 2002 David S. Miller
[    2.992280] Initializing XFRM netlink socket
[    2.993021] NET: Registered protocol family 10
[    2.994212] NET: Registered protocol family 17
[    2.994237] NET: Registered protocol family 15
[    2.994278] bridge: filtering via arp/ip/ip6tables is no longer available by                                                                                                                                                              default. Update your scripts to load br_netfilter if you need this.
[    2.994383] Key type dns_resolver registered
[    2.995219] Registering SWP/SWPB emulation handler
[    2.996818] registered taskstats version 1
[    2.996832] Loading compiled-in X.509 certificates
[    3.000682] Btrfs loaded, crc32c=crc32c-generic
[    3.027787] Key type encrypted registered
[    3.044272] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 50000000                                                                                                                                                             Hz, actual 50000000HZ div = 0)
[    3.078668] [drm] Exynos DRM: using 14450000.mixer: device for DMA mapping op                                                                                                                                                             erations
[    3.079301] exynos-drm exynos-drm: bound 14450000.mixer: (ops 0xc0a68db8)
[    3.079881] exynos-drm exynos-drm: bound 14530000.hdmi: (ops 0xc0a68f60)
[    3.079894] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    3.079903] [drm] No driver support for vblank timestamp query.
[    3.099472] exynos-drm exynos-drm: No connectors reported connected with mode                                                                                                                                                             s
[    3.099502] [drm] Cannot find any crtc or sizes - going 1024x768
[    3.144897] Console: switching to colour frame buffer device 128x48
[    3.147161] mmc1: new ultra high speed DDR50 SDHC card at address aaaa
[    3.148838] mmcblk1: mmc1:aaaa SL08G 7.40 GiB
[    3.151998]  mmcblk1: p1
[    3.162163] exynos-drm exynos-drm: fb0:  frame buffer device
[    3.186963] [drm] Initialized exynos 1.0.0 20110530 on minor 0
[    3.193116] mali 11800000.mali:: GPU identified as 0x0620 r0p1 status 0
[    3.196582] mali 11800000.mali:: Probed as mali0
[    3.196908] exynos-dwc3 soc:usb3-0:: no suspend clk specified
[    3.201784] xhci-hcd xhci-hcd.2.auto: xHCI Host Controller
[    3.201818] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus nu                                                                                                                                                             mber 3
[    3.202484] xhci-hcd xhci-hcd.2.auto: hcc params 0x0220f04c hci version 0x100                                                                                                                                                              quirks 0x00010010
[    3.202554] xhci-hcd xhci-hcd.2.auto: irq 144, io mem 0x12000000
[    3.202829] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002
[    3.202839] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=                                                                                                                                                             1
[    3.202846] usb usb3: Product: xHCI Host Controller
[    3.202853] usb usb3: Manufacturer: Linux 4.9.13-odroidxu4 xhci-hcd
[    3.202859] usb usb3: SerialNumber: xhci-hcd.2.auto
[    3.203713] hub 3-0:1.0: USB hub found
[    3.203762] hub 3-0:1.0: 1 port detected
[    3.204269] xhci-hcd xhci-hcd.2.auto: xHCI Host Controller
[    3.204290] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus nu                                                                                                                                                             mber 4
[    3.204385] usb usb4: We don't know the algorithms for LPM for this host, dis                                                                                                                                                             abling LPM.
[    3.204526] usb usb4: New USB device found, idVendor=1d6b, idProduct=0003
[    3.204536] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=                                                                                                                                                             1
[    3.204542] usb usb4: Product: xHCI Host Controller
[    3.204550] usb usb4: Manufacturer: Linux 4.9.13-odroidxu4 xhci-hcd
[    3.204556] usb usb4: SerialNumber: xhci-hcd.2.auto
[    3.205306] hub 4-0:1.0: USB hub found
[    3.205344] hub 4-0:1.0: 1 port detected
[    3.206216] exynos-dwc3 soc:usb3-1:: no suspend clk specified
[    3.208966] xhci-hcd xhci-hcd.5.auto: xHCI Host Controller
[    3.208996] xhci-hcd xhci-hcd.5.auto: new USB bus registered, assigned bus nu                                                                                                                                                             mber 5
[    3.209545] xhci-hcd xhci-hcd.5.auto: hcc params 0x0220f04c hci version 0x100                                                                                                                                                              quirks 0x00010010
[    3.209618] xhci-hcd xhci-hcd.5.auto: irq 145, io mem 0x12400000
[    3.209855] usb usb5: New USB device found, idVendor=1d6b, idProduct=0002
[    3.209864] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=                                                                                                                                                             1
[    3.209872] usb usb5: Product: xHCI Host Controller
[    3.209879] usb usb5: Manufacturer: Linux 4.9.13-odroidxu4 xhci-hcd
[    3.209885] usb usb5: SerialNumber: xhci-hcd.5.auto
[    3.210717] hub 5-0:1.0: USB hub found
[    3.210760] hub 5-0:1.0: 1 port detected
[    3.211255] xhci-hcd xhci-hcd.5.auto: xHCI Host Controller
[    3.211274] xhci-hcd xhci-hcd.5.auto: new USB bus registered, assigned bus nu                                                                                                                                                             mber 6
[    3.211367] usb usb6: We don't know the algorithms for LPM for this host, dis                                                                                                                                                             abling LPM.
[    3.211503] usb usb6: New USB device found, idVendor=1d6b, idProduct=0003
[    3.211512] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=                                                                                                                                                             1
[    3.211519] usb usb6: Product: xHCI Host Controller
[    3.211526] usb usb6: Manufacturer: Linux 4.9.13-odroidxu4 xhci-hcd
[    3.211533] usb usb6: SerialNumber: xhci-hcd.5.auto
[    3.212391] hub 6-0:1.0: USB hub found
[    3.212434] hub 6-0:1.0: 1 port detected
[    3.213945] s3c-rtc 101e0000.rtc:: rtc disabled, re-enabling
[    3.214092] rtc rtc1: invalid alarm value: 1900-1-11 0:0:0
[    3.214383] s3c-rtc 101e0000.rtc:: rtc core: registered s3c as rtc1
[    3.216360] exynos-bus: new bus device registered: soc:bus_wcore: ( 84000 KHz                                                                                                                                                              ~ 400000 KHz)
[    3.217462] exynos-bus: new bus device registered: soc:bus_noc: ( 67000 KHz ~                                                                                                                                                              100000 KHz)
[    3.218237] exynos-bus: new bus device registered: soc:bus_fsys_apb: (100000                                                                                                                                                              KHz ~ 200000 KHz)
[    3.218755] exynos-bus: new bus device registered: soc:bus_fsys: (100000 KHz                                                                                                                                                              ~ 200000 KHz)
[    3.219533] exynos-bus: new bus device registered: soc:bus_fsys2: ( 75000 KHz                                                                                                                                                              ~ 150000 KHz)
[    3.220508] exynos-bus: new bus device registered: soc:bus_mfc: ( 96000 KHz ~                                                                                                                                                              333000 KHz)
[    3.221405] exynos-bus: new bus device registered: soc:bus_gen: ( 89000 KHz ~                                                                                                                                                              267000 KHz)
[    3.222158] exynos-bus: new bus device registered: soc:bus_peri: ( 67000 KHz                                                                                                                                                              ~  67000 KHz)
[    3.223185] exynos-bus: new bus device registered: soc:bus_g2d: ( 84000 KHz ~                                                                                                                                                              333000 KHz)
[    3.224130] exynos-bus: new bus device registered: soc:bus_g2d_acp: ( 67000 K                                                                                                                                                             Hz ~ 267000 KHz)
[    3.225035] exynos-bus: new bus device registered: soc:bus_jpeg: ( 75000 KHz                                                                                                                                                              ~ 300000 KHz)
[    3.225927] exynos-bus: new bus device registered: soc:bus_jpeg_apb: ( 84000                                                                                                                                                              KHz ~ 167000 KHz)
[    3.226666] exynos-bus: new bus device registered: soc:bus_disp1_fimd: (12000                                                                                                                                                             0 KHz ~ 200000 KHz)
[    3.227538] exynos-bus: new bus device registered: soc:bus_disp1: (120000 KHz                                                                                                                                                              ~ 300000 KHz)
[    3.228328] exynos-bus: new bus device registered: soc:bus_gscl_scaler: (1500                                                                                                                                                             00 KHz ~ 300000 KHz)
[    3.229322] exynos-bus: new bus device registered: soc:bus_mscl: ( 84000 KHz                                                                                                                                                              ~ 400000 KHz)
[    3.231576] input: gpio_keys: as /devices/platform/gpio_keys:/input/input0
[    3.234298] Power domain power-domain@10044120 disable failed
[    3.234711] s5m-rtc s2mps14-rtc: setting system clock to 2000-01-01 00:00:12                                                                                                                                                              UTC (946684812)
[    3.238983] ALSA device list:
[    3.239001]   #0: odroid-snd
[    3.243056] Freeing unused kernel memory: 1024K (c0d00000 - c0e00000)
[    3.532217] usb 4-1: new SuperSpeed USB device number 2 using xhci-hcd
[    3.557232] usb 4-1: New USB device found, idVendor=05e3, idProduct=0616
[    3.557248] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.557257] usb 4-1: Product: USB3.0 Hub
[    3.557266] usb 4-1: Manufacturer: GenesysLogic
[    3.573426] hub 4-1:1.0: USB hub found
[    3.573783] hub 4-1:1.0: 2 ports detected
[    3.667206] usb 6-1: new SuperSpeed USB device number 2 using xhci-hcd
[    3.672034] usb 3-1: new high-speed USB device number 2 using xhci-hcd
[    3.688170] usb 6-1: New USB device found, idVendor=0bda, idProduct=8153
[    3.688184] usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=6
[    3.688190] usb 6-1: Product: USB 10/100/1000 LAN
[    3.688196] usb 6-1: Manufacturer: Realtek
[    3.688202] usb 6-1: SerialNumber: 000001000000
[    3.816415] usb 3-1: New USB device found, idVendor=05e3, idProduct=0610
[    3.816430] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.816437] usb 3-1: Product: USB2.0 Hub
[    3.816444] usb 3-1: Manufacturer: GenesysLogic
[    3.845294] hub 3-1:1.0: USB hub found
[    3.845773] hub 3-1:1.0: 2 ports detected
[    3.851575] usb 6-1: reset SuperSpeed USB device number 2 using xhci-hcd
[    3.948984] r8152 6-1:1.0 eth0: v1.08.7
[    4.035452] r8152 6-1:1.0 enx001e0631a4ef: renamed from eth0
[    4.177002] random: crng init done
[    4.661305] mmcblk1: error -115 sending stop command, original cmd response 0                                                                                                                                                             x900, card status 0x900
[    4.661404] mmcblk1: error -110 transferring data, sector 2629632, nr 8, cmd                                                                                                                                                              response 0x900, card status 0x0
[    4.688394] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz                                                                                                                                                             , actual 396825HZ div = 63)
[    4.875964] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 50000000                                                                                                                                                             Hz, actual 50000000HZ div = 0)
[    4.908122] EXT4-fs (mmcblk1p1): mounted filesystem with writeback data mode.                                                                                                                                                              Opts: (null)
[    5.339162] systemd[1]: System time before build time, advancing clock.
[    5.390640] systemd[1]: systemd 229 running in system mode. (+PAM +AUDIT +SEL                                                                                                                                                             INUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +                                                                                                                                                             XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN)
[    5.392345] systemd[1]: Detected architecture arm.
[    5.418143] systemd[1]: Set hostname to <odroidxu4>.
[    5.822757] systemd[1]: Listening on Journal Socket.
[    5.842208] systemd[1]: Listening on fsck to fsckd communication Socket.
[    5.862513] systemd[1]: Created slice System Slice.
[    5.880121] systemd[1]: Mounting Debug File System...
[    5.897456] systemd[1]: Created slice User and Session Slice.
[    5.912211] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[    5.932080] systemd[1]: Reached target Slices.
[    6.288181] EXT4-fs (mmcblk1p1): re-mounted. Opts: commit=600,errors=remount-                                                                                                                                                             ro
[    7.621567] s5p-secss 10830000.sss:: s5p-sss driver registered
[    7.683353] gpiomem-exynos 13400000.gpiomem:: Initialised: GPIO register area                                                                                                                                                              is 2
[    7.693196] gpiomem-exynos 13400000.gpiomem:: Initialised: Registers at 0x134                                                                                                                                                             00000
[    7.693209] gpiomem-exynos 13400000.gpiomem:: Initialised: Registers at 0x140                                                                                                                                                             10000
[    7.763756] systemd-journald[369]: Received request to flush runtime journal                                                                                                                                                              from PID 1
[    8.228522] ads7846 spi1.1: touchscreen, irq 147
[    8.229110] input: ADS7846 Touchscreen as /devices/platform/soc:/12d30000.spi                                                                                                                                                             :/spi_master/spi1/spi1.1/input/input1
[    8.889207] EXT4-fs (mmcblk1p1): resizing filesystem from 714496 to 1900644 b                                                                                                                                                             locks
[    8.924946] EXT4-fs (mmcblk1p1): resized filesystem to 1900644
[   10.742677] systemd[1]: apt-daily.timer: Adding 7h 29min 30.094903s random ti                                                                                                                                                             me.
[   11.126768] systemd[1]: apt-daily.timer: Adding 5h 18min 39.649517s random ti                                                                                                                                                             me.
[   12.800474] IPv6: ADDRCONF(NETDEV_UP): enx001e0631a4ef: link is not ready
[   12.830773] IPv6: ADDRCONF(NETDEV_UP): enx001e0631a4ef: link is not ready
[   12.860766] IPv6: ADDRCONF(NETDEV_CHANGE): enx001e0631a4ef: link becomes read                                                                                                                                                             y
[   31.729797] systemd[1]: apt-daily.timer: Adding 6h 3min 28.754696s random tim                                                                                                                                                             e.
[   32.526085] systemd[1]: apt-daily.timer: Adding 5h 51min 59.958677s random ti                                                                                                                                                             me.
[   33.305056] Adding 131068k swap on /var/swap.  Priority:-1 extents:1 across:1                                                                                                                                                             31068k SS
[   33.981947] systemd[1]: apt-daily.timer: Adding 7h 25min 56.144860s random ti                                                                                                                                                             me.
[   34.707542] systemd[1]: apt-daily.timer: Adding 6h 33.298999s random time.
[   35.345035] systemd[1]: apt-daily.timer: Adding 1h 37min 30.034298s random ti                                                                                                                                                             me.
当然SPI还是被触摸占掉了,armbian内核和所有东西都在国外,在国内确实不好获取.这依然是不能显示的系统,但是至少稳定资料多.armbian全家4个系统,都挺稳定,跟这个差不多,一样没显示,内核一个是3.10的,一个是4.9的,都不错,推荐用这个.这些我都逐个实际测试了.

最后测试DietPi_v145_OdroidXU4-armv7-(Jessie).img 这个也是DietPi自己维护的,据说是基于armbian的,所以也能自动resize,前面已经说了.

不过显示一样无能为力.默认是无信号(不是无显示,就是屏幕提示无信号.) 当然DietPi主要为了RPI的,为什么我知道这个系统主要还是我去了解这个板子看到的,大家都说这个系统是最好的,我看是因为其他系统太坑吧.用户名密码惯例root:dietpi.

首次开机要等他干一轮,我觉得我还是耐心等待下吧.

调整下分辨率,看是不是能显示,只能选个接近的了.

然后reboot表示能显示啊!虽然颜色也不对.然后一瞬间也黑屏了.蓝色的条条应该是红色的.

但这是唯一一个能显示的啊.难怪他们odroid论坛都说推荐用dietpi,也不要用官方系统.原来是因为dietpi唯一能解决显示问题,超神了. 但是分析源码发现,确实也就只能是720p 480p 1080p 1024*600,其他都不行.因为dietpi的实现是替换好多文件,具体还没分析清楚.而且选用1080p,480p,VU7+均在我显示器上都不显示,选任何一个在5寸屏都不显示.唯一能显示的也因为显示一会变得奇怪了.

而dietpi中的fbtft也可以加载,但是dietpi优化的内容啊源码啊还是留了一手的.所以不能轻易分析出他是怎么做到的.因为他的firmware-samsung跟其他的不一样,这个是打包好的二进制了,奇怪啊.

我尝试按照了一下桌面环境,dietpi提示目前odroid只能在lxde上稳定,其他都是testing的,所以我选了lxde.为什么一个软件还能是稳定还是不稳定呢,奇怪,可能和实现显示驱动有很大关系.速度停在Byte时代,等等吧.

有大量的安装包等等是dietpi自己重新做过的.

另外http://fuzon.co.uk/是个神奇网站.有兴趣自己点进去看看就知道了.后来我没办法,通过ps aux获得,然后发现安装卡了2个多小时,就在这里.人工去掉qq参数执行.

慢啊慢,一旦遇到这个网站就慢得想死.整个安装花了一个上午.

装完后神奇的一幕发生了.原来那个正规显示器不显示了,反正是我们的5寸屏可以了.

看到温度如下(注意,这是常温,不是特地加热的):

你知道Note 7为什么会炸吗?我猜是CPU太热了,我都不敢烤机啊. 此文从3号开始写到现在,终于写完了. Note:经过对比,HDMI协议在内核驱动里面进行了改造,因为二进制都不一样,至于是为什么不知道.这样就能显示了. Note:目前唯一能用的就是DietPi了.驱动开发这个事情,还得考虑考虑,貌似没那么简单. Note:唯一优点就是速度快,缺点就是不知道这个系统在干了什么东西. Note:想把散热片拆下来看看多热,发现拆不下来的.胶水粘得不是一般结实. Note:这是我研究过最操蛋的板子了,比国产很多板子都操蛋. Note:USB旁边的按钮其实是RST,我都因为插USB RST了好多次板子了.跟树莓派的电容旁边供电口一样脑残,我说的是树莓派最老的Model B. Note:IO是1.8V,排针2.0间距,USB没驱动能力,100mA左右负载就掉线.电池插座竟然是反的,我淘宝以前买的电池不能用!是怎么发现的,触摸屏带不动,鼠标可以,带不动后还不会立马掉电,会等一下才死机. Note:无法实测功耗,就是5V 4A适配器有点热.风扇噪音很大很大,比我电脑还大,我也是服了. Note:屏幕为什么能显示,我还不知道.

撸蓝牙5 –先试试最简单的蓝牙鼠标

$
0
0
  这应是蓝牙的Blink了吧,我以前实现过USB鼠标,应该没差太多.(自我安慰的开头) 这不一样有VID PID嘛,跟USB一样一样的.

先从main函数看下来.
/**@brief Function for application main entry.
 */
int main(void)
{
    bool erase_bonds;

    // Initialize.
    log_init();
    timers_init();
    buttons_leds_init(&erase_bonds);
    ble_stack_init();
    scheduler_init();
    gap_params_init();
    gatt_init();
    advertising_init();
    services_init();
    sensor_simulator_init();
    conn_params_init();
    peer_manager_init();

    // Start execution.
    NRF_LOG_INFO("HID Mouse example started.\r\n");
    timers_start();

    advertising_start(erase_bonds);

    // Enter main loop.
    for (;;)
    {
        app_sched_execute();
        if (NRF_LOG_PROCESS() == false)
        {
            power_manage();
        }
    }
}
第一步初始化LOG,LOG怎么用呢,要不用RTT要不用UART,我比较习惯用RTT调试.所以打开RTT.

然后一个LOG都见不到,啊!求助工具吧,原来还要使能.

我开到DEBUG等级,调好颜色,开始再试试.

坑的第二发,原来每个工程有自己的config文件.千万别打开错了.

当配置好是RTT调试时候,再来一次.终于走上DEBUG的正确路上了.

连接上就这样,DEBUG的信息也太少了吧.

然后第二个函数是定时器的初始化.定时器是什么玩意不难想象.里面函数特别多,为了节约时间,当然是从官网了解. 然后...翻车了.这个不是没参数吗,怎么会有参数呢.

原来是SDK太新,东西移动到config.h里面配置了.init不用参数了.然后定时器自己也有Log开来看看.

然而没有反应.定时器原来函数要的QUEUE_SIZE在这里.

其他没找到也不知道是不是弃用了.从名字可以知道是监控电池电量的.中断回调是battery_level_meas_timeout_handler,周期定时.定时周期是...
static void timers_init(void)
{
    ret_code_t err_code;

    err_code = app_timer_init();
    APP_ERROR_CHECK(err_code);

    // Create battery timer.
    err_code = app_timer_create(&m_battery_timer_id,
                                APP_TIMER_MODE_REPEATED,
                                battery_level_meas_timeout_handler);
    APP_ERROR_CHECK(err_code);
}
的原来定时周期还要后面看到app_timer_start再定义,那就算了.

接下来的buttons_leds_init不用说废话,我也懒得进去了,但是下面的ble_stack_init应该是我研究的重点!然后继续下去,HardFault了,我擦.

然后发现无处可打断点,判断是优化等级太高了,调到不优化方便调试.改变了优化程度,就可以到这里.看到里面全是SoftDevice API.因为是sd开头的,不是我一本正经敢胡说八道,真有哦.

只要看着文档没有不懂得东西.但是刚开始还是很失败啊,学一下文档吧,返回基础.  

华为LiteOS体验总结

$
0
0
华为也出LiteOS了,说实话爱国基因突然就上来了.移植非常简单,跟FreeRTOS没什么差别,SysTick更换成LiteOS的函数后,其实就完成了.移植难度应该叫轻松,(PS:大家不要问我ucos,那是商业系统,我不用.) 首先RAM占用较大是第一印象,因为默认配置用32K作为操作系统,实在是土豪得不行不行的. RAM_SIZE_LEVEL_0 到 RAM_SIZE_LEVEL_2 可选,默认是最大的,也就是占用32K.引用官方的话是这样的.
  • 对于嵌入式系统来说,内存都是比较宝贵的资源,因此一般的程序都会严格管理内存使用,LiteOS也一样。在LiteOS中系统资源使用g_ucMemStart[OS_SYS_MEM_SIZE]作为内存池,来管理任务、信号量等等资源的创建,总共是32K。而留给用户创建的task的的个数则是LOSCFG_BASE_CORE_TSK_LIMIT(15).
  • LiteOS中的内存使用都是在los_config.h中进行配置的,需要使用多大的内存,可以根据实际的task个数、信号量、互斥锁、timer、消息队列、链表等内容的个数来决定的(根据各自的结构体大小以及个数计算),总的内存池的大小是OS_SYS_MEM_SIZE来定义的。
  • LiteOS的中断机制,目前使用了2K的内存。
对于最低端的配置来说,HWI管理是不支持的,其他配置一般差在OS_SYS_MEM_SIZE,32K指的是这里32K,还没说处理器的其他开销的.跟FreeRTOS的TOTAL_HEAP_SIZE还是不一样,这个OS_SYS_MEM_SIZE包含东西比较多.比如LOS_MemAlloc这些函数也做了一定的重载.比如FATFS想使用一些内存,都可以从里面申请,这么看起来又感觉不是那么浪费内存啊.这一点如果FreeRTOS学一下就好了,这样很多内存可以重复用起来. 其他也没太多吐槽地方. 华为LiteOS优点: 1)重载的MemAlloc等函数,管理内存更高效安全. 2)支持环回链表. 3)有自测功能.调用LOS_Inspect_Entry就能测试出是否OK. 4)基本上一般RTOS的基础功能都集成了. 5)为IOT优化,底层强力优化了一些互联功能. 华为LiteOS缺点: 1)初始占用RAM比较大,8K/16K/32K起步. 2)SwTimer 准确度较低,定时1000毫秒下,有时候960毫秒就中断了,有时候1060毫秒才中断. 3)仅有2种内存管理方法. 4)重载的FATFS功能太简单. 5)只有中文文档,我们的华为要走出国门呢.

撸蓝牙5 – 开始SoftDeivce大致浏览

$
0
0
SoftDeivce 有S132,S140,S212,S332都是什么鬼啊,好乱啊. 简单来说SoftDevice就是协议栈,类似于TI CC3200要预先烧写个什么东西,给跑网络协议用的,里面的API开源也没用. SoftDevices 就是个已经编译好的二进制IMAGE,具有确定性啊各种优点,总之我们只要专心做APP就行,把这个东西当成ST的HAL库就没问题了. S132 是BLE中央和外设协议栈解决方案,支持二十个连接,一个观察者和一个广播角色同时运行.这是最普遍的. S140就是为了支持蓝牙5.0的. S212和S332是ANT(不知道是什么东西)的一个专用的库. 我们着重看S132,也是最流行最通用,也是要用得最多的一个.虽然最新板子支持蓝牙5都用S140.另外发现所有softdevice函数都是sd开头的.

在源码里面关键的ble_stack_init基本就是调用sd函数了.还有关于GAP的配置之类也是涉及sd的函数,sd的函数也是在主处理器执行的,所以NRF的器件会有timeslot,这个timeslot就是控制什么时候执行sd什么时候执行app的,当然sd执行优先级是最高的,所以如果要用IO模拟协议的朋友就有点麻烦了. 一开始我看到这个函数,就懵逼了.

BLE_COMMON_CFG_VS_UUID是UUID的意思吧,但是为什么文档没有写呢.enum看到了,原来他属于BLE_COMMON_CFGS一个分支,

其他地方也是没区别的.关于GAP还有个特别的地方,就是GAP的函数不一样.

但是.

根据字面意思是设置GAP的名字.概念真的很多,还有GATT等.还有Advertising这些类似的. 概念太多了,一下子理解不来,好挫败,还是先了解下基础概念吧,睡觉.

撸蓝牙5 – BLE的一些基本概念

$
0
0
BLE角色的定义:
  1. GAP,外设设备与中心设备,每个设备可以充当多种角色,但是 同一时间只能充当一种角色.
  2. GATT,客户端与服务端,这是根据数据的流向,数据从服务端流向客户端.客户端与客户端可以随时角色切换.
外设设备就是从设备,比如蓝牙鼠标,中心设备就是主设备,比如电脑接收无线鼠标数据时候.一个主设备可以同时管理与多个从设备的连接,但是每个从设备只能连接到一个主设备,比如你手机连接手环时候,还可以用蓝牙鼠标和蓝牙耳机.

蓝牙也有公有地址私有地址,公有地址是上牌的,私有地址是随机的,随机地址还分静态地址和私有地址,私有又分可否解释分两种.区分方法原始链接:https://devzone.nordicsemi.com/question/43670/how-to-distinguish-between-random-and-public-gap-addresses/ 后面有3Bit做判断了. 蓝牙吃起来不是一般费劲啊.
Viewing all 541 articles
Browse latest View live