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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 o5 c- R1 t, J/ N6 [#include <linux/init.h>
# t* a) c% r5 L#include <linux/module.h>
. ?0 P+ x0 T0 m#include <linux/kernel.h>) O7 ?& ^7 y1 \* T4 t9 Q
#include <linux/types.h>
& W: C. F/ V8 B8 r: x#include <linux/gpio.h>
7 W2 ?7 s. w; E, f' Z: k#include <linux/leds.h>/ `5 I* h! S& w& S6 h1 H$ K
#include <linux/platform_device.h>8 V5 ?; P( w' L, f+ R/ v

2 f, N6 i, B. u2 W4 I#include <asm/mach-types.h>
/ J1 I/ a) s. d# P" r0 z#include <asm/mach/arch.h>2 W* M6 v! h, z
#include <mach/da8xx.h>
: r3 U5 @" t6 b, x# n1 B#include <mach/mux.h>/ w+ F; O+ j) p/ O8 e

+ g" F( E# o$ g7 Q# C. L& S#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)7 L6 L; w# c3 h5 J
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 h" u* B2 z  `# U$ F+ F#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% b( w4 U- s# j  o- S2 n#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ B& H# k1 N  V3 N; F: m

- K" c+ n& W$ l" b6 a: o/* assign the tl som board LED-GPIOs*/% A$ l$ f9 T& f8 I# D% F- h
static const short da850_evm_tl_user_led_pins[] = {+ A9 L* B& n; D+ B2 }7 H
        /* These pins are definition at <mach/mux.h> file */
2 k9 X# _7 V0 M( B5 J- A        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ L3 f0 Z7 F$ P2 m/ b7 h
        -1
