留言板
路过的蜗牛们,在这里留个脚印吧~
蜗窝欢迎各种言论,谈天说地、技术交流、问题求救、跳槽招聘、牢骚抱怨……哈哈。
评论:
韩应波
2017-10-23 16:23
2017-10-23 16:23
大神你好!
我是一个前端开发人员,最近在开发一个蓝牙开锁的app,使用webapp进行开发,但遇到了难题。因为需要通过广播的方式来广播密码(我看到您的文章中有提及这种方式)。因为我对原生java代码不熟悉,所以不知道怎么来实现发送自定义数据的广播。希望能够得到您的指点。万分感谢
我是一个前端开发人员,最近在开发一个蓝牙开锁的app,使用webapp进行开发,但遇到了难题。因为需要通过广播的方式来广播密码(我看到您的文章中有提及这种方式)。因为我对原生java代码不熟悉,所以不知道怎么来实现发送自定义数据的广播。希望能够得到您的指点。万分感谢
wowo
2017-08-15 16:07
2017-08-15 16:07
@黄小俊:你是指这个吗?
http://www.wowotech.net/u-boot/boot_flow_1.html
或者用uboot的tag查查?
http://www.wowotech.net/tag/u-boot/page/2
文章应该不会删的。
http://www.wowotech.net/u-boot/boot_flow_1.html
或者用uboot的tag查查?
http://www.wowotech.net/tag/u-boot/page/2
文章应该不会删的。
tuonioo
2017-04-26 16:52
2017-04-26 16:52
hi,大神你好, 最近在看 内存屏障的问题。有个问题想请教一下。
在我的理解 多数用户态软件开发设计多数情况不需要考虑memory barrier的问题。因为共享/临界资源的保护已经在多线/进程 设计时候(采用locker 之类的) 消除了cpu cashe 不同步问题。 但是在想用无锁算法的时候, 比如用__sync_add__fetch 系列函数就需要考虑memory barrier. 这个理解正确吗?
另外查了很多文档 关于__sync_synchronize。 但是 讲解都比较模糊, 说__sync_synchronize 其实就是内核的mfence(). 可是我的理解 __sync_synchronize()针对的应该是 gcc 编译器以及cpu 而mfence 就只是针对cpu吧?
在我的理解 多数用户态软件开发设计多数情况不需要考虑memory barrier的问题。因为共享/临界资源的保护已经在多线/进程 设计时候(采用locker 之类的) 消除了cpu cashe 不同步问题。 但是在想用无锁算法的时候, 比如用__sync_add__fetch 系列函数就需要考虑memory barrier. 这个理解正确吗?
另外查了很多文档 关于__sync_synchronize。 但是 讲解都比较模糊, 说__sync_synchronize 其实就是内核的mfence(). 可是我的理解 __sync_synchronize()针对的应该是 gcc 编译器以及cpu 而mfence 就只是针对cpu吧?
linuxer
2017-04-26 19:12
2017-04-26 19:12
@tuonioo:在我的理解 多数用户态软件开发设计多数情况不需要考虑memory barrier的问题。因为共享/临界资源的保护已经在多线/进程 设计时候(采用locker 之类的) 消除了cpu cashe 不同步问题。 但是在想用无锁算法的时候, 比如用__sync_add__fetch 系列函数就需要考虑memory barrier. 这个理解正确吗?
-------------
同意你的观点。Linux内核中提供的同步原语都隐含了memory barrier的功能。
另外查了很多文档 关于__sync_synchronize。 但是 讲解都比较模糊, 说__sync_synchronize 其实就是内核的mfence(). 可是我的理解 __sync_synchronize()针对的应该是 gcc 编译器以及cpu 而mfence 就只是针对cpu吧?
-------------
__sync_synchronize是full memory barrier,其实说memory barrier的时候其实就是针对CPU而言的,阻止编译器重排指令的叫做optimizer barrier。
-------------
同意你的观点。Linux内核中提供的同步原语都隐含了memory barrier的功能。
另外查了很多文档 关于__sync_synchronize。 但是 讲解都比较模糊, 说__sync_synchronize 其实就是内核的mfence(). 可是我的理解 __sync_synchronize()针对的应该是 gcc 编译器以及cpu 而mfence 就只是针对cpu吧?
-------------
__sync_synchronize是full memory barrier,其实说memory barrier的时候其实就是针对CPU而言的,阻止编译器重排指令的叫做optimizer barrier。
tuonioo
2017-04-27 13:34
2017-04-27 13:34
@linuxer:谢谢 linuxer 大神,
__sync_synchronize是full memory barrier,其实说memory barrier的时候其实就是针对CPU而言的,阻止编译器重排指令的叫做optimizer barrier。
所以 也就是说 __sync_synchronize 并不们祈祷 optimizer barrier的效果, 仅仅是一个 full mb。
__sync_synchronize是full memory barrier,其实说memory barrier的时候其实就是针对CPU而言的,阻止编译器重排指令的叫做optimizer barrier。
所以 也就是说 __sync_synchronize 并不们祈祷 optimizer barrier的效果, 仅仅是一个 full mb。
linuxer
2017-04-27 19:26
2017-04-27 19:26
@tuonioo:不是这样的。
optimizer barrier实际上只会被编译器感知到,对于CPU而言,它根本不知道optimizer barrier的存在,因此optimizer barrier实际上是software barrier。而memory barrier是对应CPU指令,可以被cpu感知到的,因此它是hardware barrier。任何hardware barrier都是隐含了software barrier的功能。
optimizer barrier实际上只会被编译器感知到,对于CPU而言,它根本不知道optimizer barrier的存在,因此optimizer barrier实际上是software barrier。而memory barrier是对应CPU指令,可以被cpu感知到的,因此它是hardware barrier。任何hardware barrier都是隐含了software barrier的功能。
Jay
2017-03-27 20:43
2017-03-27 20:43
请教个armv8相关的问题,core实现了EL3/EL2,那么启动的时候core在EL3,这个时候的代码执行也是在EL3,那么boot代码把bootloader(uboot)load进来后,这个时候需要切换EL吗?如果不切,那么uboot同样也是执行在EL3,uboot加载kernel,(kernel 一般都是在EL1运行),那么uboot就需要切换到EL1去吗?
foolishungry
2017-03-22 20:27
2017-03-22 20:27
wowo你好!目前在做一个项目,想要利用BLE设备的RSSI来检测周边的处于ISM频段的无线信号状态(类似于http://www.sharebrained.com/2011/05/24/ubertooth-spectrum-analysis-fun/)
但是发现普通的BLE设备读取RSSI时,要么是通过Advertising PDU得到advertising channel的RSSI,要么是建立连接后监测该连接的RSSI。我想要实现的是持续扫描BLE各个channel的RSSI,不知道这在一般的BLE设备上能不能实现?
在CC2540手册上看到了direct test mode,其中的HCI_EXT_ModemTestRxCmd似乎可行。但不知道一般的设备(如android手机)能否实现这样的对各个channel的RSSI持续采样?
最后,感谢wowo!在这里学到了很多!
但是发现普通的BLE设备读取RSSI时,要么是通过Advertising PDU得到advertising channel的RSSI,要么是建立连接后监测该连接的RSSI。我想要实现的是持续扫描BLE各个channel的RSSI,不知道这在一般的BLE设备上能不能实现?
在CC2540手册上看到了direct test mode,其中的HCI_EXT_ModemTestRxCmd似乎可行。但不知道一般的设备(如android手机)能否实现这样的对各个channel的RSSI持续采样?
最后,感谢wowo!在这里学到了很多!
功能
最新评论
- wangjing
写得太好了 - wangjing
写得太好了! - DRAM
圖面都沒辦法顯示出來好像掛點了。 - Simbr
bus至少是不是还有个subsystem? - troy
@testtest:只要ldrex-modify-strex... - gh
Linux 内核在 sparse 内存模型基础上实现了vme...
文章分类
随机文章
文章存档
- 2025年4月(5)
- 2024年2月(1)
- 2023年5月(1)
- 2022年10月(1)
- 2022年8月(1)
- 2022年6月(1)
- 2022年5月(1)
- 2022年4月(2)
- 2022年2月(2)
- 2021年12月(1)
- 2021年11月(5)
- 2021年7月(1)
- 2021年6月(1)
- 2021年5月(3)
- 2020年3月(3)
- 2020年2月(2)
- 2020年1月(3)
- 2019年12月(3)
- 2019年5月(4)
- 2019年3月(1)
- 2019年1月(3)
- 2018年12月(2)
- 2018年11月(1)
- 2018年10月(2)
- 2018年8月(1)
- 2018年6月(1)
- 2018年5月(1)
- 2018年4月(7)
- 2018年2月(4)
- 2018年1月(5)
- 2017年12月(2)
- 2017年11月(2)
- 2017年10月(1)
- 2017年9月(5)
- 2017年8月(4)
- 2017年7月(4)
- 2017年6月(3)
- 2017年5月(3)
- 2017年4月(1)
- 2017年3月(8)
- 2017年2月(6)
- 2017年1月(5)
- 2016年12月(6)
- 2016年11月(11)
- 2016年10月(9)
- 2016年9月(6)
- 2016年8月(9)
- 2016年7月(5)
- 2016年6月(8)
- 2016年5月(8)
- 2016年4月(7)
- 2016年3月(5)
- 2016年2月(5)
- 2016年1月(6)
- 2015年12月(6)
- 2015年11月(9)
- 2015年10月(9)
- 2015年9月(4)
- 2015年8月(3)
- 2015年7月(7)
- 2015年6月(3)
- 2015年5月(6)
- 2015年4月(9)
- 2015年3月(9)
- 2015年2月(6)
- 2015年1月(6)
- 2014年12月(17)
- 2014年11月(8)
- 2014年10月(9)
- 2014年9月(7)
- 2014年8月(12)
- 2014年7月(6)
- 2014年6月(6)
- 2014年5月(9)
- 2014年4月(9)
- 2014年3月(7)
- 2014年2月(3)
- 2014年1月(4)
2017-11-07 17:10