小编din*_*esh的帖子

将变量从include伪指令传递给sub-make

寻找一些帮助在makefile中将变量从一个级别传递到下一个级别.我有一个源树,需要构建为在各种目标体系结构上运行.为了保持更高级别的makefile干净,我创建了包含特定于体系结构的信息的单独的makefile,并且只包含使用include伪指令所需的那个.

稍后在makefile中我转移到另一个目录来构建源文件.构建失败,我发现失败是由未传递的体系结构特定变量引起的.

ifeq ($(ARCH), my_arch)        |
include build/my_archdefs.mk   |  section 1 
endif                          |

<more commands>
debug:
      $(MAKE) -C src debug
Run Code Online (Sandbox Code Playgroud)

构建代码树的makefile位于src目录中.作为一个间隙测量,我在上层makefile中包含了上面引用的第1节,在这种情况下,我注意到变量ARCH没有传递下来.

以下是我发现的几个链接似乎相关但我无法弄清楚我需要做些什么让这个工作. http://www.gnu.org/software/make/manual/html_node/Options_002fRecursion.html#Options_002fRecursion http://www.gnu.org/software/make/manual/html_node/Include.html

在我看来,我需要的信息潜伏在我上面引用的链接中,但我只是没有看到它.任何指针都将非常感激.

谢谢.

makefile

7
推荐指数
1
解决办法
2万
查看次数

打算在Android外设上接收有关BLE连接事件的通知

我正在开发在Android上运行的外设模式BLE应用程序。有一对夫妇的描述如何开发周边模式应用优秀功能的例子在这里这里

示例应用程序和我需要开发的系统之间只有一个细微的差别。在示例应用程序中,GATT服务器在外围设备上运行。外围设备做广告,中央扫描并找到设备,然后向GATT服务器发送请求。

在我的系统中,GATT服务器将位于中央模式设备上。外围设备将接收连接请求,需要查找请求设备的地址并启动与中央模式设备上GATT服务器的连接。

命名和详细操作

MyApp(BLE外围设备;广告商,GATT客户端)

TgtDev(BLE中央;扫描仪,运行GATT服务器)

  1. TgtDev一直在扫描并寻找具有特定UUID的广告。
  2. MyApp已启动,并开始宣传其存在。
  3. TgtDev检测到MyApp并发送连接请求。
  4. 收到连接请求后,MyApp将请求用户接受或拒绝连接请求。此时,它将需要读取请求连接的设备的地址。
  5. 如果用户接受,MyApp将请求连接TgtDev上的GATT服务器。
  6. 如果用户拒绝请求,MyApp将停止广告。

我的应用程序的代码如下所示。收到连接请求后,我想在MyApp上收到意向书。看起来应该可以通过对registerReceiver()进行适当的意图过滤来实现。但是,在发出连接请求时,我看不到BroadcastReceiver被调用。

提供但不使用GattCallback()函数的实现。要注册回调,我需要与之连接的设备的地址。

关于我在这里缺少什么的任何建议?

编辑:添加有关系统和Android日志消息的信息。运行5.1的外围设备Nexus 6。MyApp targetSdkVersion 21.跟踪TgtDev上的代码路径我可以看到MyApp接受了连接事件。我能够通过BLE嗅探器确认这一点。

日志消息。

I/ActivityManager(  802): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.user.advertiser/.PeripheralActivity (has extras)} from uid 10034 on display 0
V/WindowManager(  802): addAppToken: AppWindowToken{2ff62ab token=Token{225f8cfa ActivityRecord{f3dc325 u0 com.example.user.advertiser/.PeripheralActivity t89}}} to stack=1 task=89 at 0
V/WindowManager(  802): Adding window Window{2d18b520 u0 Starting com.example.user.advertiser} at 3 of 9 (after Window{14f690b7 u0 com.google.android.googlequicksearchbox/com.google.android.launcher.GEL})
D/BluetoothManagerService(  802): checkIfCallerIsForegroundUser: valid=true callingUser=0 parentUser=-10000 foregroundUser=0
D/BluetoothManagerService(  802): checkIfCallerIsForegroundUser: …
Run Code Online (Sandbox Code Playgroud)

android bluetooth android-intent bluetooth-lowenergy android-bluetooth

6
推荐指数
0
解决办法
1479
查看次数

配置minicom以使用硬件流控制

寻找一些帮助来测试具有OMAP L138的硬件流控制的UART实现。为了测试实现,我使用minicom了模拟串行链接的另一端的方法,并且正在寻找一些有关如何配置它的见解。

我有一个简单的应用程序,它通过UART将消息从OMAP发送到minicom。如果OMAP和minicom均配置为不使用硬件流控制,则此操作将按预期进行。当我打开硬件流控制时,在minicom上看不到任何输出。

这是我遵循的步骤列表:

  • 将minicom配置为使用硬件流控制(Ctl AO打开minicom串行端口设置菜单,并按F启用硬件流控制)。
  • 使用stty我启用rts / cts握手stty -F /dev/ttyS1 crtscts。使用命令,stty -F /dev/ttyS1 -a我可以确认已启用crtscts。

上面的两个更改确保在终端程序和UART驱动程序中启用了硬件流控制。OMAP上的UART也已配置为使用硬件流控制。

但是,上面列出的对minicom的更改似乎不足以使流量控制正常工作。启动应用程序后,来自OMAP的RTS(发送请求)信号变低,从而向minicom指示它要发送数据。如果配置正确,minicom应将OMAP的CTS(清除发送)信号拉低,并开始接受数据,直到达到指定的接收缓冲区阈值为止。这不会发生。OMAP的CTS输入始终为高。只是为了踢一下,我尝试在OMAP和voila上将RTS与CTS短路,期望的消息确实会在minicom上显示!这是一张图像,显示了两者如何连接。

Omap与Minicom的连接

从我的尝试来看,好像我在配置minicom的方式中缺少了一些东西。任何建议表示赞赏。

hardware embedded omap flow-control uart

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