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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" N' B" x- t0 B! ^0 O; v) X( W! `#include <linux/init.h>
' v! \6 d$ ^7 u6 ~2 @+ S#include <linux/module.h>$ F0 [9 j7 Y+ c& B; I, q9 G
#include <linux/kernel.h>
. W0 r$ w3 Q& h& L8 H8 W#include <linux/types.h>7 s; v, t; S: T' c5 f) p
#include <linux/gpio.h>
% N! s) Q: i; u% p#include <linux/leds.h>
3 U/ I9 ?/ ]8 G3 M$ k#include <linux/platform_device.h># _% F' S9 P7 G

* r* X; g7 g  i5 l0 P+ `#include <asm/mach-types.h>" x- ?, c6 U) e- l) }
#include <asm/mach/arch.h>  L% p( H& N: d9 g
#include <mach/da8xx.h>
6 A+ M' P, R. M. {8 _! l- e#include <mach/mux.h>' X5 [$ ?$ f5 ?. S/ b
6 \$ x/ h/ @& I8 }5 O% T8 J+ q9 R7 C
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)4 b5 }2 Y2 p6 @% `. Y0 j, D
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 I2 n. U/ r+ H. h( r* b; w#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ \4 }' U& J& b4 T#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ A: r2 |; \/ ?7 W/ T# P$ J  z
6 Y* S3 Z* P2 f/* assign the tl som board LED-GPIOs*/
4 f" x# k7 R5 I2 M( Y; T% G3 Hstatic const short da850_evm_tl_user_led_pins[] = {. e+ }. z# K0 C' g
        /* These pins are definition at <mach/mux.h> file */" c' n; I2 \1 c, u. E
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& d2 J& Y& v1 {+ @# E' ?8 G
        -1
9 M! n$ j* r) A7 E" Q};
+ D; ?' [4 w# s. d" e  H+ c  W, E0 {
static struct gpio_led da850_evm_tl_leds[] = {0 _, ?6 ?5 j0 u, U# S5 O
        {3 L7 j$ n/ \) z4 q% q/ p
                .active_low = 0,; p) |4 Y5 F9 C1 x) n' Z
                .gpio = DA850_USER_LED0,
3 ]+ u6 r$ v3 E% J2 f                .name = "user_led0",, x9 Z1 v! t( Q2 H
                .default_trigger = "default-on",9 c" {. q2 D" m: b
        },/ ~; u! g) b+ Q' a+ p
        {
" \( k% e" }6 k; `4 ]- \7 ^) X0 d( u- m                .active_low = 0,
) R( @2 d% n; e- l8 V                .gpio = DA850_USER_LED1,4 C9 f5 t+ ?5 s+ U: @0 Y7 L+ R, L
                .name = "user_led1",) H% y* {) l0 V  w6 e
                .default_trigger = "default-on",  L. Y0 V" ?8 \
        },
7 V/ D) p9 T/ v0 V6 W2 r# q        {+ _3 q2 K4 n8 h& U2 Y" C% V' z
                .active_low = 0,
% {/ t0 E& A; g0 t                .gpio = DA850_USER_LED2,
! y& `# e  {8 D5 n! m+ Z& F: q                .name = "user_led2",
3 C" o. }% y' r/ W0 d; c* h7 |" a                .default_trigger = "default-on",8 ]3 |  f* g& W2 `6 y
        },
