我的设置包括使用eclipse的Espressif SDK和nodemcu,我想用C编程.
我已经完成了他所有的步骤,我可以从eclipse环境中编译和刷新电路板.我不按任何按钮来加载闪光灯,因为电路板可以自己处理(至少这是我读到的).根据这显然我有一个nodemcu 0.9,但我看到的板看起来不像图中的那个(微带天线看起来很奇怪......而在板的背面它说www.doit.am ESP12E devkit V2 ......我的天线甚至看起来都不像板子后面的网站上的天线.
我看着一切都继续前进.我在espressif上编写了一个眨眼的例子并将其闪现.我看到它创建了eagle.flash.bin和eagle.irom0text.bin并分别将它们加载到0x00000和0x10000(根据我读过的文档,这是可以的).当我重置电路板时,我可以看到它确实闪烁,并且由于LED闪烁,因此其中有一个程序.然后我尝试了hello_world示例.一切都相应的,我重置电路板后,我看到led继续以相同的频率闪烁,当我通过espressif提供的terminal.exe连接到电路板时,我只能在输出中看到垃圾,即使波特是根据代码更正(即便如此,我在terminal.exe中尝试了所有不同的bauds).
好的......然后我又回到了眨眼的例子,增加了眨眼之间的延迟.闪烁它,频率保持不变.我知道它创建了新的.bin文件,但仍然没有改变.这促使我创建了一个新项目.我是按照米哈伊尔·格里戈列夫提供的指示做到的.我只是放了一个无限循环,期望什么都没有,但是在刷新新编译的固件之后,我仍然可以看到LED以相同的频率闪烁,即使代码中没有任何内容,我甚至在之前擦过闪存(是的,我确认闪光灯是空的).
所以这导致我测试我可以编译的每个例子.我注意到有些人没有眨眼导致其他人这样做,就像什么都没发生一样.之后我下载了nodemcu固件,加载后我注意到它工作正常,我甚至可以在可用的wifi网络中看到ESP.
我真的不明白发生了什么.为什么有些例子有用而其他例子没有?为什么我不能修改一个简单的blinky的源代码并看到更改?我更喜欢以这种方式使用esp模块,因为我不喜欢arduino接口或者它使用静态设置和循环函数的方式,我不想在LUA中编程它.
我甚至检查了espressif提供的makefile,我能看到的唯一区别是BOOT和APP变量.我甚至尝试修改它们,但仍然没有变化.
有谁能够帮我?
我想知道是否可以在Windows Azure上将控制台应用程序写入端口.
控制台应用程序没有接口,它只是在不通知用户正在做什么的情况下完成其工作.在这种情况下,它将是一个套接字应用程序.
我不希望它成为一个网站.它不会是项目的任何补充.
编辑:谢谢大家这么快回复我.现在我得到了我一直在寻找的答案.现在我的问题是:它会在亚马逊上被称为什么?它是Azure上的工作者角色......现在我知道感谢大家
我已经注意到,实际上我在互联网上找到的关于绑定的每个例子都有一个类(绑定到另一个属性),它继承了INotifyPropertyChanged接口并在类'属性的set部分中使用了一个方法.
我已经尝试从绑定示例中删除该部分,它的工作方式与方法相同.
这是一个例子.我已经对它进行了修改,因此它将是一个TwoWay绑定模式,并在消息框中显示已更改的属性.
我这样做只是为了玩一点点绑定,但现在我真的不知道为什么使用该接口
XAML:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition Height="40"/>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>
<Button Grid.Row="5" Grid.Column="5" Name="btnBinding" Click="btnBinding_Click" Width="100" Height="30">
<Grid HorizontalAlignment="Left" VerticalAlignment="Center">
<Grid.RowDefinitions> …Run Code Online (Sandbox Code Playgroud) 我正在编程一个ARM Cortex-R4,我有一些二进制文件,我想从TCRAM执行它们,只是为了看看性能是否足够好.
我知道我必须编写一个函数来将二进制文件复制到RAM(可以使用链接器脚本完成,并且知道二进制文件的大小).但他们怎么会跑?
想象一下:第一个二进制文件有func1(),func2(),func3()和func4().我将整个模块复制到TCRAM,如何在那里调用函数?我必须使用指向该特定功能的函数指针?如果func4()调用func2()和func3()怎么办?如果我没弄错的话,他们会指向闪存中的代码片段.这是否意味着我必须重写那些功能?使用完全函数指针?我被告知只有链接器脚本足以完成所有这些,我不必担心任何事情,但我仍然不明白它是如何工作的.
我正在研究这个malloc函数,我可以使用一些帮助:
static void *malloc(int size)
{
void *p;
if (size < 0)
error("Malloc error");
if (!malloc_ptr)
malloc_ptr = free_mem_ptr;
malloc_ptr = (malloc_ptr + 3) & ~3; /* Align */
p = (void *)malloc_ptr;
malloc_ptr += size;
if (free_mem_end_ptr && malloc_ptr >= free_mem_end_ptr)
error("Out of memory");
malloc_count++;
return p;
}
Run Code Online (Sandbox Code Playgroud)
我知道malloc func为任何类型分配内存空间,如果有足够的内存,但我不理解的行是:
p = (void *)malloc_ptr;
malloc_ptr += size;
Run Code Online (Sandbox Code Playgroud)
它如何指向任何类似的数据类型?我只是无法理解void指针或其位置.
注意:malloc_ptr是unsigned long
我想知道是否可以从c ++代码访问处理器中断(我想我需要使用汇编代码).
这就是事情.我习惯使用嵌入式系统(PIC,ARM7和Atmel处理器),我可以毫无问题地编程中断(我使用C).所有寄存器都被映射,总而言之,这很容易,具体取决于应用程序.现在我正在使用x86和x64架构,我希望(强调WANT)能够在这些处理器中做同样的事情.
例如:我想在c ++中有一个运行代码的线程,该代码在不按Enter键(cin,getchar等)的情况下不断验证当前按下的键.我想编写一个定时器中断,以便我能够在特定时间执行操作.我知道我想做的很多事情都可以通过操作系统来完成,但我真的希望自己有这样做的自由.
目前我正在使用Linux(Ubuntu),但我很快就会使用Windows,如果这是回答这个问题所需的信息
我正在开发一个没有任何需要使用文件系统的操作系统的嵌入式应用程序.我和项目中的人一起经历了这么多次,有些人认为系统必须在发生电源故障时正确关闭系统,否则文件系统可能会疯狂.
有人说,如果你只是关闭系统并让大自然继续前进并不重要,但我认为这是最糟糕的事情之一,特别是如果你知道这会给你带来问题,并可能缩短你的产品寿命.
在最后一段我只是认为这是一个问题,但我的问题仍然存在:
断电对文件系统有影响吗?
我正在为LPC2148编写自己的驱动程序,我想到了一个问题.如何在UART中收到未指定大小的消息?
想到的唯一两件事是:1 - 配置看门狗并在时间用完时结束接收.2-使它无论何时向其发送消息都必须有消息字符结束.
在我看来,第一选择似乎更好,但我想知道是否有人有更好的答案,我知道必须有.
非常感谢你