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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 b. e- z( y8 x# o5 G#include <linux/init.h>
) Z" ?! u/ |! }' G#include <linux/module.h>
: l2 s: W. w& I- Y  S8 X#include <linux/kernel.h>
& T' v/ O3 M: v/ e$ q5 {#include <linux/types.h>
6 M" l) S7 K( V* B8 ^9 E6 Z#include <linux/gpio.h>
( ~( G: Y% m2 B6 b/ B/ g6 Q- o* O#include <linux/leds.h>
, e, c: A0 r3 ^% m3 b5 t#include <linux/platform_device.h>/ H/ {% `; l, w6 V5 h. ?

$ J; n/ d9 a$ z2 ~#include <asm/mach-types.h>* b2 A& m0 l# p2 h) M, X7 ]2 A* Z0 ]
#include <asm/mach/arch.h>
# m6 z3 w  G8 _/ q% i& p#include <mach/da8xx.h># X. U0 m8 j7 L  N9 G
#include <mach/mux.h>* b% Z0 e9 p( R- ]" K: d" u

5 h- o# x$ s( h2 u) F#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 z& b* _% @% m# u#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& o8 k, |  u+ v8 g/ \9 G2 e
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 C, f# q, n. U, W& ~. e#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 a1 D  r* F, a3 }3 `8 t1 x& X

( J/ G% ?% ?- d$ s/* assign the tl som board LED-GPIOs*/
! M3 Y( j  E. s, _. nstatic const short da850_evm_tl_user_led_pins[] = {% P  B7 z( G& |& J$ l) N$ x
        /* These pins are definition at <mach/mux.h> file */% K9 F  ]: s) y/ J! E( R
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 T' h8 h0 {- T% b- B2 R( U3 K        -1
. ?* b! @" \% G( ]# [' J$ i};
$ c" q- P- {; X$ M  ^  a+ w' @9 P0 i' ?0 o
' v9 x: l9 A& y$ W7 }static struct gpio_led da850_evm_tl_leds[] = {
3 B( D( ]. L6 K- H5 w: o$ Q* b* z1 x        {
) w, h6 S% P' n0 v- X                .active_low = 0,
9 Q% [3 v3 a4 N9 r% g                .gpio = DA850_USER_LED0,# {) J9 Z8 e& v5 k9 p0 X3 r. F
                .name = "user_led0",; F+ _1 k) @& |$ Q! r
                .default_trigger = "default-on",( }1 L' F$ ~1 M  |
        },7 H2 X. m8 p% f: {4 C& s
        {
4 w* T" I' Y! K% }& _                .active_low = 0,
' O% k2 j2 f# `" K& g                .gpio = DA850_USER_LED1,
+ k% {! L% q4 Q5 q1 Y  Q( a4 Q                .name = "user_led1",0 y1 O7 c' C# E" {/ Q( s7 A. J
                .default_trigger = "default-on",
: c. I7 Q$ a& B        },/ p: b' ?; k. o
        {
' G" ~+ j2 e. e/ [                .active_low = 0,8 y1 c$ f1 \, K$ i: R
                .gpio = DA850_USER_LED2,
8 X' M7 t, N9 Q3 Z" |0 k                .name = "user_led2",7 s. J$ h4 w9 j; b( J
                .default_trigger = "default-on",6 ~# _: F4 z% o5 y
        },% ?! r& j2 i/ |$ P
        {8 N7 U/ M1 N# g$ s" o- W
                .active_low = 0,
" c. M7 S9 m2 e( t4 V( u0 }                .gpio = DA850_USER_LED3,
; h5 Q% G/ r" {. J+ J/ T( T                .name = "user_led3",6 S) Z# u1 G7 J3 g* I
                .default_trigger = "default-on",; Q% H5 |$ i& s& `+ t2 u7 f, _7 U  P
        },
$ H  s$ Y- ~5 V};
. D" s% H0 x6 B) Z; O) \! F; s# K1 B: c
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* l9 t  c8 G8 A; U+ ^
        .leds = da850_evm_tl_leds,
% }, u) o2 _8 m  _" S2 N+ R        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: |$ \; g4 s6 J
};# c! O5 j( Z" ]5 b8 S% e" t8 Z9 T

: v% d1 h+ [7 {* X9 tstatic void led_dev_release(struct device *dev)* ~; N) d3 F" E" l
{9 e7 c3 L3 H, w6 T
};
4 _5 q& N$ g2 c: L) G- R6 P& Q. l0 d3 Q- d# d- X
static struct platform_device da850_evm_tl_leds_device = {9 H( E1 E% a. F' L$ N. m
        .name                = "leds-gpio",/ z' B; M2 ]+ j, G1 _' Z0 ?
        .id                = 1,
+ r7 h! _+ y; j2 |2 M        .dev = {
! p* s1 h& N' @8 e/ J7 m/ b/ g* T. o                .platform_data = &da850_evm_tl_leds_pdata,: G& a/ Y. W8 W% g' z2 G4 d) i
                .release = led_dev_release,
. N6 S5 _! D6 Z; @        }! L1 M2 s9 E; D, k1 q% v9 a
};
! _, r- s0 t+ s5 N9 u4 `
0 A& D( V/ f: B- _3 t7 T0 K6 l1 o+ ustatic int __init led_platform_init(void)
" s7 S. j' m5 a{
$ a3 b! Q: z' E9 B        int ret;
9 r, R2 @) y2 U) T$ v0 {' ?#if 0$ o8 P# e0 j+ H3 U
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 K- M6 I" m' u9 I) g) w% _
        if (ret)0 T: f, w( @7 ^+ w% _# F
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% P8 g- O( x4 F  [                                "%d\n", ret);
2 y  ~0 c7 k% s6 J#endif
$ F& u# U! A6 @5 L3 @. y        ret = platform_device_register(&da850_evm_tl_leds_device);/ L+ z& o* ~- {- i5 I( f4 v. t
        if (ret)
5 p' A0 n4 T6 A8 E( W0 D0 W: M                pr_warning("Could not register som GPIO expander LEDS");0 U4 [; w- w% R1 ^
        else
) @$ G# d! j; \4 X                printk(KERN_INFO "LED register sucessful!\n");
, V+ P8 a/ e* J" @& m
! h2 i" M6 S4 c& M% d. s        return ret;- v5 A. l/ ?5 h4 H  o4 r
}
, {; ^# p( H/ A% r) W0 H3 f; u
' C0 f: p, E8 _  V% I8 [6 sstatic void __exit led_platform_exit(void)
3 F. v! h0 C2 F- {, f. Z{
! _, [5 J$ K7 T        platform_device_unregister(&da850_evm_tl_leds_device);
9 b( {( a" A9 W% @
- T2 f1 B& a" O' n) z        printk(KERN_INFO "LED unregister!\n");# S( Y9 j) ]6 E
}
  B4 ~$ ~/ ~6 ?, V; S- S" a8 {) U  y! p. s0 @0 F
module_init(led_platform_init);# q: E* k# w  N0 d* g) h8 [7 g
module_exit(led_platform_exit);+ W) \! F6 b: A+ H) H! U! b
- S7 \- x: V( @  D/ i
MODULE_DESCRIPTION("Led platform driver");
& W: g/ J& ~. j# z( ~MODULE_AUTHOR("Tronlong");+ Y, W8 l- B+ a' c, s9 B
MODULE_LICENSE("GPL");- g3 t" T9 b. v% [& J! M: S
1 W- ^+ C1 I! G* k6 X. b% `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-26 14:12 , Processed in 0.039692 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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