-
既然解决了就应该共享下,呵呵
-
引用 2 楼 liukun321 的回复:
不过软硬的,至少熟悉操作系统,最好要了解系统内核,推荐的书《LINUX内核嵌入式系统开发实战指南(ARM平台)》,别的系统没接触过,本人也是菜鸟 仅供参考
你好啊 你这本书看了挺适合我的 你是买的 还是在培训机构送的啊
-
你移植过去的程序,会不会被OS的定时中断打断? 你从这里分析下。
-
天啊,我初学就是困难啊
帮顶
-
学习 +1
-
我和楼主有相同的问题
1楼的回答 我明白了
但是怎么区分地址呢?我的理解是rs485总线不是有两根线吗?一根叫A 一根叫B的话,是不是从机1接到AB上,从机2也接到AB上,那当信号在AB上传输时怎么知道是发给从机1还是从机2呢。。。。。
描述不清楚 请见谅 我主要就是对rs485总线没有概念 不能理解rs485怎么通信。。
-
引用 3 楼 zbtsep 的回复:
将串口驱动中的读FIFO深度配置为0.
能说得详细一点吗?不是很明白。
-
好像我调通了。可是不是我想要用的结果!
我想用TIME1 产生的TRGO 事件的频率来控制ADC1 采样的频率!
可这个列程只是TIME1 产生的TRGO 事件触发一个连继采样的ADC, 第二次采样的时间不可控!
-
你怎么做到的?
-
中断向量表放在0(DDRRAM的首地址,经过MMU后映射到0地址)。
7个向量都有, 如下,做成死循环是在测试,看有没有跳转过来
Vector_Table
Reset B Reset
Undef_Instruct B Undef_Instruct
SWI B SWI
Prefetch_Abort B Prefetch_Abort
Data_Abort B Data_Abort
Reserved_IRQ B Reserved_IRQ
IRQ B IRQ
FIQ B FIQ
-
经典
-
因为他是二维数组嘛 有行列之分嘛
f是第一行 一行有640个数据 数据类型是U16的
f++ 就指向第二行了
你应该看看C语言的多维数组指针那 讲的很清楚的
-
protues是仿真软件,keil是编译软件
-
刚才写漏一个。加入。
to:figo_liu1008,很感谢、
在probe里主要处理的步骤也是如下:
1)pdx = kmalloc(sizeof(DEVICE_EXTENSION), GFP_KERNEL);
2) memset(pdx, 0, sizeof(DEVICE_EXTENSION));
3)设置pci_dev字符设备名。
4)pci_enable_device(pci_dev)
5)pci_set_dma_mask(pci_dev, 0xFFFFFFFFULL)
6)pci_request_regions(pci_dev, pdx->device_name)
6+)pci_set_master(pci_dev);
7)资源映射
io_base = pci_resource_start(pci_dev, i);
io_len = pci_resource_len(pci_dev, i);
io_flags = pci_resource_flags(pci_dev, i);
8)ioremap(io_base, io_len);
9)设置自旋锁
10)pci_set_drvdata(pci_dev, pdx);
11)安装中断处理
12)clear int event
mask all int
这些是PCI驱动的probe主要处理,我们的PCI交互采用DMA方式。这处理问题在那里呢?
-
[quote]引用 4 楼 sunrain_hjb 的回复:
串口传文件,可以搞一个简单的协议,里面包括头、文件大小、文件的数据和尾,要可靠的话,再加一个检验。
[Quote]
这个方法可行,实现起来也比较简单。
-
看modbus的文檔 全部功能實現起來是有點麻煩 看网上有沒有現場的代碼 或是自己寫一個精簡的可以用就行
反正我原來寫好後 是賣了錢的
-
[img][/img]下午要出去,打字慢,先讲segment的用法。 我们可以用segment关键字将一段代码或申明的变量地位在一个特定的区域。要使用这要的办法,需要现在mapping.asm(针对汇编,C的话就是lkf)申明一个自定义段。比如我要申明一个mysegment {},放在ROM区域,里面打算放数组也好、代码的二进制文件也好,用户自己定。 对于汇编 ,打开mapping.asm: stm8/ ;------------------------------------------------------ ; SEGMENT MAPPING FILE AUTOMATICALLY GENERATED BY STVD ; SHOULD NOT BE MANUALLY MODIFIED. ; CHANGES WILL BE LOST WHEN FILE IS REGENERATED. ;------------------------------------------------------ #include "mapping.inc" BYTES ; The following addresses are 8 bits long segment byte at ram0_segment_start-ram0_segment_end 'ram0' WORDS ; The following addresses are 16 bits long segment byte at ram1_segment_start-ram1_segment_end 'ram1' WORDS ; The following addresses are 16 bits long segment byte at stack_segment_start-stack_segment_end 'stack' WORDS ; The following addresses are 16 bits long segment byte at 4000-45FF 'eeprom' WORDS ; The following addresses are 16 bits long segment byte at 8080-17FFF 'rom' WORDS ; The following addresses are 16 bits long segment byte at 8000-807F 'vectit' END ---------------------- WORDS ; The following addresses are 16 bits long segment byte at 8080-17FFF 'rom' 我们需要在ROM区添加一个段叫mysegment,地址在0xFF00到0xFFF0区域,我们自己手动添加这个段: WORDS ; The following addresses are 16 bits long segment byte at FF00-FFF0 'mysegment' 将上面的内容添加到ROM之后,Vectit之前(你现在明白之前为什么在C中中断向量 veciti 只是一个符合,而不是地址的定位了吧?)。保存。还有一种快速的方法是在STVD下使用IDE的界面,项目Project-Setting - ST Link里面改。 结果看截图:
-
问题已经解决。。唉。。。。。。。。。。。。。。。。。。。
-
MARK
学习,大家一起进步
-
顶一个,收下