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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ U* {2 _2 u+ F( D8 B1 ^. ]
#include <linux/init.h>. H* ]) M2 @# J! m$ ~* R0 n
#include <linux/module.h>6 X$ K9 M$ _: w
#include <linux/kernel.h>
, Z- u/ N6 p/ i$ G3 A+ I#include <linux/types.h>0 G- E$ C  K* O- `1 S- j' {
#include <linux/gpio.h>
, t' k+ G" d! v: n#include <linux/leds.h>
- f3 z) D% A, A: \8 ]1 A+ ^- h' F2 s#include <linux/platform_device.h>
/ d0 g; L6 H& O2 Y6 v5 Q  k( T% g0 F% @$ Z" R
#include <asm/mach-types.h>( I3 d3 ~/ e, g: T: R
#include <asm/mach/arch.h>6 {6 _. [1 b, V* W2 I
#include <mach/da8xx.h>
3 a9 H9 U# ]+ O  L9 m, I' A#include <mach/mux.h>& J" x- u! v- _& Q' S! ^
7 _9 v; g% K/ R, I& _1 ?3 }$ e% ~8 u, w
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 I% Z$ U4 ^* C9 t1 a  G' x#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. M1 e& w1 ]  g! D' d1 N#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ \. U; f3 f5 C7 _& N
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)$ F2 h& Q: X% D
% Y/ u# c; K3 x0 X/ O
/* assign the tl som board LED-GPIOs*/
; w5 n& F; g3 u0 f, D8 nstatic const short da850_evm_tl_user_led_pins[] = {
! }4 I$ z9 _2 A# L; Q: n        /* These pins are definition at <mach/mux.h> file */  S+ `$ y6 y: U( m9 Q% c: ?3 n/ K
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 S8 v4 O* j- e$ j. |
        -1& j1 P' i4 R! n
};* `# O. l- J3 S( ]& o1 A* G+ B' A1 }7 v

( i2 n3 Y- _! H( n% X8 ?static struct gpio_led da850_evm_tl_leds[] = {" y& k- j5 y" J
        {9 O0 g$ V# {( Z0 N/ J
                .active_low = 0,4 P# l9 p" g: [7 T7 f1 ^
                .gpio = DA850_USER_LED0,
! U/ D2 f1 ^- g. l  C! ?' H' z                .name = "user_led0",
: T: m% ~$ P; J2 Q6 h                .default_trigger = "default-on",
. s- Z0 Z' K) T0 c2 z- d* Q        },+ F& N8 N2 I% D( \
        {$ I! r& d. J$ z6 q* D. h- {
                .active_low = 0,
; O4 t- y  {) z% f/ T                .gpio = DA850_USER_LED1,
/ n- a! N" `" g. ?+ Q; g% }                .name = "user_led1",
# V% a# N* @; y- E                .default_trigger = "default-on",6 s9 r- k2 _) m3 _
        },( t9 a# V) B5 o2 [
        {7 l/ o, [6 c3 ^
                .active_low = 0,
; H$ E0 z$ h8 Z; g- w: E5 y                .gpio = DA850_USER_LED2,0 b# [$ @0 B  G4 b5 q0 y2 q3 Y% B
                .name = "user_led2",! V! b/ x, G) {; o# t" K0 P9 {; M" t
                .default_trigger = "default-on",  t- G0 v7 C  ?" _5 p
        },/ `1 X* b  J/ ]: K4 X$ o& W0 K4 }
        {
# ?. S1 z7 q/ S$ e4 k                .active_low = 0,5 |" q& @6 T0 ?( D- |: q' M2 F
                .gpio = DA850_USER_LED3,; I2 F& P+ c7 s7 g5 N
                .name = "user_led3",
# s2 F% x/ e0 O5 f' k* i; A# \' y                .default_trigger = "default-on",2 r, x2 p6 n% v# g  n" K
        },8 [2 H( l1 O, z6 @' m
};0 L4 E* a/ l; Y9 }5 i* j+ R0 W

( ?2 ?' ~5 W  k8 M$ S% [static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; H" z) _" O8 T: l1 t
        .leds = da850_evm_tl_leds,1 B( i" |1 T/ Y# _1 S3 q" T0 m9 n
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& h; Y& _" u' C5 n5 A; w$ e
};7 J/ g& a5 S, F  I7 i

; ^% S; p* l9 \, V( b1 O( `: |static void led_dev_release(struct device *dev)1 i( H, w/ K7 ?' M9 f4 S
{
$ t7 C, [; E) W# x9 W* g};$ ?* j3 J; y- f8 c& h
: V) d- n& p/ D! q4 {
static struct platform_device da850_evm_tl_leds_device = {
7 ~; h2 \2 K9 r- V2 y        .name                = "leds-gpio",/ q# W: y% @) U1 ~/ S; n/ @8 n
        .id                = 1,! Y2 U, N) w; U9 F3 H- U; M
        .dev = {
- ?4 {! i! q4 T7 E7 ^' H) J; m                .platform_data = &da850_evm_tl_leds_pdata,- N3 u, B/ H7 C! _) S9 ]
                .release = led_dev_release,
& y3 D1 Z# n: Z# d7 }( i! [- X7 h        }/ i7 |6 _0 u. P3 o; P0 G9 `
};
+ V9 J$ _* d. ?2 P' \  [1 _0 J7 q' S# F1 Y4 r" L! A/ c
static int __init led_platform_init(void)& w( N( x4 z4 l6 e" d; a
{0 z6 j% v& R: v4 v5 H8 k
        int ret;
6 e  q4 ]) n; g3 K( b( A7 I#if 0! ]( U) _% K6 {5 _2 b8 ~, z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  ?# E8 {: r3 f# a        if (ret)9 N0 d8 V' L: y. b! A% N
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") N: ~) T- u9 `. \" U: U
                                "%d\n", ret);* V4 @& o2 ]: r6 R
#endif, z* U; y. b4 L9 U4 U! e
        ret = platform_device_register(&da850_evm_tl_leds_device);
, {! J1 j, y* M* D. `        if (ret)
( Z9 Y( q, b& V5 p                pr_warning("Could not register som GPIO expander LEDS");* C" g2 g; H- q* c
        else
* a- Y. G+ E3 O/ V5 D1 a8 t$ n& C% \                printk(KERN_INFO "LED register sucessful!\n");
8 y) c8 t4 r0 m! ?, J* w1 r" R. S1 I
        return ret;
. Q% k$ ^7 f3 ~}
0 T2 t) P) o! I
( c0 T* [$ z; t- cstatic void __exit led_platform_exit(void)
* T7 y6 x1 n9 r3 b) i{
# E$ Q0 q/ @+ Z3 F* m5 v        platform_device_unregister(&da850_evm_tl_leds_device);6 h0 F( V. R, s  t: s

1 o8 o3 S4 }! i- x- }        printk(KERN_INFO "LED unregister!\n");% E, E4 \+ Z4 A
}
- y- X8 q' a# M) D+ G+ J9 h) m- C/ X% j1 [- E+ o' P
module_init(led_platform_init);
8 y% K! J2 t6 E9 Z! _9 L/ dmodule_exit(led_platform_exit);4 h* D7 U4 x% T3 y- @

8 T' w' w- ^3 u' dMODULE_DESCRIPTION("Led platform driver");" Q, X" {: ~$ J$ k2 H/ O4 H4 v! o
MODULE_AUTHOR("Tronlong");: m4 {6 `/ h/ ]$ ?# p+ ~8 l  O
MODULE_LICENSE("GPL");
' V3 Q  J" O; B/ V$ X' O% R7 |1 F8 |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-27 20:37 , Processed in 0.039191 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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