小编Muz*_*ain的帖子

如何更新android studio中的插件?

几乎一周后我运行了我的android项目,我收到了这条消息:

插件太旧,请更新到更新版本,或将ANDROID_DAILY_OVERRIDE环境变量设置为"a8faa180fc282060c9b8ec88f9bdcc9072121284"

如何更新我的插件?我正在使用android Studio 2.0.这是我的build.gradle项目文件

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.0.0-alpha1'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud)

plugins dependencies android android-studio android-gradle-plugin

9
推荐指数
2
解决办法
8035
查看次数

shm_open()和ftruncate()的目的是什么?

当我们创建一个共享内存时,我们使用shm_open()ftruncate()运行.根据我的信息shm_open()创建一个共享内存区域.然后我们使用ftruncate()函数来配置共享内存区域的大小.

那么shm_open()当它还不知道尺寸时,如何首先创建内存区域?如果情况并非如此,我完全错了,请告诉我目的,shm_open()ftruncate().提前致谢!

c linux operating-system

9
推荐指数
1
解决办法
4556
查看次数

无法让STM32F103RB usart1与hc-05通信

我无法将USART_1与蓝牙hc-05连接.微控制器是STM32F103RB.这是代码(我没有使用任何库)

#define APB2_FREQ 72000000

void USART1_Send(char* data)
{   
    unsigned int length = 0;
    while(data[length] != '\0')
        ++length;       

    int i = 0;
    while(i < length)
    {
        while((USART1_SR & 0x00000080) == 0); // wait if transmit data register is not empty
        USART1_DR = data[i];
        ++i;
    }
}

char USART1_Receive()
{
    while((USART1_SR & 0x00000020) == 0);     //wait for data to arrive
    return USART1_DR;
}

