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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ N' n6 f* l. k8 s0 C& s
#include <linux/init.h>. ?! O, y' }  L0 |. x- k" o9 T
#include <linux/module.h>
. {7 l1 i, H% P" W#include <linux/kernel.h>
+ C& I9 X/ c+ K% e#include <linux/types.h>
  {$ a5 j8 M8 M' k% \: i#include <linux/gpio.h>
: K: N0 L; w1 p) T#include <linux/leds.h>
* V* @5 T2 K+ @$ R4 @9 i#include <linux/platform_device.h>+ J. ]9 d$ e/ u

, w/ K% v" k! X4 b$ F2 c3 v/ \#include <asm/mach-types.h>
7 B, N, f. {/ ?: |4 }2 ?+ X#include <asm/mach/arch.h>
, H. i2 ]' B, v+ N( N#include <mach/da8xx.h>
" H3 U; o! @" I4 D3 [0 E. u* t6 o3 s#include <mach/mux.h>
# T; q& n4 H' M& \5 d# e  {; C& s; E& v1 |9 H9 i0 }* [6 I
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 Z" o$ u$ e2 e9 f& R
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' N; K5 ^8 v: T
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ s! B0 X0 ?4 u' l- D
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 J3 s9 x8 i" b9 s5 g" P( P) L4 u4 a: X: i7 U4 k* C
/* assign the tl som board LED-GPIOs*/. m; i; A' y; Y: b8 H& j3 v
static const short da850_evm_tl_user_led_pins[] = {
! I% d! s8 M+ z& H        /* These pins are definition at <mach/mux.h> file */! y. {, y; I; O6 o  P
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 i% f# e/ S; r  S0 g9 X2 F! P        -1
% h4 \, k5 Q- p8 m7 L6 \+ @& e};
4 H$ d( u  ~( ^$ M' L& g, ^
" D2 g7 P' }. b4 L4 w! Rstatic struct gpio_led da850_evm_tl_leds[] = {
- w- c, F( X; e6 g. P        {
' b& N" {  r* R                .active_low = 0," E% B% x: K$ U9 f, t1 M; s$ j* \
                .gpio = DA850_USER_LED0,2 U& S7 X& m* I5 i8 k
                .name = "user_led0",! s) T- Q* Y- i$ f5 a/ A. i  ?' J- L
                .default_trigger = "default-on",
+ D5 ?) n+ P; }" N        },3 W: `& Y2 _, {3 K9 j/ ^
        {
1 U" c- J% k, p- T9 v8 ~- \1 [                .active_low = 0,$ d( N4 V: A7 w, n/ O+ i
                .gpio = DA850_USER_LED1,- P. K7 W/ {6 v. f% f" e+ J
                .name = "user_led1",
' v6 b& o4 Z3 L' _                .default_trigger = "default-on",, O* U0 d+ y) M  U* J3 T
        },
( o5 Z( d! y" i2 \' j        {
4 }; m! U; @8 D) S                .active_low = 0,- p: X- Y' v- J2 v+ D% b& S1 @& W
                .gpio = DA850_USER_LED2,# e% h8 I  P* W( l8 T
                .name = "user_led2",4 C' Z0 h) a( N
                .default_trigger = "default-on",
- P. n+ {: L- a4 Z1 L' }/ ^        }," H! U2 ]# \$ k
        {
) y3 N' ]% C3 r5 ^8 C  u                .active_low = 0,
. M7 q; ^+ u+ t$ f# X                .gpio = DA850_USER_LED3,
) a. o1 z% M7 d8 P6 M                .name = "user_led3",+ [7 H- t/ D3 ?2 A! E
                .default_trigger = "default-on",: u% n1 s0 p1 v' |! o6 `  {+ j" c
        },
  m9 P& z0 ~( z};
4 k9 x8 d* T+ P# c$ W+ E/ x  A
) j3 F% r3 {. L) I, i; gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, H" p1 E+ f4 k( K0 O# \- X# E        .leds = da850_evm_tl_leds,
9 S: H$ X" V2 n2 y2 ?5 z- G7 i1 f4 h        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. |, j3 @4 d" k* W& e8 N* a};; ^3 Z. s9 }& N: H& e6 l* x7 w

0 B# w2 C7 T0 X6 L) n9 xstatic void led_dev_release(struct device *dev)' L4 _8 P. O9 h3 l
{
4 W$ H6 `) _. j0 z/ A. S" F};
9 P' E/ E6 q  k( O3 H& E* J
/ x, b3 f! U4 e$ g+ G  t4 [1 a2 G6 ystatic struct platform_device da850_evm_tl_leds_device = {6 d" ?# N4 q1 ]/ R
        .name                = "leds-gpio",- H  p8 Z( ?& [; U' V6 i$ _
        .id                = 1,+ B* H6 C' A2 S" Y9 T
        .dev = {) h: k2 L" c( c% Z# t
                .platform_data = &da850_evm_tl_leds_pdata,. e* g% b$ s& q: z  b- T$ S& l  V  t1 g
                .release = led_dev_release,
: b; j5 ~5 y- Y9 y+ h0 {1 [3 k) x; v        }0 q* X: D1 ]8 m# q. L& H
};
8 q1 u3 h! s  c9 [: n* F) J4 V3 S5 I. V% R% p2 G
static int __init led_platform_init(void)7 C$ ?  G( J' P, r8 X9 H, V! u
{
! a. ~0 h! S8 u2 o; D/ k+ o        int ret;1 G# _0 x, S$ r
#if 0  S* N' t$ q1 n" y8 A1 r9 c
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 i5 ^" L8 \* u        if (ret)
5 l' P) a. `( z& Z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 o& a: [3 |, V- j( p' f
                                "%d\n", ret);: R  [4 ~" \; h/ d* B
#endif
# v! Z+ H# @4 o$ v! {3 j1 {        ret = platform_device_register(&da850_evm_tl_leds_device);) j# }7 G$ M, A! ~$ r7 i; t1 v. j2 O
        if (ret)& d6 j% }4 Y$ r" G1 e
                pr_warning("Could not register som GPIO expander LEDS");# x* y! G: s- m
        else6 C; n  z% a  k4 B
                printk(KERN_INFO "LED register sucessful!\n");
& `/ b$ c. r2 ^0 }7 a; ]$ |& D: U' F0 R! w" x% S7 K7 B
        return ret;
5 \$ r, B- A$ b& R}* r& o4 o/ V/ f7 l

1 z$ @! w6 ?, a% V) Tstatic void __exit led_platform_exit(void)
, W) g6 E' C( |{/ j: B$ ~0 T( C% t
        platform_device_unregister(&da850_evm_tl_leds_device);
& q0 z2 s3 C6 L# P5 d) A3 q# o. M5 P+ n/ p! \! x
        printk(KERN_INFO "LED unregister!\n");
9 _+ |1 V* u% k1 @) |}# b7 S' M4 U- g5 _4 G- v  A9 H: a
/ T' k. E3 G8 z; L
module_init(led_platform_init);: ^" `9 c- z) z$ P* |: I. O
module_exit(led_platform_exit);
& H2 \8 _) c0 N; |# }( T' B# T
0 |1 g; b' ~6 \+ ~* ~' X# mMODULE_DESCRIPTION("Led platform driver");
1 ?' L  @* a8 |! JMODULE_AUTHOR("Tronlong");. x  F+ q1 g% J
MODULE_LICENSE("GPL");
% b0 S( v6 {+ t- l9 b: i$ s8 u7 ~! Z& M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-22 03:33 , Processed in 0.040479 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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