, Q, A2 P! ]8 q- N};1 [$ w" _8 _' ]* |
5 D) n5 V  [4 M7 f: v% j
static struct gpio_led da850_evm_tl_leds[] = {
+ o  s+ i2 \, @+ r/ x        {
: @/ X1 p( L) ?' `1 M! ?5 o                .active_low = 0,. b. B% z2 M% E& P, b" l9 K
                .gpio = DA850_USER_LED0,
& `1 [3 Y$ Z- g5 |0 @) s5 M                .name = "user_led0",  w5 e* ^" \" C9 U. }& C* O4 D
                .default_trigger = "default-on",! _4 n/ f9 z+ ~/ U0 y/ @7 j- Q
        },
/ \# c, k% F9 @) K0 Z' ?$ k        {- l' b* h+ ]4 L. h4 _. n5 W) Q
                .active_low = 0,* s  E5 n  ?* x" C9 Z
                .gpio = DA850_USER_LED1,  v3 q& S7 Q4 X6 j3 R5 ]
                .name = "user_led1"," G5 i! S3 [" z  [8 I
                .default_trigger = "default-on",$ w/ ~$ J) a4 |
        },- H, C7 k0 d* J7 P2 Y
        {
2 T+ w7 V5 W/ s3 v! ]7 c6 e                .active_low = 0,  Q+ t, q3 N1 l! ^1 E7 W, Y( f
                .gpio = DA850_USER_LED2,
' C. V* s8 a' Y0 ^8 C                .name = "user_led2",
( _6 h7 c4 h9 T5 A& ]7 d/ H* t0 i) h                .default_trigger = "default-on",
- z4 V4 V' q' ?8 x4 V: N! N        },2 [: |6 m4 Y/ `
        {& h. |$ l7 Y4 p% J4 r$ E; D; x7 ?
                .active_low = 0,
1 n/ Z( H/ r# R  P2 Y# D                .gpio = DA850_USER_LED3,  I( B0 p  d" r7 @' r
                .name = "user_led3",; m" u: s/ n- j+ l  W! q
                .default_trigger = "default-on",# X, A: {1 K* e' m3 ^7 y
        },
5 c0 _2 ^( S3 k3 [, H$ \};0 G: e+ s) O3 S! u- r- [/ v+ v! |. y4 n
) N* R' h4 _3 E2 m" d% Y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( `6 p' ]. X7 z0 G9 T; n
        .leds = da850_evm_tl_leds,
! _; r" r" n( o* j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# i5 x0 f* V0 T! N) N};
8 r  S- E1 s: [0 }
7 X/ [# j4 e# }/ u2 ~, Ustatic void led_dev_release(struct device *dev)
/ \- ~: ]4 \3 z$ F" @& s; l{
! z3 L. I; ?5 A/ o: ]};
  y! _* U0 M* W4 q7 q6 K5 f, v
& W' R' m# C( istatic struct platform_device da850_evm_tl_leds_device = {7 _. X7 c' w. K% ^) a( e; b9 h
        .name                = "leds-gpio",+ b' n& u0 Z" ]: l4 J! }& k/ H
        .id                = 1,
% S9 s8 Z- L; T3 U* {        .dev = {
% W- P$ b9 u$ s( r1 F* R2 o                .platform_data = &da850_evm_tl_leds_pdata,; A( b7 @9 ?# T4 w% ]. Y' \
                .release = led_dev_release,, D9 F# o: }" A& G! V
        }
+ s: `+ [( L+ W  B0 V/ c};
& j9 ]: Q& I. B+ o* a2 s) {, s' Y/ Y" x4 V$ [6 s% b; `
static int __init led_platform_init(void)
$ M0 h. {: t+ N. ^: r! f7 B{: h, e2 B- u" G3 c& t
        int ret;
1 c( Y) y) V) E, l#if 0
: I6 X9 n3 {5 z! l        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, D7 X! w: ^( t        if (ret)
5 e' m9 `' R4 ^  U8 S3 b                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% h2 `  ~% P1 i' t
                                "%d\n", ret);
7 J$ ~+ g9 F9 n" T2 J) U/ D5 \: {2 R#endif& \, g* L5 Y7 h  N: G/ _3 s+ S
        ret = platform_device_register(&da850_evm_tl_leds_device);, ?# I9 B! i2 b7 U
        if (ret)4 N6 G* E2 h; J
                pr_warning("Could not register som GPIO expander LEDS");" K9 k1 c5 L+ }' @0 }
        else
% Q7 r5 F6 n3 Y2 V3 A7 K- v& Z                printk(KERN_INFO "LED register sucessful!\n");* O! V0 z# }$ h5 V1 e, k) o1 q
( K% B1 r# h: v; [" z
        return ret;
$ S  J6 r% w" x) d# T. j% p  @" I}
3 g1 v2 [  a2 S" F8 Y7 |! t  z4 T) i
static void __exit led_platform_exit(void)6 P- S+ g3 r, e) E/ _- t
{
% l2 r- j! i$ j8 p& K8 X, j0 a        platform_device_unregister(&da850_evm_tl_leds_device);
! A2 k6 \2 @3 r! H3 e
" I( R; c$ x, t7 _) H        printk(KERN_INFO "LED unregister!\n");
5 O" N' l* T5 a8 }4 }& x! B}
, z& o3 Q3 E( h- |+ n7 i0 z5 b3 O1 O7 A* F0 j, {$ o
module_init(led_platform_init);3 h$ A0 y: C/ y0 @5 M9 @, ]1 c2 T
module_exit(led_platform_exit);+ S! ?! m0 s! `" W2 F

% t# g. j% j( k1 }1 AMODULE_DESCRIPTION("Led platform driver");
# i, n8 Y3 r8 C) XMODULE_AUTHOR("Tronlong");
9 b4 Z; r: Q6 A% z% y- G& yMODULE_LICENSE("GPL");
# u/ @8 G0 T! I/ T+ I& \* y' e4 X6 X* V6 z4 f  W; G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-10 20:49 , Processed in 0.039530 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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