void USART1_Init(int baudrate, short parity, short stop)
{
    RCC_APB2ENR |= 0x00004004;                // enable Port A, enable usart1 clock

    GPIOA_CRH …
Run Code Online (Sandbox Code Playgroud)

stm32 keil uart hc-05

6
推荐指数
1
解决办法
288
查看次数

如何在手臂内联汇编中访问局部C变量?

我想访问在内联手臂汇编中用C声明的局部变量。我怎么做?

可以这样访问全局变量,

int temp = 0;
Function(){
    __asm(
       ".global temp\n\t"           
        "LDR R2, =temp\n\t"                                                     
        "LDR R2, [R2, #0]\n\t"
    );
}       
Run Code Online (Sandbox Code Playgroud)

但是,如何访问局部变量?我尝试将局部变量的“ .global”更改为“ .local”,但是会产生错误(未定义对“ temp”的引用)。我正在使用的IDE是KEIL。

有什么想法吗?提前致谢。

c arm inline-assembly keil

4
推荐指数
1
解决办法
3223
查看次数

在 Master (SPI) 中设置 nss_soft

我想使用 Nucleo STM32F103RB 在 master 中将 NSS 引脚设置为软件模式。但我有一些问题?

在参考手册中,他们说,

在 NSS 软件模式下,设置 SPI_CR1 寄存器中的 SSM 和 SSI 位。如果在输出模式下需要 NSS 引脚,则只应设置 SSOE 位。

现在,

为什么我们需要用 SSM 设置 SSI 位?

SSOE 位的目的是什么?

arm spi stm32 master-slave stm32f1

4
推荐指数
1
解决办法
1881
查看次数

了解C++中的继承和多态

假设我们有以下继承类.

class A
{
public:
    void virtual show()
    {
        cout << "I am A\n";
    }
};

class B:public A
{
public:
    void show()
    {
        cout << "I am B\n";
    }
};

class C:public B
{
public:
    void show()
    {
        cout << "I am C\n";
    }
};

int main()
{
    A *obj = new C();
    obj->show();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在不创建任何其他对象的情况下,如何调用B类的show()函数?

我知道的一种方法是修改C类中的show(),

void show()
{
    B::show();
    cout << "I am c\n";
}
Run Code Online (Sandbox Code Playgroud)

这将首先调用B的show函数然后它将打印"我是C".但我不希望C中的show()完全执行.我希望B的show()能够直接执行.

它甚至可能吗?我们可以使用铸造或其他东西吗?

记住我不允许创建除已经创建的对象之外的任何其他对象,即main()中的C. 我今天在接受采访时被问到这个问题.

谢谢!

c++ polymorphism inheritance

4
推荐指数
1
解决办法
116
查看次数

为什么我们在pthread_create中将函数参数作为void*传递?

我刚刚开始了一个操作系统课程.所以我要问的问题可能是一个幼稚的问题,但没关系.我目前正在学习多线程.这是我的问题:每当我们使用pthread_create()创建一个线程时,为什么我们需要传递我们希望我们的线程在void*类型中运行的函数的参数?

例如,请考虑以下代码.

void *test(void* data)
{
   ...
}

int main()
{
      int temp;
      pthread_t tid;
      pthread_attr_t attr;

      pthread_attr_init(&attr);
      pthread_create(&tid, &attr, test, (void*)&temp);
}
Run Code Online (Sandbox Code Playgroud)

所以,在这里,

pthread_create(&tid, &attr, test, (void*)&temp);
Run Code Online (Sandbox Code Playgroud)

为什么我们需要将整数类型转换为void*.为什么不直接传递整数?同样地,而不是

void* test(void* data);
Run Code Online (Sandbox Code Playgroud)

为什么不这样,

void* test(int data);
Run Code Online (Sandbox Code Playgroud)

c++ multithreading operating-system

3
推荐指数
1
解决办法
1662
查看次数

停止Keil uvision在函数调用上推送寄存器

当我从main()调用包含无限循环的C函数时,它会在执行该函数之前在堆栈上推送一些寄存器.由于该函数包含无限循环,因此这些寄存器永远不会被弹出.

这是一个例子,

void My_Func (void)
{   
    int flag_1 = 1;

    while(1)
    {       
        if(counter > 5 && flag_1)
        {
            flag_1 = 0;
        }

        else if(counter > 550 && flag_1)
        {
            flag_1 = 0;
        }
   }    
}


int main(void)
{
    My_Func();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这里的计数器是一个全局变量.

当我调用My_Func()时,它会在执行函数之前推送R4,R5,R6.反汇编看起来像这样,

0x080004BC B470      PUSH     {r4-r6}
Run Code Online (Sandbox Code Playgroud)

然后功能执行开始.但由于函数内部存在无限循环,寄存器永远不会弹出.

有没有办法阻止KEIL IDE在执行函数之前推送寄存器,而不修改函数定义?

c assembly keil

3
推荐指数
1
解决办法
215
查看次数

如何在c ++中通过引用传递数组元素?

是否可以通过引用传递单个数组元素(以便传入的参数被修改)?例如,假设这是一个主要部分:

int ar[5] = {1,2,3,4,5};
test(&ar[2]);
Run Code Online (Sandbox Code Playgroud)

现在这是函数定义:

void test(int &p)
{
    p = p + 10;
    return;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码导致编译错误.

c++

1
推荐指数
1
解决办法
7308
查看次数

C - Strcmp()不起作用

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main()
{

const int SIZE = 100;

char input[SIZE];

while(1)
{
    fgets (input, SIZE - 2, stdin);          // input
    printf("%d", strcmp(input, "exit"));    //returining 10 instead of 0

    if(strcmp(input, "exit") == 0)
    {
        printf("SHELL Terminated\n");
        exit(0);    
    }

return 0;
}
Run Code Online (Sandbox Code Playgroud)

我正面临一个问题.如果我在变量中输入exitinput,则函数strcmp()返回10,但它应该返回0并退出程序,因为exit等于exit.但事实并非如此.

我找不到问题.

c strcmp

1
推荐指数
3
解决办法
932
查看次数

在C++中名称修改的目的是什么?

我在一篇文章中读到,编译器更改了函数(具有相同名称)的名称(名称修改),以避免名称冲突.

考虑以下示例.

void fun(int x)
{
    cout<<x<<endl;  
}

void fun(float x)
{
    cout<<x<<endl;
}

int main()
{
    fun(10);
    fun(10.5f);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

上面是函数重载的一个非常简单的例子.在编译代码时,编译器将更改函数名称,以便链接器可以在两个不同的调用之间进行链接.

问题:修剪需要什么?

由于参数具有不同的数据类型,因此可能足以与正确的函数链接.为什么那么,编译器执行Name Mangling?

c++ naming overloading

-2
推荐指数
1
解决办法
50
查看次数