程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10988|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: }1 Y; o3 P) I2 L: P#include <linux/init.h>
0 b9 c( |6 g* f" U#include <linux/module.h>
  m0 h7 ]  S" K* p#include <linux/kernel.h>
2 V  }- G1 [7 ~! X& v  n4 h% d#include <linux/types.h>. L; b0 p5 O: D* r
#include <linux/gpio.h>
7 I' a  Z3 s& w& s. Y#include <linux/leds.h>0 Y6 T7 e5 f8 r# r& ?
#include <linux/platform_device.h>) @& x/ ~* E0 ^
6 r' T' q) [# W" T; T. T
#include <asm/mach-types.h>
0 W9 I& r, N0 G, e- a# X' T* {#include <asm/mach/arch.h>
* n5 R7 q2 o( x* A) [0 V- [#include <mach/da8xx.h>
- r& j! |3 @" u( j, O2 d#include <mach/mux.h>& P: v) y* f) O2 W" h6 Y6 i

2 @6 A% {2 [7 k) L* S#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 I7 R: w4 l) g0 E#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 H3 E: I; w" [% i5 R! ~! c7 S
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): @- H% c$ {" D* `7 k
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 E5 T4 i5 n- j9 g& R9 j2 w' S% ~  L/ @7 m' w+ {/ _0 U4 [
/* assign the tl som board LED-GPIOs*/
2 h& P7 k0 r8 bstatic const short da850_evm_tl_user_led_pins[] = {; L6 j7 E9 C# b8 Y1 ^7 O
        /* These pins are definition at <mach/mux.h> file */, S  T( c# p) [7 |: p
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; w6 v$ q. [' g9 y" r1 \        -1
8 |) F  i7 ^9 w};4 a* `  Z, Z* \, p; ]3 H, j" L
: B5 g3 v5 V8 H$ m8 \* ]3 Y
static struct gpio_led da850_evm_tl_leds[] = {
( {9 W: l3 H" j5 p        {4 w& C" O5 e2 q4 x' d% c
                .active_low = 0,
4 [' O. z" |( ^' n$ u                .gpio = DA850_USER_LED0,' x! _1 B& Q$ s$ E& ]) \$ Y
                .name = "user_led0",
8 M7 F4 K% [* B' }' n" N                .default_trigger = "default-on",) |! y4 O& T* [: W$ T
        },
& _& \$ n) d# ]+ v6 k, l        {0 f; ?% L) _( B7 D- u# ]9 {
                .active_low = 0,3 Q8 z5 Z. C7 {0 {+ S, S
                .gpio = DA850_USER_LED1,
0 v1 T% w: S( f* ~4 d6 I                .name = "user_led1",
. N8 B+ I  s2 V, E0 U0 g1 V                .default_trigger = "default-on",
6 B* d  K/ ]+ D- @. ?0 Q, a        },. `# M4 p7 F" U2 |1 A* X
        {8 x" C1 e6 h4 @- \
                .active_low = 0,7 X, Y$ Y& e1 }. U+ x
                .gpio = DA850_USER_LED2,
/ K  E  v6 p4 Z* T+ p$ i% G                .name = "user_led2",7 `. X7 _5 C7 J+ j: r: q% n) [! f: G
                .default_trigger = "default-on",1 F7 G2 j' }$ A
        },
% k* o- P2 L5 u! M  U% E0 n        {  `; w& M' R0 s2 E6 {9 D
                .active_low = 0,
1 ~7 v. y) e) \3 `/ I8 n                .gpio = DA850_USER_LED3,
$ O% z/ X4 R* u: ~. v: K                .name = "user_led3",7 S: n8 [4 A' X! s7 A& H6 l) L
                .default_trigger = "default-on",, {7 E; t" {4 y
        },
8 T4 _8 Z2 S8 f9 b};8 ~/ u* q& c' |* t1 H7 {

( n. o  O: f6 Y* w: C: rstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  `' e# d8 Q# n5 n4 ?* `* Z& Y        .leds = da850_evm_tl_leds,& f6 z' W+ G4 G& |
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* }& @- {/ [, t" L: P& c/ [9 M};
5 A8 R$ [( f0 ~
# J' T  O  m' B7 D/ b/ a& v' P- v1 }static void led_dev_release(struct device *dev)
' O0 p8 d* \" Y2 E{  u/ D0 Y- p( O9 E- H6 m, r
};$ ?) O+ a1 v/ m3 d; F! n  ~9 ?

3 T7 X/ a* A6 c, ?6 c9 Qstatic struct platform_device da850_evm_tl_leds_device = {
. a8 x3 D+ b( x9 w  r' n) S$ T        .name                = "leds-gpio",
! C, I' t) p0 j/ d        .id                = 1,
* D# B$ R( I: d+ S( A: u        .dev = {; H9 _* A+ V& q' P9 r
                .platform_data = &da850_evm_tl_leds_pdata,/ g2 q& }1 k. p+ D; R: W' E2 O
                .release = led_dev_release,) q# p  C7 I: M, G( M% h1 |
        }8 \7 ~! K/ N# t' Q0 J
};8 i$ _- w; G+ v9 O; j& W. u: O
' o  O& s7 {3 ~# y9 ?! D5 t
static int __init led_platform_init(void)
  d7 A, g% ^5 v{0 I0 |% S: J# s1 e6 C  I2 ?
        int ret;
7 p* O$ D' Q  a2 m0 `#if 0
$ V' H: `  \% G) h        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 l) ~: _- r0 r( b
        if (ret)
* p1 |, K8 ?3 V+ s                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: k2 z/ j, m, B4 @) t                                "%d\n", ret);6 \# F( W: R2 Y. t9 C1 T2 x3 X
#endif, `8 `" u+ m( @
        ret = platform_device_register(&da850_evm_tl_leds_device);& A* b/ M  e( b. _
        if (ret)' X0 y" t0 ^, z
                pr_warning("Could not register som GPIO expander LEDS");
+ k/ P! s' d8 o        else) M/ Q3 t. F) x7 E4 @) b
                printk(KERN_INFO "LED register sucessful!\n");
& |8 d# X. J. s+ U+ t3 d- [- |/ k; B: @
        return ret;
: q7 v8 E+ |$ ]- s( Y$ V- t}' p$ Y: F; ^% Q% D+ k
! i0 @2 r& }, X! S
static void __exit led_platform_exit(void)
3 X% j  D, D  V' |, d{
; s* ^3 j4 n# H; e        platform_device_unregister(&da850_evm_tl_leds_device);+ W% i8 M6 U5 M2 s- i6 u4 v
- I/ ]( m5 k/ |8 A  m1 g
        printk(KERN_INFO "LED unregister!\n");/ n  c4 Z6 a7 u) D3 r$ o
}3 X( t! r# K! {: W! ?( G5 Q7 `- k
5 T. U) |# n/ ?9 p
module_init(led_platform_init);7 S" M. U" m1 @9 T  ]8 X  t$ V- w$ I
module_exit(led_platform_exit);) ~  f% J3 _. \5 s3 Z

$ L1 O, h* s+ q1 PMODULE_DESCRIPTION("Led platform driver");
- C, R  o- `; X( B, XMODULE_AUTHOR("Tronlong");
% u9 T+ `  ^' W' Q4 Q( H4 z' eMODULE_LICENSE("GPL");
, C0 `3 T; j" S3 ~7 w6 Y( i. L4 W, a! I# f/ b' }. R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-4-4 14:04 , Processed in 0.039304 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表