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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 D! J% p$ X; Q# _#include <linux/init.h>
$ C1 D/ U( L* N0 O#include <linux/module.h>
1 o& b. _% f' [1 R) N5 n$ j9 s#include <linux/kernel.h>, ~- E+ |8 }7 l# `" T0 m" c
#include <linux/types.h>
  p0 t! ?/ J: E# ^$ @' t#include <linux/gpio.h>
4 X& `7 V6 W  Z8 W  k9 Q#include <linux/leds.h>
- v6 A' F  ?5 r2 P#include <linux/platform_device.h>
( }5 t2 i  {+ w9 x) \3 b! h' w% R& f  W" ]! W6 r' b
#include <asm/mach-types.h>( |- o7 Y8 L. G: Q( m4 f
#include <asm/mach/arch.h>) |0 A) F3 i' P/ P" j& P1 _
#include <mach/da8xx.h>
' a( ?( r* X1 o% @. T" V1 K#include <mach/mux.h>
% b: P2 g# A" `; X! J
6 \9 f4 s* |% A  K, Y+ o1 |! v#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" ?9 G( D' {* P# n#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ }8 O( v! i/ x/ V. g2 N3 w. B#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 M; q8 e" U/ @- H/ C#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) e" a6 X/ m, [& R
1 l8 v5 p1 |, T$ q7 Z  V/* assign the tl som board LED-GPIOs*/
3 g; u5 `2 M9 Q4 G( vstatic const short da850_evm_tl_user_led_pins[] = {
- B+ V' z; q& Y  x" m. J" M        /* These pins are definition at <mach/mux.h> file */" V2 g1 m( H$ Z8 x, C" v
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ |: A7 j2 E( {- Q" {/ v5 ?* f6 Q
        -1  o- D+ A% G- u# b/ u8 M
};
% J6 O: R0 G2 L  ]1 E/ r& R/ y( x; Y+ Z/ T! j
static struct gpio_led da850_evm_tl_leds[] = {8 f0 O: D( V1 b5 @. E0 i) Z# C
        {0 c, o* B  R7 \$ `1 i" r
                .active_low = 0,7 U! R2 T% Z! I6 d* _5 k
                .gpio = DA850_USER_LED0,8 h- }1 c$ C9 d6 ^( s# T+ v
                .name = "user_led0",
2 y, K2 G6 @7 V0 H& T                .default_trigger = "default-on",
) F4 b- k. d$ Y* H- l        },& U; `% y: O# H1 N, g! v# @
        {
: p2 S  f0 L5 x& Z( ?6 n                .active_low = 0,
* d5 d) r( R2 m5 k# ^                .gpio = DA850_USER_LED1,9 I/ Y7 ]# P8 O1 r! r% @, R
                .name = "user_led1",4 E: w" B9 _& p4 f
                .default_trigger = "default-on",3 ^% F7 h/ Z9 F2 s
        },* P4 C* I; n. C4 W! f+ b
        {* |! P1 ]7 k; V$ v% V$ {
                .active_low = 0,& X* V# k4 e) Y1 P7 H& W
                .gpio = DA850_USER_LED2,' f1 `7 K9 m! u' y
                .name = "user_led2",/ ~$ w& ^. ^9 }, w" [5 k
                .default_trigger = "default-on",
' O4 Z5 r- m" D        },
' Y5 f" R( E* k        {
5 j: X: p8 G. m9 t$ x                .active_low = 0,  q3 x' B6 P5 E/ `. t5 P; i
                .gpio = DA850_USER_LED3,
6 f0 |" l0 V$ w" o5 f                .name = "user_led3",8 `- r( [$ F9 v8 Z( q
                .default_trigger = "default-on",# Y% V/ t& c- k( _! T% B4 l; l
        },
$ f) l. z( K0 s* j+ m. L# Q( Q. v};9 J+ l3 k. C# F/ J2 R
$ K) g; O. B# D" {4 M7 L
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* U$ M7 V7 G: ?% V9 @, Z; i3 b
        .leds = da850_evm_tl_leds,
- L* w% V$ I/ I6 t0 a, t        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),7 P, ^' ~9 U/ }" F( k0 ]. y
};9 g: J& A; n( |+ Q8 Y& r

# T; R4 q3 l0 [0 gstatic void led_dev_release(struct device *dev)* i) e1 m* q* _  L0 G; k
{! Z3 ]4 y" p! C6 t9 f9 ]3 `
};
* i. G  _& F7 H2 I7 x! Z+ r7 n5 o! a  [
static struct platform_device da850_evm_tl_leds_device = {6 X7 ?" G; V" b" ~% P6 z) _
        .name                = "leds-gpio",
( X* n) y0 V$ `2 k        .id                = 1,% A( Y$ Z+ o' z
        .dev = {
7 m8 T6 r+ E1 _* E% R                .platform_data = &da850_evm_tl_leds_pdata,
. }+ z9 ^- q0 @8 W6 `1 y. H# s                .release = led_dev_release,
; f8 o& J) z) v        }
" E2 k2 J1 o7 B: d};
: {( a( n, Q; z$ D; j6 S
; g5 B6 v" O1 E# ustatic int __init led_platform_init(void)
; z( g- {% @" L5 [5 g( q+ {{4 l( H# n5 L- v4 r  A2 A! p
        int ret;% @& O" q0 k( s  U& ~
#if 0
4 {  R6 E6 h5 x        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% L2 @+ G( c; `3 P        if (ret)
; `0 @! p+ q2 U: Z4 ]4 ]; ]' S                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! `* y6 k: N3 V' P! t( Q
                                "%d\n", ret);
! M% H7 Y9 u2 q3 P6 j#endif- S& C8 s. h. E% Z! i
        ret = platform_device_register(&da850_evm_tl_leds_device);+ o% b/ @: ~. g  X2 i7 N
        if (ret)
& _; {& W, b: g/ L5 w6 Q                pr_warning("Could not register som GPIO expander LEDS");2 y/ ^4 @! q4 N
        else) Q0 l- X. O9 ?, e
                printk(KERN_INFO "LED register sucessful!\n");
% Q! W9 S  M6 S% Y( t' W
& p! B; M9 I7 _( Y. x8 \: r2 k  f% M        return ret;- x# Z* ?" v& A& F6 T
}
( a1 c1 o! z6 h( G
$ \* h* J9 M! p* |static void __exit led_platform_exit(void)
1 G* }6 x$ d+ {  g0 q' F( H{$ G/ `2 `. p9 [5 @* I' j. H
        platform_device_unregister(&da850_evm_tl_leds_device);
; _1 o$ ~! O) c9 p; v* t% l) \% t3 F9 @. y, h
        printk(KERN_INFO "LED unregister!\n");3 R; L! j+ v9 n' \: [  v9 o0 x8 b2 z( }
}3 G- \4 m# P( m* e

- t1 S% R+ b5 `' imodule_init(led_platform_init);
% K' u" P8 Q3 j; K* w$ D( ?module_exit(led_platform_exit);3 Z  g# r4 ?9 t0 n" `5 c% X$ P

3 E8 O* V; Z; N4 i7 }7 n" @& g! OMODULE_DESCRIPTION("Led platform driver");
2 L9 M" E3 H$ t. P$ T+ _MODULE_AUTHOR("Tronlong");
0 q6 H" c) f7 N8 E. e; B$ TMODULE_LICENSE("GPL");
& V, L9 [7 G, H
, X9 _, H3 M7 M1 v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 13:32 , Processed in 0.042698 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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