/ K: x5 W$ g* q& w        {4 p7 q; N. r5 L
                .active_low = 0," q, S% |/ d% h( Z% o
                .gpio = DA850_USER_LED3,
6 E, s& w7 {0 n+ A( A" |                .name = "user_led3"," J5 o/ ~' ?9 j  l$ y! d
                .default_trigger = "default-on",* ^1 v# i. _# R- f% C% f3 N" l
        },2 s* K2 _& B+ n. \& R# y
};
3 U6 W$ M* m* x4 ]8 S; a
8 _9 n( ?! S! n. \static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 m: }" ?. O3 C; W. F8 ~        .leds = da850_evm_tl_leds,
0 X5 p: F/ F  E/ l5 a0 I" y) }        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, M+ `4 o* ^' H  q$ ?% E};
$ y+ A9 @% |% n, p2 s/ T" X# j" E- s. y# _1 C5 P0 Q0 e- V
static void led_dev_release(struct device *dev)1 f, c+ W7 q4 A/ b% F/ i* K
{
9 D4 s( y* u1 D3 N};% L/ ?" n4 ?9 x/ P

! |& F9 q$ u- F+ I) d3 Mstatic struct platform_device da850_evm_tl_leds_device = {8 |3 X' _' A3 d+ k- `
        .name                = "leds-gpio",: Z4 l/ R3 e! W$ o/ x7 d/ s
        .id                = 1,
( |7 v! R+ N& B: P6 e        .dev = {  X3 p$ E" o9 ^3 {8 j& F* \
                .platform_data = &da850_evm_tl_leds_pdata,0 U4 X: [* t4 J+ j, j
                .release = led_dev_release,
; U& v1 E. J& p& Q/ o4 q        }
. R# u$ Q$ H1 q$ k};
* J% c, [+ N( B
5 m& n% T- d9 a# Y. K: X& t1 ?static int __init led_platform_init(void)% a3 j! Y% ~3 c' Q- k
{
3 g2 }; O' W1 u) x# ^& g. L        int ret;+ b, I9 u% M' H8 ?3 Q
#if 0) b+ U4 t; Y! O- L2 s
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( f, L, S* _& _& |2 l  D
        if (ret)* j5 {8 k5 U9 n6 i- \2 P
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# i& f! F" C/ k) [4 y/ m
                                "%d\n", ret);
7 w/ P& C6 o. `" m% N+ e5 x#endif. a6 E, E& a- s* t2 m' ]5 l
        ret = platform_device_register(&da850_evm_tl_leds_device);
$ g* \" o# W5 ?2 o& o3 P* ?        if (ret)
- }. P& w1 {7 t7 G! w2 p8 v/ |# a9 k1 Y                pr_warning("Could not register som GPIO expander LEDS");4 |4 |! I- v4 a2 g. W
        else* Q8 N; ~* M! t8 B& D; Y) o: b
                printk(KERN_INFO "LED register sucessful!\n");5 H5 ?( [% Y$ {. a. y) I; c
% n1 n" X" e/ b" J6 K6 H
        return ret;
6 G4 \& {) ~6 ~' F, D4 Q6 ^}8 `& N- |5 v5 v/ \- R& O. \
& T8 E# ^* ?0 O) @) |, _6 f7 @% @0 y
static void __exit led_platform_exit(void)% t: _0 Y" W2 R
{, X+ ?7 k' j$ \6 i) i' z' V
        platform_device_unregister(&da850_evm_tl_leds_device);
' Z( F4 j9 j) ]- ~9 G' n
7 h* y. Y( A$ y" U  [4 J3 }  X        printk(KERN_INFO "LED unregister!\n");
1 n, A+ {; Q; K+ v}
+ w! v) Q' n! J6 y4 g1 m: G( R' h& A) Z  _
module_init(led_platform_init);
8 E; B6 d' _1 J# S) ~* Pmodule_exit(led_platform_exit);  Z; d7 z% z5 o% H0 G1 u
* Z  r8 N1 T/ U  h9 ~: r
MODULE_DESCRIPTION("Led platform driver");) H+ [/ }$ n: n$ O, M# T4 L5 `
MODULE_AUTHOR("Tronlong");( r" ~! A9 y9 g0 U4 b: u' @& F# j
MODULE_LICENSE("GPL");/ d& J: _4 w) K/ t

9 W& E( s: n6 P- p$ l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-29 17:20 , Processed in 0.039398 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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