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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
3 s8 e7 z! ^3 u( Y$ ^! s* g#include <linux/init.h>1 b6 z+ ?0 Y* |
#include <linux/module.h>
' l( V8 Z, x2 q( L. G" G" y#include <linux/kernel.h>
" l, P* \7 e: D1 a#include <linux/types.h>
$ s7 k2 m4 n8 a: R  I  d#include <linux/gpio.h>
( }& c$ G- v( g6 r% X, d. u#include <linux/leds.h>
0 F. T5 D2 Z# o3 t% X0 V! j' }- G#include <linux/platform_device.h>8 g3 x( p7 `( Z5 N* c$ l
( i+ V2 q  I7 n7 v7 K! Y- D
#include <asm/mach-types.h>; R  v6 V$ h8 z1 N4 g4 b) f% P
#include <asm/mach/arch.h>
" m, P4 Q) H: m#include <mach/da8xx.h>: D+ e- w, p0 j# g! {8 r' O
#include <mach/mux.h>
/ r' z4 ~8 j" j& M. j# ^9 Y  J- L; z( p6 A. r/ R
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  K" y3 h9 C# m) o% Y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ C( O+ d% B2 F
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); {$ o) `6 a. r# \2 t8 `
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! C( {( J9 ~. @
. g3 G$ |& a0 k  ]8 o2 e/* assign the tl som board LED-GPIOs*/
. n# a9 w/ K. ~! P/ A# Pstatic const short da850_evm_tl_user_led_pins[] = {
; ?, I3 |: d* r- d4 Z, Z        /* These pins are definition at <mach/mux.h> file */
$ o8 n* J9 ?8 \# E        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 X& v7 [# y) m  V  {" J        -1
2 L3 P  Y  V8 C};+ O. g: i7 K2 P, s) N. y0 G- f& d8 _

( v( d& E. t; i4 k/ dstatic struct gpio_led da850_evm_tl_leds[] = {
$ h$ W% z* B4 U  ]8 o5 c7 f6 b7 j        {
; C) n# v, M$ T  o                .active_low = 0,( M( m- i+ b( X
                .gpio = DA850_USER_LED0,7 Y% F3 x/ m/ h  H* r8 I% Z
                .name = "user_led0",
# p/ @+ T5 u) x$ l) I5 g! U" ?) N. h* b6 u                .default_trigger = "default-on",+ H0 J  z) v% X. V! F9 R
        },  O3 t! H6 b, B4 Y' j+ X
        {
2 e, x- V7 W6 @% j) i                .active_low = 0,
# W! K  w; l& V3 u, F( k                .gpio = DA850_USER_LED1,& `, |0 U0 @1 a! M
                .name = "user_led1",/ f- l  b1 q  `/ f# y% V- k3 Y
                .default_trigger = "default-on",- @( Q4 |; {9 p0 H( p- N' Z& M
        },
$ J5 ]: T' ~, J" c/ V4 R+ E        {
6 Z2 Z& `9 W1 N7 ?3 Z0 f! u9 Z/ c                .active_low = 0,
% l' M  q8 z- F8 v                .gpio = DA850_USER_LED2,
! V9 N" D0 l$ k7 w; W! m4 Q                .name = "user_led2",* S7 u! O: @, V. ~; q
                .default_trigger = "default-on",
% b9 S' [  H) Q2 d        },
' F! A7 l1 d  M/ r        {
: b' n( R$ Z# s# k. l1 O2 M                .active_low = 0,
, m, f/ j4 X  @1 h( `                .gpio = DA850_USER_LED3,
3 Q  E- K: L; `' S                .name = "user_led3",; K- n: I/ L0 Q. z2 q! z
                .default_trigger = "default-on",' p+ p& Y& n5 ^* r  U" K5 s! a
        },
( U7 ^% N8 G, M};" }+ `% V+ g' v& s

  E& Y( c, i; A2 sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 ~& x* a1 r2 M1 H) [$ R% @# ^
        .leds = da850_evm_tl_leds,
$ W6 _( `: j2 |+ a8 E2 S% }        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# L6 z- u# e1 s& D5 l2 N
};1 ?. S! ]) Y/ T7 S& E

( M& n0 ^5 \, n- o/ b, A+ {static void led_dev_release(struct device *dev)
& u1 q9 }" w2 t$ S, u{; R0 Q' A/ {- Z) L
};
: u& @8 {$ |+ F/ U
7 G7 o" L" r/ B3 h9 Q; X/ k" Astatic struct platform_device da850_evm_tl_leds_device = {
$ S7 Q4 g" _% J3 {4 P        .name                = "leds-gpio",
' [$ c6 X( `9 S) F        .id                = 1,
) j1 y4 R% q/ o        .dev = {
# u2 m0 X3 f+ d$ K+ v% D3 V) `                .platform_data = &da850_evm_tl_leds_pdata,; E7 G  f. x9 D, ^  t
                .release = led_dev_release,4 l. q7 q2 L  F% E
        }* F  S9 o  I6 c- k5 _+ ?; e
};
7 u$ Z1 n( F1 T5 Q* x- {# q
5 s) y" u- X% j( V! _9 h; Pstatic int __init led_platform_init(void), _* B3 ~5 n8 H; L
{. Z' \; ?1 r( I6 m  h8 h" [' q# x
        int ret;7 b, \; K$ t1 V) @
#if 0
0 }1 F, q" ?; K' _3 O* M        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 ^- v- k; [% L+ d1 E; S5 S        if (ret)
# X7 H) z; Z4 a0 J                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" A1 D& v# i+ h- i+ H0 V8 w
                                "%d\n", ret);
- L3 }7 L) J* S#endif
& c1 w" s5 M: f        ret = platform_device_register(&da850_evm_tl_leds_device);
+ x. _5 V/ L0 r* P% H6 V: j        if (ret); F3 _! c9 ]2 A' n; O
                pr_warning("Could not register som GPIO expander LEDS");
$ ~0 O+ W) l0 `) h) c( D        else+ l( `* y% c7 b, r
                printk(KERN_INFO "LED register sucessful!\n");
6 o* l6 L# k: E) t) c% @3 X
6 s: I" `& g# B& c+ K        return ret;
& H, E- ~' G# k# ]% U" H}5 y9 E- o4 u- ?/ R
8 m$ l. T1 J" |. g6 U9 b
static void __exit led_platform_exit(void)
, C8 Z! n7 q: x' @! z{
$ {8 y: d$ F+ N  O2 v, {7 V        platform_device_unregister(&da850_evm_tl_leds_device);. o- a5 n' f) n0 B7 p* r# i! S

+ l0 @. W! n1 I, K        printk(KERN_INFO "LED unregister!\n");
. ^+ [. Q2 M' e+ |8 m( ~}
$ v. {3 U( H7 v: t. z# J' T5 t6 u# D6 a% e9 w) r& ?6 ^
module_init(led_platform_init);9 O2 \+ e' a# i) s( u
module_exit(led_platform_exit);
+ b/ P. q( a  F2 G" H2 r) Y" S1 G* T2 k$ O" t! ?9 I6 W
MODULE_DESCRIPTION("Led platform driver");( u( }1 L% P$ L/ g
MODULE_AUTHOR("Tronlong");5 R* j5 T4 T. C" W' L. o2 d5 H
MODULE_LICENSE("GPL");
3 x$ W0 B  ^, U/ P$ R) {( A  p, C; p! _# q) X3 {( [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-8 00:38 , Processed in 0.040541 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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